Freigeben über


Send_Error (CPI-C)

Der Send_Error Aufruf (Funktionsname cmserr) benachrichtigt das Partnerprogramm, dass beim lokalen Programm ein Fehler auf Anwendungsebene aufgetreten ist.

Syntax

  
CM_ENTRY Send_Error(   
  unsigned char FAR *conversation_ID,    
    CM_INT32 FAR *request_to_send_received,    
  CM_INT32 FAR *return_code              
);  

Die Parameter

conversation_ID
Angegebener Parameter. Gibt den Bezeichner für die Unterhaltung an. Der Wert dieses Parameters wurde von Initialize_Conversation oder Accept_Conversation zurückgegeben.

request_to_send_received
Zurückgegebener Parameter. Gibt den Anforderungs-zu-Sende-Empfangen-Indikator an. Mögliche Werte:

CM_REQ_TO_SEND_RECEIVED
Das Partnerprogramm hat Request_To_Send ausgestellt, das das lokale Programm anfordert, die Unterhaltung in den STATUS EMPFANGEN zu ändern.

CM_REQ_TO_SEND_NOT_RECEIVED
Das Partnerprogramm hat Request_To_Send nicht behoben. Dieser Wert ist nicht relevant, wenn return_code auf CM_PROGRAM_PARAMETER_CHECK oder CM_STATE_CHECK festgelegt ist.

return_code
Der von diesem Aufruf zurückgegebene Code. Die gültigen Rückgabecodes werden weiter unten in diesem Thema aufgeführt.

Rückgabecodes

Der Wert return_code variiert je nach Unterhaltungsstatus, wenn der Anruf ausgegeben wird.

SEND-Status

Wenn das Programm den Anruf mit der Unterhaltung im SEND-Zustand ausgibt, sind die folgenden Rückgabecodes möglich:

CM_OK
Primärer Rückgabecode; Der Aufruf wurde erfolgreich ausgeführt.

CM_OPERATION_NOT_ACCEPTED
Primärer Rückgabecode; Ein vorheriger Vorgang für diese Unterhaltung ist unvollständig.

CM_OPERATION_INCOMPLETE
Primärer Rückgabecode; der Vorgang wurde nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um auf den Abschluss des Vorgangs zu warten, oder Cancel_Conversation , um den Vorgang und die Unterhaltung abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf die Benachrichtigung durch eine Microsoft® Windows-Nachricht® warten und nicht Wait_For_Conversation aufrufen.

CM_PRODUCT_SPECIFIC_ERROR
Primärer Rückgabecode; Ein produktspezifischer Fehler ist aufgetreten und wurde im Fehlerprotokoll der Produkte protokolliert.

CM_CONVERSATION_TYPE_MISMATCH
Primärer Rückgabecode; die logische Partnereinheit (PARTNER Logical Unit, LU) oder das Programm unterstützt nicht den in der Zuordnungsanforderung angegebenen Unterhaltungstyp (einfach oder zugeordnet).

CM_PIP_NOT_SPECIFIED_CORRECTLY
Primärer Rückgabecode; die Zuordnungsanforderung wurde von einem Nicht-CPI-C LU 6.2-Transaktionsprogramm (TP) abgelehnt. Das Partnerprogramm erfordert eine oder mehrere PIP-Datenvariablen, die von CPI-C nicht unterstützt werden.

CM_SECURITY_NOT_VALID
Primärer Rückgabecode; Die in der Zuordnungsanforderung angegebene Benutzer-ID oder das kennwort wurde von der Partner-LU nicht akzeptiert.

CM_SYNC LEVEL_NOT_SUPPORTED_PGM
Primärer Rückgabecode; Das Partnerprogramm unterstützt nicht die in der Zuordnungsanforderung angegebene Synchronisierungsebene.

CM_TPN_NOT_RECOGNIZED
Primärer Rückgabecode; die Partner-LU erkennt den in der Zuordnungsanforderung angegebenen Programmnamen nicht.

CM_TP_NOT_AVAILABLE_NO_RETRY
Primärer Rückgabecode; die Partner-LU kann das in der Zuordnungsanforderung angegebene Programm aufgrund einer dauerhaften Bedingung nicht starten. Der Grund für den Fehler kann auf dem Remoteknoten protokolliert werden. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.

CM_TP_NOT_AVAILABLE_RETRY
Primärer Rückgabecode; die Partner-LU kann das in der Zuordnungsanforderung angegebene Programm aufgrund einer temporären Bedingung nicht starten. Der Grund für den Fehler kann auf dem Remoteknoten protokolliert werden. Wiederholen Sie die Zuordnung.

CM_PROGRAM_ERROR_PURGING
Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Während des Status "EMPFANGEN" oder "BESTÄTIGEN" hat das Partnerprogramm Send_Error ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.

  • Während in SEND_PENDING Zustand, in dem die Fehlerrichtung auf CM_RECEIVE_ERROR festgelegt ist, hat das Partnerprogramm Send_Error ausgestellt. Daten wurden nicht gelöscht.

    CM_RESOURCE_FAILURE_NO_RETRY
    Primärer Rückgabecode; einer der folgenden Ereignisse:

  • Die Unterhaltung wurde aufgrund einer dauerhaften Bedingung vorzeitig beendet. Wiederholen Sie den Vorgang erst, wenn der Fehler korrigiert wurde.

  • Das Partnerprogramm hat die Unterhaltung vor dem normalen Beenden nicht behandelt.

    CM_RESOURCE_FAILURE_RETRY
    Primärer Rückgabecode; Die Unterhaltung wurde aufgrund einer vorübergehenden Bedingung, z. B. modemausfall, vorzeitig beendet. Wiederholen Sie die Unterhaltung.

    CM_DEALLOCATED_ABEND
    Primärer Rückgabecode; die Unterhaltung wurde aus einem der folgenden Gründe umgestellt:

  • Das Remoteprogramm hat Deallocate mit dem Typparameteret für CM_DEALLOCATE_ABEND ausgestellt, oder die Remote-LU hat dies aufgrund eines anormalen Zustands des Remoteprogramms getan. Wenn sich die Unterhaltung für das Remoteprogramm beim Senden des Anrufs im EMPFANGSzustand befand, werden informationen, die vom lokalen Programm gesendet und noch nicht vom Remoteprogramm empfangen wurden, gelöscht.

  • Der Remote-TP wurde normal beendet, hat die Unterhaltung jedoch nicht vor dem Beenden behandelt. Knotendienste in der Remote-LU haben die Unterhaltung im Auftrag des Remote-TP abgeglichen.

    CM_DEALLOCATED_ABEND_SVC
    Primärer Rückgabecode; die Unterhaltung wurde aus einem der folgenden Gründe umgestellt:

  • Das Partnerprogramm hat Deallocate ausgestellt, wobei der Typparameter auf ABEND_SVC festgelegt ist.

  • Das Partnerprogramm hat die Unterhaltung vor dem Beenden nicht behandelt.

    Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Anruf vom lokalen Programm ausgestellt wird, werden die vom lokalen Programm gesendeten Daten und noch nicht vom Partnerprogramm empfangen.

    CM_DEALLOCATED_ABEND_TIMER
    Primärer Rückgabecode; die Unterhaltung wurde abgeglichen, da das Partnerprogramm Deallocate mit dem Typparameter ausgegeben hat, der auf ABEND_TIMER festgelegt ist. Wenn sich die Unterhaltung im STATUS RECEIVE für das Partnerprogramm befindet, wenn dieser Anruf vom lokalen Programm ausgestellt wird, werden die vom lokalen Programm gesendeten Daten und noch nicht vom Partnerprogramm empfangen.

    CM_SVC_ERROR_PURGING
    Primärer Rückgabecode; im SEND-Zustand hat das Partnerprogramm oder die Partner-LU Send_Error ausgestellt, wobei der Typparameter auf SVC festgelegt ist. Daten, die an das Partnerprogramm gesendet werden, wurden möglicherweise gelöscht.

    EMPFANGSstatus

    Wenn der Anruf im EMPFANGSzustand ausgegeben wird, sind die folgenden Rückgabecodes möglich:

    CM_OK
    Primärer Rückgabecode; da eingehende Informationen gelöscht werden, wenn der Send_Error Anruf im EMPFANGSstatus ausgegeben wird, wird CM_OK anstelle der folgenden Generiert:

  • CM_PROGRAM_ERROR_NO_TRUNC

  • CM_PROGRAM_ERROR_PURGING

  • CM_SVC_ERROR_NO_TRUNC

  • CM_SVC_ERROR_PURGING

  • CM_PROGRAM_ERROR_TRUNC

  • CM_SVC_ERROR_TRUNC (nur einfache Unterhaltung)

  • CM_PRODUCT_SPECIFIC_ERROR

  • CM_RESOURCE_FAILURE_NO_RETRY

  • CM_RESOURCE_FAILURE_RETRY

    Eine Erläuterung dieser Rückgabecodes finden Sie unterCPI-C allgemeinen Rückgabecodes.

    CM_DEALLOCATED_NORMAL
    Primärer Rückgabecode; da eingehende Informationen gelöscht werden, wenn Send_Error im RECEIVE-Zustand ausgegeben wird, wird CM_DEALLOCATED_NORMAL anstelle der folgenden generiert:

  • CM_CONVERSATION_TYPE_MISMATCH

  • CM_PIP_NOT_SPECIFIED_CORRECTLY

  • CM_SECURITY_NOT_VALID

  • CM_SYNC_LEVEL_NOT_SUPPORTED_PGM

  • CM_TPN_NOT_RECOGNIZED

  • CM_TP_NOT_AVAILABLE_NO_RETRY

  • CM_TP_NOT_AVAILABLE_RETRY

  • CM_DEALLOCATED_ABEND

  • CM_DEALLOCATED_ABEND_SVC

  • CM_DEALLOCATED_ABEND_TIMER

    SEND_PENDING Staat

    Wenn der Anruf in SEND_PENDING Zustand ausgegeben wird, sind die folgenden Rückgabecodes möglich:

  • CM_OK (Primärer Rückgabecode; der Aufruf wurde erfolgreich ausgeführt.)

  • CM_PRODUCT_SPECIFIC_ERROR

  • CM_PROGRAM_ERROR_PURGING

  • CM_RESOURCE_FAILURE_NO_RETRY

  • CM_RESOURCE_FAILURE_RETRY

  • CM_DEALLOCATED_ABEND

  • CM_DEALLOCATED_ABEND_SVC

  • CM_DEALLOCATED_ABEND_TIMER

  • CM_SVC_ERROR_PURGING

    Eine Erläuterung dieser Rückgabecodes finden Sie unterCPI-C allgemeinen Rückgabecodes.

    BESTÄTIGEN, CONFIRM_SEND oder CONFIRM_DEALLOCATE Bundesland

    Wenn der Anruf in CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE Status ausgegeben wird, sind die folgenden Rückgabecodes möglich:

  • CM_OK (Primärer Rückgabecode; der Aufruf wurde erfolgreich ausgeführt.)

  • CM_PRODUCT_SPECIFIC_ERROR

  • CM_RESOURCE_FAILURE_NO_RETRY

  • CM_RESOURCE_FAILURE_RETRY

    Eine Erläuterung dieser Rückgabecodes finden Sie unterCPI-C allgemeinen Rückgabecodes.

    Andere Staaten

    Das Ausgeben von Send_Error mit der Unterhaltung im ZUSTAND "RESET" oder "INITIALIZE" ist unzulässig. Die folgenden Rückgabecodes sind möglich:

    CM_PROGRAM_PARAMETER_CHECK
    Primärer Rückgabecode; Der durch conversation_ID angegebene Wert ist ungültig.

    CM_PROGRAM_STATE_CHECK
    Primärer Rückgabecode; Der Unterhaltungsstatus ist nicht "SENDEN", "EMPFANGEN", "BESTÄTIGEN", "CONFIRM_SEND", "CONFIRM_DEALLOCATE" oder "SEND_PENDING".

    Statusänderungen

    Die Unterhaltung kann sich in einem beliebigen Zustand befinden, mit Ausnahme von INITIALIZE oder RESET.

    Zustandsänderungen, zusammengefasst in der folgenden Tabelle, basieren auf dem Wert des return_code-Parameters .

return_code Neuer Zustand
CM_OK SENDEN
CM_CONVERSATION_TYPE_MISMATCH ZURÜCKSETZEN
CM_PIP_NOT_SPECIFIED_CORRECTLY ZURÜCKSETZEN
CM_SECURITY_NOT_VALID ZURÜCKSETZEN
CM_SYNC_LEVEL_NOT_SUPPORTED_PGM ZURÜCKSETZEN
CM_TPN_NOT_RECOGNIZED ZURÜCKSETZEN
CM_TP_NOT_AVAILABLE_NO_RETRY ZURÜCKSETZEN
CM_TP_NOT_AVAILABLE_RETRY ZURÜCKSETZEN
CM_RESOURCE_FAILURE_RETRY ZURÜCKSETZEN
CM_RESOURCE_FAILURE_NO_RETRY ZURÜCKSETZEN
CM_DEALLOCATED_ABEND ZURÜCKSETZEN
CM_DEALLOCATED_ABEND_PROG ZURÜCKSETZEN
CM_DEALLOCATED_ABEND_SVC ZURÜCKSETZEN
CM_DEALLOCATED_ABEND_TIMER ZURÜCKSETZEN
CM_DEALLOCATED_NORMAL ZURÜCKSETZEN
CM_PROGRAM_ERROR_PURGING EMPFANGEN
CM_SVC_ERROR_PURGING EMPFANGEN
Alle anderen Keine Änderung

Bei erfolgreicher Ausführung dieses Anrufs befindet sich die Unterhaltung im SEND-Zustand für das lokale Programm und im RECEIVE-Status für das Partnerprogramm.

In einer einfachen Unterhaltung kann das lokale Programm Set_Log_Data verwenden, um anzugeben, dass Fehlerprotokolldaten an die Partner-LU gesendet und dem lokalen Fehlerprotokoll hinzugefügt werden. Wenn die Länge der Unterhaltungsprotokolldaten größer als 0 ist, formatiert die LU die Daten und speichert sie im Sendepuffer.

Nachdem Send_Error abgeschlossen ist, wird die Länge der Protokolldaten auf Null und die Protokolldaten auf NULL festgelegt.

Wenn sich die Unterhaltung im RECEIVE-Zustand befindet, wenn das Programm Send_Error ausgibt, werden eingehende Daten von CPI-C gelöscht. Zu diesen Daten gehören:

  • Von Send_Data gesendete Daten.

  • Bestätigungsanforderungen.

  • Deallocation-Anforderungen, wenn der Unterhaltungs-Deallocate-Typ auf CM_DEALLOCATE_CONFIRM oder auf CM_DEALLOCATE_SYNC_LEVEL festgelegt ist, wobei die Synchronisierungsebene auf CM_CONFIRM festgelegt ist.

    CPI-C löscht keinen eingehenden Anforderungs-zu-Senden-Indikator.

    Wenn sich die Unterhaltung in SEND_PENDING Zustand befindet, kann das lokale Programm Set_Error_Direction ausgeben, um anzugeben, ob der gemeldete Fehler aus den empfangenen Daten oder aus der Verarbeitung des lokalen Programms nach dem erfolgreichen Empfang der Daten resultiert.

Bemerkungen

Das lokale Programm kann Send_Error verwenden, um z. B. das Partnerprogramm über einen Fehler zu informieren, der in empfangenen Daten aufgetreten ist, eine Bestätigungsanforderung abzulehnen oder einen unvollständigen logischen Datensatz abschneiden, den er sendet.

Send_Error löscht den lokalen LUs-Sendepuffer und sendet dem Partnerprogramm den Inhalt des Sendepuffers gefolgt von der Fehlerbenachrichtigung.

Die Fehlerbenachrichtigung wird als einer der folgenden return_code Werte an den Partner gesendet:

  • CM_PROGRAM_ERROR_TRUNC

  • CM_PROGRAM_ERROR_NO_TRUNC

  • CM_PROGRAM_ERROR_PURGING