Freigeben über


SEND_ERROR

Das verb SEND_ERROR benachrichtigt das Partnertransaktionsprogramm (PARTNER Transaction Program, TP), dass beim lokalen TP ein Fehler auf Anwendungsebene aufgetreten ist.

In der folgenden Struktur wird der verbsteuerungsblock (VCB) beschrieben, der vom SEND_ERROR Verb verwendet wird.

Syntax

  
struct send_error {  
    unsigned short      opcode;  
    unsigned char       opext;  
    unsigned char       reserv2;  
    unsigned short      primary_rc;  
    unsigned long       secondary_rc;  
    unsigned char       tp_id[8];  
    unsigned long       conv_id;  
    unsigned char       rts_rcvd;  
    unsigned char       err_type;  
    unsigned char       err_dir;  
    unsigned char       reserv3;  
    unsigned short      log_dlen;  
    unsigned char FAR * log_dptr;  
};   

Elemente

opcode
Angegebener Parameter. Gibt den Verbvorgangscode AP_B_SEND_ERROR an.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung AP_BASIC_CONVERSATION an.

reserv2
Ein reserviertes Feld.

primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC am Ende des Verbs festgelegt wurde. Die gültigen Rückgabecodes variieren je nach ausgegebenen APPC-Verb. Informationen zu gültigen Fehlercodes für dieses Verb finden Sie unter "Rückgabecodes".

secondary_rc
Zurückgegebener Parameter. Gibt den von APPC festgelegten sekundären Rückgabecode am Ende des Verbs an. Die gültigen Rückgabecodes variieren je nach ausgegebenen APPC-Verb. Informationen zu gültigen Fehlercodes für dieses Verb finden Sie unter "Rückgabecodes".

tp_id
Angegebener Parameter. Identifiziert das lokale TP.

Der Wert dieses Parameters wird von TP_STARTED im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

conv_id
Angegebener Parameter. Stellt den Unterhaltungsbezeichner bereit. Der Wert dieses Parameters wird von ALLOCATEim aufgerufenen TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

rts_rcvd
Zurückgegebener Parameter. Gibt an, ob der Partner TP REQUEST_TO_SEND ausgestellt hat. Mögliche Werte sind:

  • AP_YES gibt an, dass der Partner-TP REQUEST_TO_SEND ausgestellt hat, was anfordert, dass die lokale TP die Unterhaltung in den EMPFANGSstatus ändert. Um in den EMPFANGSzustand zu wechseln, kann der lokale TP PREPARE_TO_RECEIVE, RECEIVE_AND_WAIT oder RECEIVE_AND_POST verwenden.

  • AP_NO weist darauf hin, dass der Partner-TP keine REQUEST_TO_SEND ausgestellt hat.

    err_type
    Angegebener Parameter. Gibt den Typ des gemeldeten Fehlers an – Anwendungsprogramm oder Dienstprogramm.

    AP_PROG gibt an, dass der Fehler an ein Endbenutzeranwendungsprogramm gemeldet werden soll. Dieser Wert bewirkt, dass APPC einen der folgenden Rückgabecodes an den Partner-TP sendet:

    AP_PROG_ERROR_NO_TRUNC

    AP_PROG_ERROR_PURGING

    AP_PROG_ERROR_TRUNC

    AP_SVC gibt an, dass der Fehler an ein Dienstprogramm gemeldet werden soll. Dieser Wert bewirkt, dass APPC einen der folgenden Rückgabecodes an den Partner-TP sendet:

    AP_SVC_ERROR_NO_TRUNC

    AP_SVC_ERROR_PURGING

    AP_SVC_ERROR_TRUNC

    err_dir
    Angegebener Parameter. Gibt an, ob der Fehler mit daten ist, die gerade empfangen werden, oder mit Daten, die gerade gesendet werden sollen. Verwenden Sie diesen Parameter nur, wenn sich die Unterhaltung in SEND_PENDING Zustand befindet. Andernfalls wird der Parameter ignoriert. Im Folgenden sind zulässige Werte aufgeführt:

  • AP_RCV_DIR_ERROR gibt an, dass der TP SEND_ERROR ausgegeben hat, nachdem ein Fehler erkannt wurde, der den soeben empfangenen Daten zugeordnet ist.

  • AP_SEND_DIR_ERROR gibt an, dass das TP SEND_ERROR ausgegeben hat, nachdem ein Fehler erkannt wurde, der mit den Zusendungsdaten verknüpft war. Der TP hat beispielsweise beim Lesen von Daten vom Datenträgerlaufwerk einen Fehler festgestellt.

    Reserv3
    Ein reserviertes Feld.

    log_dlen
    Bereitgestellter Parameter für grundlegende Unterhaltungen; Gibt die Anzahl der Bytes an, die an die Fehlerprotokolldatei gesendet werden sollen. Der Bereich liegt zwischen 0 und 32767.

    Eine Länge von Null gibt an, dass keine Fehlerprotokolldaten vorhanden sind.

    log_dptr
    Bereitgestellter Parameter für grundlegende Unterhaltungen; Gibt die Adresse des Datenpuffers an, der Fehlerinformationen enthält. Die Daten werden an das lokale Fehlerprotokoll und an die logische Partnereinheit (LU) gesendet.

    Dieser Parameter wird von SEND_ERROR verwendet, wenn log_dlen größer als Null ist.

    Für Microsoft Windows kann sich der Datenpuffer in einem statischen Datenbereich oder in einem global zugewiesenen Bereich befinden. Der Datenpuffer muss vollständig in diesen Bereich passen.

    Der TP muss die Fehlerdaten als GDS-Fehlerprotokollvariable formatieren. Weitere Informationen finden Sie in Ihren IBM SNA-Handbüchern.For more information, see your IBM SNA manual(s).

Rückgabecodes

AP_OK
Primärer Rückgabecode; das Verb erfolgreich ausgeführt wurde.

AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.

AP_BAD_CONV_ID

Sekundärer Rückgabecode; der Wert von conv_id nicht mit einem Unterhaltungsbezeichner übereinstimmt, der von APPC zugewiesen wurde.

AP_BAD_TP_ID

Sekundärer Rückgabecode; der Wert von tp_id nicht mit einem TP-Bezeichner übereinstimmt, der von APPC zugewiesen wurde.

AP_BAD_ERROR_DIRECTION

Sekundärer Rückgabecode; die angegebene err_dir wurde von APPC nicht erkannt.

AP_INVALID_DATA_SEGMENT

Sekundärer Rückgabecode; Die Fehlerdaten für die Protokolldatei waren länger als das Segment, das die Fehlerdaten enthalten soll, oder die Adresse des Fehlerdatenpuffers war falsch.

AP_SEND_ERROR_BAD_TYPE

Sekundärer Rückgabecode; der Wert err_type ungültig war.

AP_SEND_ERROR_LOG_LL_WRONG

Sekundärer Rückgabecode; Das LL-Feld der GDS-Variable des Fehlerprotokolls entspricht nicht der tatsächlichen Länge der Daten.

Die folgenden Rückgabecodes können generiert werden, wenn SEND_ERROR in einem beliebigen zulässigen Zustand ausgegeben wird:

AP_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; gibt eine der folgenden Bedingungen an:

  • Der von dieser Unterhaltung verwendete Knoten hat einen ABEND gefunden.

  • Die Verbindung zwischen dem TP und dem PU 2.1-Knoten wurde unterbrochen (LAN-Fehler).

  • Die SnaBase auf dem Computer des TP ist ein ABEND aufgetreten.

    Der Systemadministrator sollte das Fehlerprotokoll untersuchen, um den Grund für den ABEND zu ermitteln.

    AP_COMM_SUBSYSTEM_NOT_LOADED
    Primärer Rückgabecode; Eine erforderliche Komponente konnte nicht geladen oder beendet werden, während das Verb verarbeitet wird. So konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

    Wenn dieser Rückgabecode mit ALLOCATE verwendet wird, kann es darauf hindeuten, dass kein Kommunikationssystem gefunden werden konnte, um die lokale LU zu unterstützen. (Der mit TP_STARTED angegebene lokale LU-Alias ist beispielsweise falsch oder wurde nicht konfiguriert.) Wenn lu_alias oder mode_name weniger als acht Zeichen enthält, müssen Sie sicherstellen, dass diese Felder mit Leerzeichen rechts gefüllt sind. Dieser Fehler wird zurückgegeben, wenn diese Parameter nicht mit Leerzeichen gefüllt sind, da kein Knoten verfügbar ist, der die ALLOCATE-Anforderung erfüllen kann.

    Wenn ALLOCATE diesen Rückgabecode für ein Hostintegrationsserver-Clientsystem erzeugt, das mit mehreren Knoten konfiguriert ist, gibt es zwei sekundäre Rückgabecodes wie folgt:

    0xF0000001

    Sekundärer Rückgabecode; es wurden keine Knoten gestartet.

    0xF0000002

    Sekundärer Rückgabecode; mindestens ein Knoten wurde gestartet, aber die lokale LU (wenn TP_STARTED ausgegeben wird) ist für keine aktiven Knoten konfiguriert. Das Problem könnte eine der folgenden sein:

  • Der Knoten mit der lokalen LU wird nicht gestartet.

  • Die lokale LU ist nicht konfiguriert.

    AP_CONV_FAILURE_NO_RETRY
    Primärer Rückgabecode; Die Unterhaltung wurde aufgrund einer dauerhaften Bedingung beendet, z. B. aufgrund eines Sitzungsprotokollfehlers. Der Systemadministrator sollte das Systemfehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln. Wiederholen Sie die Unterhaltung erst, wenn der Fehler behoben wurde.

    AP_CONV_FAILURE_RETRY
    Primärer Rückgabecode; Die Unterhaltung wurde aufgrund eines temporären Fehlers beendet. Starten Sie den TP neu, um festzustellen, ob das Problem erneut auftritt. Wenn dies der Fall ist, sollte der Systemadministrator das Fehlerprotokoll untersuchen, um die Ursache des Fehlers zu ermitteln.

    AP_CONVERSATION_TYPE_MIXED
    Primärer Rückgabecode; das TP sowohl grundlegende als auch zugeordnete Unterhaltungsverben ausgestellt hat. In einer einzigen Unterhaltung kann nur ein Typ ausgegeben werden.

    AP_INVALID_VERB_SEGMENT
    Primärer Rückgabecode; die VCB über das Ende des Datensegments hinaus erweitert wurde.

    AP_STACK_TOO_SMALL
    Primärer Rückgabecode; Die Stapelgröße der Anwendung ist zu klein, um das Verb auszuführen. Erhöhen Sie die Stapelgröße Ihrer Anwendung.

    AP_CONV_BUSY
    Primärer Rückgabecode; es kann jeweils nur ein herausragendes Unterhaltungsverb für jede Unterhaltung vorhanden sein. Dies kann auftreten, wenn der lokale TP mehrere Threads hat und mehrere Threads APPC-Aufrufe mit demselben conv_id ausgeben.

    AP_THREAD_BLOCKING
    Primärer Rückgabecode; Der aufrufende Thread befindet sich bereits in einem blockierenden Aufruf.

    AP_UNEXPECTED_DOS_ERROR
    Primärer Rückgabecode; Das Betriebssystem hat beim Verarbeiten eines APPC-Aufrufs vom lokalen TP einen Fehler an APPC zurückgegeben. Der Rückgabecode des Betriebssystems wird über die secondary_rc zurückgegeben. Es wird in intel byte-getauschter Reihenfolge angezeigt. Wenn das Problem weiterhin besteht, wenden Sie sich an den Systemadministrator.

    Die folgenden Rückgabecodes können nur generiert werden, wenn SEND_ERROR im SEND-Status ausgegeben wird:

    AP_ALLOCATION_ERROR
    Primärer Rückgabecode; APPC konnte eine Unterhaltung nicht zuordnen. Der Unterhaltungszustand ist auf RESET festgelegt.

    Dieser Code kann über ein Verb zurückgegeben werden, das nach ZUWEISUNG ausgegeben wurde.

    AP_ALLOCATION_FAILURE_NO_RETRY

    Sekundärer Rückgabecode; die Unterhaltung kann aufgrund einer dauerhaften Bedingung nicht zugewiesen werden, z. B. aufgrund eines Konfigurationsfehlers oder sitzungsprotokollfehlers. Um den Fehler zu ermitteln, sollte der Systemadministrator die Fehlerprotokolldatei untersuchen. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.

    AP_ALLOCATION_FAILURE_RETRY

    Sekundärer Rückgabecode; die Unterhaltung konnte aufgrund einer temporären Bedingung, z. B. aufgrund eines Verknüpfungsfehlers, nicht zugewiesen werden. Der Grund für den Fehler wird im Systemfehlerprotokoll protokolliert. Wiederholen Sie die Zuordnung.

    AP_CONVERSATION_TYPE_MISMATCH

    Sekundärer Rückgabecode; die Partner-LU oder TP unterstützt den in der Zuordnungsanforderung angegebenen Unterhaltungstyp (einfach oder zugeordnet) nicht.

    AP_PIP_NOT_ALLOWED

    Sekundärer Rückgabecode; Die zuordnungsanforderung angegebene PIP-Daten, aber entweder der Partner TP erfordert diese Daten nicht, oder die Partner-LU unterstützt sie nicht.

    AP_PIP_NOT_SPECIFIED_CORRECTLY

    Sekundärer Rückgabecode; Der Partner-TP erfordert PIP-Daten, aber die Zuordnungsanforderung hat entweder keine PIP-Daten oder eine falsche Anzahl von Parametern angegeben.

    AP_SECURITY_NOT_VALID

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

    AP_SYNC_LEVEL_NOT_SUPPORTED

    Sekundärer Rückgabecode; der Partner-TP unterstützt die in der Zuordnungsanforderung angegebenen sync_level (AP_NONE oder AP_CONFIRM_SYNC_LEVEL) nicht, oder die sync_level wurde nicht erkannt.

    AP_TP_NAME_NOT_RECOGNIZED

    Sekundärer Rückgabecode; die Partner-LU erkennt den in der Zuordnungsanforderung angegebenen TP-Namen nicht.

    AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

    Sekundärer Rückgabecode; die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung ist dauerhaft. Der Grund für den Fehler kann auf dem Remoteknoten protokolliert werden. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.

    AP_TRANS_PGM_NOT_AVAIL_RETRY

    Sekundärer Rückgabecode; die Remote-LU hat die Zuordnungsanforderung abgelehnt, da sie den angeforderten Partner-TP nicht starten konnte. Die Bedingung kann vorübergehend sein, z. B. ein Timeout. Der Grund für den Fehler kann auf dem Remoteknoten protokolliert werden. Wiederholen Sie die Zuordnung.

    AP_PROG_ERROR_PURGING
    Primärer Rückgabecode; während der Status "RECEIVE", "PENDING", "PENDING_POST", "CONFIRM", "CONFIRM_SEND" oder "CONFIRM_DEALLOCATE" hat der Partner-TP SEND_ERROR ausgestellt, wobei err_type auf AP_PROG festgelegt ist. Gesendete, aber noch nicht empfangene Daten werden gelöscht.

    Die folgenden Rückgabecodes können nur generiert werden, wenn SEND_ERROR im SEND-Status ausgegeben wird:

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

  • Der Partner-TP hat DEALLOCATE mit dealloc_type auf AP_ABEND_PROG festgelegt.

  • Der Partner TP hat einen ABEND gefunden, der dazu führt, dass der Partner LU eine DEALLOCATE-Anforderung sendet.

    AP_DEALLOC_ABEND_SVC
    Primärer Rückgabecode; die Unterhaltung wurde abgeglichen, da der Partner TP DEALLOCATE mit dealloc_type auf AP_ABEND_SVC festgelegt hat.

    AP_DEALLOC_ABEND_TIMER
    Primärer Rückgabecode; die Unterhaltung wurde zugeordnet, da der Partner TP DEALLOCATE mit dealloc_type auf AP_ABEND_TIMER festgelegt hat.

    AP_SVC_ERROR_PURGING
    Primärer Rückgabecode; die Partner-TP (oder Partner-LU), die SEND_ERROR ausgestellt hat, wobei err_type auf AP_SVC festgelegt ist, während sie den Status "RECEIVE", "PENDING_POST", "CONFIRM", "CONFIRM_SEND" oder "CONFIRM_DEALLOCATE" erhalten. Die an den Partner-TP gesendeten Daten wurden möglicherweise gelöscht.

    Der folgende Rückgabecode kann nur generiert werden, wenn SEND_ERROR im STATUS RECEIVE ausgegeben wird:

    AP_DEALLOC_NORMAL
    Primärer Rückgabecode; dieser Rückgabecode gibt keinen Fehler an.

    Der Partner TP hat DEALLOCATE mit dealloc_type auf eine der folgenden Optionen festgelegt:

  • AP_FLUSH

  • AP_SYNC_LEVEL mit der Synchronisierungsebene der Unterhaltung, die als AP_NONE

Bemerkungen

Die Unterhaltung kann sich in einem beliebigen Zustand befinden, mit Ausnahme von RESET, wenn das TP dieses Verb ausgibt. Der Unterhaltungszustand muss SEND_PENDING werden, wenn err_dir verwendet wird.

Der lokale TP sendet die Fehlerbenachrichtigung sofort an den Partner TP; Sie enthält die Informationen nicht im Sendepuffer der lokalen LU.

Bei erfolgreicher Ausführung dieses Verbs befindet sich die Unterhaltung im SEND-Zustand für das lokale TP und im RECEIVE-Zustand für den Partner-TP.

Der neue Zustand wird durch primary_rc bestimmt. Mögliche Statusänderungen werden in der folgenden Tabelle zusammengefasst.

primary_rc Neuer Zustand
AP_OK SENDEN
AP_ALLOCATION_ERROR ZURÜCKSETZEN
AP_CONV_FAILURE_RETRY ZURÜCKSETZEN
AP_CONV_FAILURE_NO_RETRY ZURÜCKSETZEN
AP_DEALLOC_ABEND ZURÜCKSETZEN
AP_DEALLOC_ABEND_PROG ZURÜCKSETZEN
AP_DEALLOC_ABEND_SVC ZURÜCKSETZEN
AP_DEALLOC_ABEND_TIMER ZURÜCKSETZEN
AP_DEALLOC_NORMAL ZURÜCKSETZEN
AP_PROG_ERROR_PURGING EMPFANGEN
AP_SVC_ERROR_PURGING EMPFANGEN

Wenn sich die Unterhaltung im RECEIVE-Zustand befindet, wenn das TP SEND_ERROR ausgibt, werden eingehende Daten von APPC gelöscht. Zu diesen Daten gehören:

  • Von SEND_DATA gesendete Daten.

  • Zurückgeben von Codeindikatoren.

  • Bestätigungsanforderungen.

  • Deallocation-Anforderungen.

    APPC löscht keinen Eingehenden Anforderungs-zu-Senden-Indikator. APPC ersetzt gelöschte eingehende Rückgabecodeindikatoren durch andere Rückgabecodes. Der primäre Rückgabecode AP_OK ersetzt die folgenden gelöschten Rückgabecodeindikatoren:

    AP_PROG_ERROR_NO_TRUNC

    AP_PROG_ERROR_PURGING

    AP_PROG_ERROR_TRUNC

    AP_SVC_ERROR_NO_TRUNC

    AP_SVC_ERROR_PURGING

    AP_SVC_ERROR_TRUNC

    Der primäre Rückgabecode AP_DEALLOC_NORMAL ersetzt die folgenden gelöschten Rückgabecodeindikatoren:

    AP_ALLOCATION_ERROR

    AP_ALLOCATION_FAILURE_NO_RETRY

    AP_ALLOCATION_FAILURE_RETRY

    AP_CONVERSATION_TYPE_MISMATCH

    AP_DEALLOC_ABEND

    AP_DEALLOC_ABEND_PROG

    AP_DEALLOC_ABEND_SVC

    AP_DEALLOC_ABEND_TIMER

    AP_PIP_NOT_ALLOWED

    AP_PIP_NOT_SPECIFIED_CORRECTLY

    AP_SECURITY_NOT_VALID

    AP_SYNC_LEVEL_NOT_SUPPORTED

    AP_TP_NAME_NOT_RECOGNIZED

    AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

    AP_TRANS_PGM_NOT_AVAIL_RETRY

    Wenn sich die Unterhaltung in SEND_PENDING Zustand befindet, meldet APPC basierend auf dem Wert in err_dir die folgenden Rückgabecodes an den Partner-TP:

    AP_PROG_ERROR_PURGING
    Der lokale TP hat SEND_ERROR mit RECEIVE als err_dir ausgestellt.

    AP_PROG_ERROR_NO_TRUNC
    Der lokale TP hat SEND_ERROR mit SEND als err_dir ausgestellt.

    AP_SVC_ERROR_PURGING
    Der lokale TP hat SEND_ERROR mit RECEIVE als err_dir ausgestellt.

    AP_SVC_ERROR_NO_TRUNC
    Der lokale TP hat SEND_ERROR mit SEND als err_dir ausgestellt.