Freigeben über


MC_POST_ON_RECEIPT

Das MC_POST_ON_RECEIPT Verb ermöglicht es der Anwendung, sich zu registrieren, um eine Benachrichtigung zu erhalten, wenn Daten oder status bei der lokalen logischen Einheit (LU) eingehen, ohne sie gleichzeitig zu erhalten. Dieses Verb kann nur im EMPFANGSzustand ausgegeben werden und führt nie zu einer Änderung des Konversationszustands.

Wenn das Transaktionsprogramm (TP) dieses Verb ausgibt, gibt APPC sofort die Steuerung an das TP zurück. Wenn die angegebenen Bedingungen erfüllt sind, wird das vom sema-Parameter angegebene Win32-Ereignis® signalisiert, und das Verb wird abgeschlossen. Anschließend überprüft der TP den Rückgabecode im Verb-Kontrollblock (VCB), um zu ermitteln, ob Daten oder status Benachrichtigungen bei der lokalen LU eingetroffen sind, und gibt ein MC_RECEIVE_IMMEDIATE oder MC_RECEIVE_AND_WAIT Verb aus, um tatsächlich die Daten oder status Benachrichtigung zu erhalten.

Das MC_POST_ON_RECEIPT Verb implementiert sowohl die Verben POST_ON_RECEIPT als auch test , wie im IBM Transaction Programmer's manual for LU Type 6.2 beschrieben.

Die folgende Struktur beschreibt den Verb-Kontrollblock, der vom MC_POST_ON_RECEIPT Verb verwendet wird.

Syntax

  
struct mc_post_on_receipt {  
    unsigned short   opcode;  
    unsigned char    opext;  
    unsigned char    reserv1;  
    unsigned char    primary_rc;  
    unsigned long    secondary_rc;  
    unsigned char    tp_id[8];  
    unsigned long    conv_id;  
    unsigned short   reserv2;  
    unsigned char    reserv3;  
    unsigned char    reserv4;  
    unsigned short   max_len;  
    unsigned short   reserv5;  
    unsigned char *  reserv6;  
    unsigned char    reserv7[5];  
    unsigned long    sema;  
};   

Member

opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs AP_M_POST_ON_RECEIPT an.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_MAPPED_CONVERSATION.

reserv1
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.

reserv2
Ein reserviertes Feld.

reserv3
Ein reserviertes Feld.

reserv4
Ein reserviertes Feld.

max_len
Angegebener Parameter. Gibt die Länge der Daten an, die APPC auslöst, um eine Benachrichtigung an den TP zu senden.

reserv5
Ein reserviertes Feld.

reserv6
Ein reserviertes Feld.

reserv7
Ein reserviertes Feld.

Sema
Angegebener Parameter. Gibt das Handle eines Win32-Ereignisses an. Das Ereignis sollte vom TP erstellt worden sein, und der TP ist dafür verantwortlich, sicherzustellen, dass es vor einem Aufruf und nach Abschluss des Verbs zurückgesetzt wird.

Rückgabecodes

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

AP_DATA

Sekundärer Rückgabecode; Daten stehen für das Programm zum Empfang zur Verfügung.

AP_NOT_DATA

Sekundärer Rückgabecode; Andere Informationen als Daten sind für das Programm verfügbar.

AP_CANCELLED
Primärer Rückgabecode; das Verb wurde abgebrochen.

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_INVALID_SEMAPHORE_HANDLE

Sekundärer Rückgabecode; Der sema-Parameter 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_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_COMM_SUBSYSTEM_NOT_LOADED
    Primärer Rückgabecode; eine erforderliche Komponente konnte während der Verarbeitung des Verbs nicht geladen oder beendet werden. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

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

  • Der partner TP hat MC_DEALLOCATE ausgestellt.

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

    AP_DEALLOC_NORMAL
    Primärer Rückgabecode; der Partner TP die Konversation zugeordnet hat, ohne eine Bestätigung angefordert zu haben, und MC_DEALLOCATE mit dealloc_type auf eine der folgenden Einstellungen festgelegt hat:

  • AP_CONFIRM_SYNC_LEVEL

  • AP_FLUSH

  • AP_SYNC_LEVEL mit der Synchronisierungsebene der Unterhaltung, die als AP_NONE

    AP_PROG_ERROR_NO_TRUNC
    Primärer Rückgabecode; der Partner tp hat MC_SEND_ERROR ausgestellt, während sich die Unterhaltung im SEND-Zustand befand. Daten wurden nicht gekürzt.

    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_PROG_ERROR_TRUNC
    Primärer Rückgabecode; der Partner tp hat MC_SEND_ERROR ausgestellt, während sich die Unterhaltung im SEND-Zustand befand. Die Daten wurden gekürzt.

    AP_SVC_ERROR_NO_TRUNC
    Primärer Rückgabecode; die Partner-TP (oder Partner-LU), die MC_SEND_ERROR ausgestellt hat, wobei err_type im Status "RECEIVE", "PENDING_POST", "CONFIRM", "CONFIRM_SEND" oder "CONFIRM_DEALLOCATE" auf AP_SVC festgelegt ist. Daten, die an den Partner-TP gesendet wurden, wurden nicht abgeschnitten.

    AP_SVC_ERROR_PURGING
    Primärer Rückgabecode; die Partner-TP (oder Partner-LU), die MC_SEND_ERROR ausgestellt hat, wobei err_type im Status "RECEIVE", "PENDING_POST", "CONFIRM", "CONFIRM_SEND" oder "CONFIRM_DEALLOCATE" auf AP_SVC festgelegt ist. Daten, die an die Partner-TP gesendet wurden, wurden möglicherweise gelöscht.

    AP_SVC_ERROR_TRUNC
    Primärer Rückgabecode; die Partner-TP (oder Partner-LU), die MC_SEND_ERROR ausgestellt hat, wobei err_type im Status "RECEIVE", "PENDING_POST", "CONFIRM", "CONFIRM_SEND" oder "CONFIRM_DEALLOCATE" auf AP_SVC festgelegt ist. Daten, die an den Partner-TP gesendet wurden, wurden möglicherweise abgeschnitten.

Hinweise

Während ein MC_POST_ON_RECEIPT Verb hervorragend ist, können die folgenden Verben in derselben Konversation ausgegeben werden:

GET_ATTRIBUTES

GET_TYPE

MC_DEALLOCATE

MC_RECEIVE_AND_WAIT

MC_RECEIVE_IMMEDIATE

MC_REQUEST_TO_SEND

MC_SEND_ERROR

MC_TEST_RTS

TP_ENDED

Das Ausgeben eines der folgenden Verben vor Abschluss des asynchronen MC_POST_ON_RECEIPT Verbs bewirkt, dass das MC_POST_ON_RECEIPT Verb abgebrochen wird (das Win32-Ereignis wird signalisiert, und der primäre Rückgabecode im Verbsteuerungsblock ist auf AP_CANCELLED festgelegt).

MC_DEALLOCATE

MC_RECEIVE_AND_WAIT

MC_RECEIVE_IMMEDIATE

MC_SEND_ERROR

TP_ENDED