Freigeben über


REQUEST_TO_SEND

Das REQUEST_TO_SEND Verb benachrichtigt das Partnertransaktionsprogramm (TP), dass das lokale TP Daten senden möchte.

Die folgende Struktur beschreibt den Verb-Kontrollblock (VCB), der vom REQUEST_TO_SEND Verb verwendet wird.

Syntax

  
struct request_to_send {  
    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;  
};   

Member

opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs an, AP_B_REQUEST_TO_SEND.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_BASIC_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 von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

conv_id
Angegebener Parameter. Stellt den Unterhaltungsbezeichner bereit.

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

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_STATE_CHECK
Primärer Rückgabecode; das Verb wurde nicht ausgeführt, da es in einem ungültigen Zustand ausgegeben wurde.

AP_R_T_S_BAD_STATE

Sekundärer Rückgabecode; Die Konversation befindet sich nicht in einem zulässigen Zustand, als das TP dieses Verb ausgestellt hat.

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 nicht geladen werden oder wurde während der Verarbeitung des Verbs beendet. Folglich 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 dies darauf hindeuten, dass kein Kommunikationssystem gefunden wurde, das die lokale logische Einheit (LU) unterstützt. (Beispielsweise ist der mit TP_STARTED angegebene lokale LU-Alias falsch oder wurde nicht konfiguriert.) Wenn lu_alias oder mode_name weniger als acht Zeichen umfasst, müssen Sie sicherstellen, dass diese Felder rechts mit Leerzeichen 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 Mit mehreren Knoten konfiguriertes Microsoft Host Integration Server-Clientsystem erzeugt, gibt es wie folgt zwei sekundäre Rückgabecodes:

    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 ausgestellt wird) ist auf keinem aktiven Knoten konfiguriert. Das Problem kann eines der folgenden Sein:

  • Der Knoten mit der lokalen LU wird nicht gestartet.

  • Die lokale LU ist nicht konfiguriert.

    AP_CONVERSATION_TYPE_MIXED
    Primärer Rückgabecode; der TP hat sowohl grundlegende als auch zugeordnete Konversationsverben ausgegeben. In einer einzelnen Unterhaltung kann nur ein Typ ausgegeben werden.

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

    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 jeweils nur ein ausstehendes Konversationsverb gleichzeitig geben. Dies kann auftreten, wenn das 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.

Hinweise

Die Konversation kann sich in einem der folgenden Zustände befinden, wenn das TP dieses Verb ausgibt:

BESTÄTIGEN

PENDING_POST (OS/2)

RECEIVE

Es gibt keine Zustandsänderung.

Die Anforderungs-zu-Senden-Benachrichtigung wird vom Partnerprogramm über den parameter rts_rcvd der folgenden Verben empfangen:

  • BESTÄTIGEN

  • RECEIVE_AND_POST

  • RECEIVE_AND_WAIT

  • RECEIVE_IMMEDIATE

  • SEND_DATA

  • SEND_ERROR

    Es wird auch durch eine primary_rc von AP_OK auf TEST_RTS angegeben.

    Die Anforderungs-zu-Senden-Benachrichtigung wird sofort an den Partner-TP gesendet. APPC wartet nicht, bis der Sendepuffer aufgefüllt oder geleert wird. Folglich kann die Anforderungs-zu-Senden-Benachrichtigung außerhalb der Reihenfolge eingehen. Wenn sich der lokale TP beispielsweise im SEND-Zustand befindet und PREPARE_TO_RECEIVE gefolgt von REQUEST_TO_SEND ausgibt, erhält der Partner-TP im RECEIVE-Zustand möglicherweise die Anforderungs-zum-Senden-Benachrichtigung, bevor er die Sendebenachrichtigung empfängt. Aus diesem Grund kann anforderungs-to-send über ein Empfangsverb an einen TP gemeldet werden.

    Als Antwort auf diese Anforderung kann der Partner tp die Konversation in ändern:

  • RECEIVE-Status durch Ausstellung von PREPARE_TO_RECEIVE oder RECEIVE_AND_WAIT.

  • PENDING_POST Staat, indem sie RECEIVE_AND_POST.

    Der Partner-TP kann auch die Anforderung zum Senden ignorieren.

    Der Unterhaltungszustand ändert sich für den lokalen TP in SEND, wenn der lokale TP einen der folgenden Werte über den what_rcvd-Parameter eines nachfolgenden Empfangsverbens empfängt:

  • AP_CONFIRM_SEND und Antworten mit CONFIRMED

  • AP_DATA_COMPLETE_CONFIRM_SEND und Antworten mit CONFIRMED

  • AP_DATA_CONFIRM_SEND und Antworten mit BESTÄTIGT

  • AP_SEND

    Die Empfangsverben sind RECEIVE_AND_POST, RECEIVE_IMMEDIATE und RECEIVE_AND_WAIT.