Freigeben über


MC_PREPARE_TO_RECEIVE

Das MC_PREPARE_TO_RECEIVE Verb ändert den Zustand der Unterhaltung für das lokale Transaktionsprogramm (TP) von SEND in RECEIVE.

Die folgende Struktur beschreibt den verb control block (VCB), der vom MC_PREPARE_TO_RECEIVE Verb verwendet wird.

Syntax

  
struct mc_prepare_to_receive {  
    unsigned short   opcode;  
    unsigned char    opext;  
    unsigned char    primary_rc;  
    unsigned short   reserv2;  
    unsigned long    secondary_rc;  
    unsigned char    tp_id[8];  
    unsigned long    conv_id;  
    unsigned char    ptr_type;  
    unsigned char    locks;  
};   

Hinweise

Mitglieder

opcode
Angegebener Parameter. Gibt den Verbvorgangscode AP_M_PREPARE_TO_RECEIVE an.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_MAPPED_CONVERSATION.

reserv2
Ein reserviertes Feld.

primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

secondary_rc
Zurückgegebener Parameter. Gibt den sekundären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

tp_id
Angegebener Parameter. Identifiziert den lokalen TP. Der Wert dieses Parameters wird von TP_STARTED beim Aufrufen von TP oder vonRECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

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

ptr_type
Angegebener Parameter. Gibt an, wie die Zustandsänderung durchgeführt werden soll.

Verwenden Sie AP_FLUSH, um den Inhalt des Sendepuffers der lokalen logischen Einheit (LU) an die Partner-LU (und TP) zu senden, bevor Sie den Zustand der Unterhaltung in RECEIVE ändern.

Der wert AP_SYNC_LEVEL verwendet die Synchronisierungsebene der Konversation (festgelegt durch MC_ALLOCATE), um zu bestimmen, wie die Zustandsänderung durchgeführt werden soll.

Wenn die Synchronisierungsebene der Unterhaltung AP_NONE ist, sendet APPC den Inhalt des Sendepuffers der lokalen LU an den Partner-TP, bevor der Zustand der Unterhaltung in RECEIVE geändert wird. Wenn die Synchronisierungsebene AP_CONFIRM_SYNC_LEVEL ist, sendet APPC den Inhalt des Sendepuffers der lokalen LU sowie eine Bestätigungsanforderung an den Partner-TP. Nach Erhalt der Bestätigung vom Partner-TP ändert APPC den Zustand der Unterhaltung in RECEIVE. Wenn der Partner-TP jedoch einen Fehler meldet, ändert sich der Status in RECEIVE oder RESET. Weitere Informationen finden Sie in den Hinweisen in diesem Thema.

locks
Angegebener Parameter. Gibt an, wann APPC die Steuerung an das lokale TP zurückgeben soll.

Verwenden Sie diesen Parameter nur, wenn ptr_type auf AP_SYNC_LEVEL festgelegt ist und die von MC_ALLOCATE festgelegte Synchronisierungsebene der Konversation AP_CONFIRM_SYNC_LEVEL ist. (Andernfalls wird der Parameter ignoriert.)

  • AP_LONG gibt an, dass APPC die Steuerung an das lokale TP zurückgibt, wenn die Bestätigung und nachfolgende Daten des Partner-TP bei der lokalen LU eingehen. (Diese Methode führt zu einer effizienteren Verwendung des Netzwerks, erfordert jedoch eine längere Zeit, um die Steuerung an den lokalen TP zurückzugeben.)

  • AP_SHORT gibt an, dass APPC die Steuerung an das lokale TP zurückgibt, wenn die Bestätigung des Partner-TP bei der lokalen LU eintrifft.

    Rückgabecodes

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

    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 stimmte nicht mit einem von APPC zugewiesenen Konversationsbezeichner überein.

    AP_BAD_TP_ID

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

    AP_P_TO_R_INVALID_TYPE

    Sekundärer Rückgabecode; Der parameter ptr_type wurde nicht auf einen gültigen Wert festgelegt.

    AP_STATE_CHECK
    Primärer Rückgabecode; das Verb wurde nicht ausgeführt, da es in einem ungültigen Zustand ausgegeben wurde.

    AP_P_TO_R_NOT_SEND_STATE

    Sekundärer Rückgabecode; Die Unterhaltung befand sich nicht im SEND-Zustand.

    AP_P_TO_R_NOT_LL_BDY

    Sekundärer Rückgabecode; Das lokale TP hat das Senden eines logischen Datensatzes nicht abgeschlossen.

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

    Dieser Code kann über ein Verb zurückgegeben werden, das nach MC_ALLOCATE ausgegeben wird.

    AP_ALLOCATION_FAILURE_NO_RETRY

    Sekundärer Rückgabecode; Die Konversation kann aufgrund einer permanenten Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurations- oder Sitzungsprotokollfehlers. Um den Fehler zu ermitteln, sollte der Systemadministrator sollte das Fehlerprotokoll untersuchen. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.

    AP_ALLOCATION_FAILURE_RETRY

    Sekundärer Rückgabecode; Die Konversation konnte aufgrund einer temporären Bedingung, z. B. eines Linkfehlers, nicht zugeordnet 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 Konversationstyp (basic oder mapped) nicht.

    AP_PIP_NOT_ALLOWED

    Sekundärer Rückgabecode; In der Zuordnungsanforderung wurden PIP-Daten angegeben, aber entweder erfordert das Partner-TP 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 angegebene 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 permanent. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. 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 temporär sein, z. B. ein Timeout. Der Grund für den Fehler wird möglicherweise auf dem Remoteknoten protokolliert. Wiederholen Sie die Zuordnung.

    AP_COMM_SUBSYSTEM_ABENDED
    Primärer Rückgabecode; weist darauf hin, dass eine der folgenden Bedingungen aufgetreten ist:

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

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

  • SnaBase auf dem Computer des TP hat einen ABEND gefunden.

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

    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; der TP hat sowohl grundlegende als auch zugeordnete Konversationsverben ausgegeben. Nur ein Typ kann in einer einzelnen Unterhaltung ausgegeben werden.

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

    AP_PROG_ERROR_PURGING
    Primärer Rückgabecode; im Status RECEIVE, PENDING, PENDING_POST, CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE zustand, hat der Partner-TP MC_SEND_ERROR ausgestellt. Gesendete, aber noch nicht empfangene Daten werden gelöscht.

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

    AP_CONV_BUSY
    Primärer Rückgabecode; es kann nur ein herausragendes Konversationsverb gleichzeitig für jede Unterhaltung geben. Dies kann auftreten, wenn der lokale TP über mehrere Threads verfügt und mehr als ein Thread APPC-Aufrufe mit demselben conv_id ausgibt.

    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 bei der Verarbeitung eines APPC-Aufrufs vom lokalen TP einen Fehler an APPC zurückgegeben. Der Rückgabecode des Betriebssystems wurde über secondary_rc zurückgegeben. Er wird in Intel-Bytetauschreihenfolge angezeigt. Wenn das Problem weiterhin besteht, wenden Sie sich an Ihren Systemadministrator.

    AP_DEALLOC_ABEND
    Primärer Rückgabecode; die Konversation wurde aus einem der folgenden Gründe behandelt:

  • Der Partner-TP, der MC_DEALLOCATE ausgestellt hat , wobei dealloc_type auf AP_ABEND festgelegt ist.

  • Der Partner-TP ist auf ein ABEND-Ereignis gestoßen, sodass die Partner-LU eine MC_DEALLOCATE-Anforderung sendet.

    Anmerkungen

    Vor dem Ändern des Unterhaltungszustands führt dieses Verb das Äquivalent zu einem der folgenden aus:

  • MC_FLUSH, indem sie den Inhalt des Sendepuffers der lokalen LU an die Partner-LU (und tp) senden.

  • MC_CONFIRM, indem Sie den Inhalt des Sendepuffers der lokalen LU und eine Bestätigungsanforderung an den Partner-TP senden.

    Nachdem dieses Verb erfolgreich ausgeführt wurde, kann der lokale TP Daten empfangen.

    Die Unterhaltung muss sich im SEND-Zustand befinden, wenn das TP dieses Verb ausgibt.

    Zustandsänderungen, die in der folgenden Tabelle zusammengefasst sind, basieren auf dem Wert von primary_rc.

primary_rc Neuer Zustand
AP_OK RECEIVE
AP_ALLOCATION_ERROR RESET
AP_CONV_FAILURE_RETRY RESET
AP_CONV_FAILURE_NO_RETRY RESET
AP_DEALLOC_ABEND RESET
AP_DEALLOC_ABEND_PROG RESET
AP_DEALLOC_ABEND_SVC RESET
AP_DEALLOC_ABEND_TIMER RESET
AP_PROG_ERROR_PURGING RECEIVE
AP_SVC_ERROR_PURGING RECEIVE

Die Konversation ändert sich erst in den SEND-Zustand für das Partner-TP, bis der Partner-TP einen der folgenden Werte über den what_rcvd-Parameter eines nachfolgenden Empfangsverbens empfängt: