Errors (CPI-C)
La tabella seguente riepiloga le modifiche dello stato che si verificano quando viene rilevato un errore di trasmissione dati.
return_code | Stato precedente | Nuovo stato |
---|---|---|
CM_PROGRAM_ERROR_PURGING | RECEIVE | Nessuna modifica |
CM_PROGRAM_ERROR_NO_TRUNC | RECEIVE | Nessuna modifica |
CM_SVC_ERROR_PURGING | SEND | RECEIVE |
CM_SVC_ERROR_NO_TRUNC | SEND_PENDING | RECEIVE |
Se il programma partner tronca un record logico, il programma locale riceve la notifica del troncamento tramite return_code nella chiamata di ricezione successiva.
Se un programma genera problemi di ricezione con requested_length impostato su zero, la chiamata viene eseguita come di consueto. Tuttavia, data_received e status_received non vengono impostati nella stessa chiamata di ricezione . Un'eccezione a questa situazione è il record Null inviato su una conversazione mappata, descritta nel paragrafo successivo.
In una conversazione mappata in cui i dati sono disponibili dal programma partner, data_received è impostato su CM_INCOMPLETE_DATA_RECEIVED. Se è disponibile un record Null (send_length nella chiamata Send_Data rilasciata dal programma partner è impostata su zero), data_received è impostato su CM_COMPLETE_RECORD_RECEIVED con received_length impostato su zero.
In una conversazione di base in cui i dati sono disponibili e la caratteristica di riempimento è impostata su CM_FILL_LL, data_received è impostata su CM_INCOMPLETE_DATA_RECEIVED. Se la caratteristica di riempimento è impostata su CM_FILL_BUFFER, data_received è impostata su CM_DATA_RECEIVED.
L'unità logica (LU) non esegue automaticamente alcuna conversione tra EBCDIC e ASCII nella stringa di dati ricevuta prima di inserirla nel buffer. Se necessario, il programma può usare Common Service Verb (CSV) CONVERT per tradurre una stringa da un set di caratteri all'altro.