Freigeben über


Errors (CPI-C)

In der folgenden Tabelle sind Zustandsänderungen zusammengefasst, die auftreten, wenn ein Datenübertragungsfehler auftritt.

return_code Alter Zustand Neuer Zustand
CM_PROGRAM_ERROR_PURGING RECEIVE Keine Änderung
CM_PROGRAM_ERROR_NO_TRUNC RECEIVE Keine Änderung
CM_SVC_ERROR_PURGING SEND RECEIVE
CM_SVC_ERROR_NO_TRUNC SEND_PENDING RECEIVE

Wenn das Partnerprogramm einen logischen Datensatz abschneidet, erhält das lokale Programm eine Benachrichtigung über die Kürzung durch return_code beim nächsten Empfangsanruf .

Wenn ein Programm Empfang mit requested_length ausgibt, der auf Null festgelegt ist, wird der Aufruf wie gewohnt ausgeführt. Allerdings sind data_received und status_received nicht für denselben Empfangsanruf festgelegt. (Eine Ausnahme von dieser Situation ist der NULL-Datensatz, der über eine zugeordnete Unterhaltung gesendet wird, die im nächsten Absatz beschrieben wird.)

In einer zugeordneten Unterhaltung, in der Daten aus dem Partnerprogramm verfügbar sind, ist data_received auf CM_INCOMPLETE_DATA_RECEIVED festgelegt. Wenn ein NULL-Eintrag verfügbar ist (send_length in der Send_Data vom Partnerprogramm ausgegebenen Aufrufs auf Null festgelegt ist), wird data_received auf CM_COMPLETE_RECORD_RECEIVED festgelegt, wobei received_length auf 0 festgelegt ist.

In einer einfachen Konversation, in der Daten verfügbar sind und das Füllmerkmal auf CM_FILL_LL festgelegt ist, wird data_received auf CM_INCOMPLETE_DATA_RECEIVED festgelegt. Wenn das Füllmerkmal auf CM_FILL_BUFFER festgelegt ist, wird data_received auf CM_DATA_RECEIVED festgelegt.

Die logische Einheit (Logical Unit, LU) führt keine automatische Konvertierung zwischen EBCDIC und ASCII für die empfangene Datenzeichenfolge durch, bevor sie in den Puffer versetzt wird. Bei Bedarf kann das Programm die CSV-Konvertierung (Common Service Verb) verwenden, um eine Zeichenfolge von einem Zeichensatz in das andere zu übersetzen.