TEST_RTS_AND_POST
Das verb TEST_RTS_AND_POST ermöglicht es einer Anwendung, in der Regel einem 5250-Emulator, asynchrone Benachrichtigungen anzufordern, wenn ein Partnertransaktionsprogramm (TP) eine Senderichtung anfordert.
Die folgende Struktur beschreibt den Verb-Kontrollblock (VCB), der vom TEST_RTS_AND_POST Verb verwendet wird.
Syntax
struct test_rts {
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 reserv3;
unsigned long handle;
};
Member
opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs an, AP_B_TEST_RTS_AND_POST.
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 wurde 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 wurde von ALLOCATE im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.
reserv3
Ein reserviertes Feld.
Behandeln
Angegebener Parameter. Unter Microsoft Windows stellt dieses Feld das festzulegende Ereignishandle bereit.
Zurückgeben von Codes vom Anfänglichen Verb
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt. Beachten Sie insbesondere, dass ein Rückgabecode von AP_OK aus dem anfänglichen Verb nicht angibt, dass REQUEST_TO_SEND Verb vom Partner-TP empfangen wurde. Es gibt einfach an, dass die Funktion zum Empfangen von asynchronen Benachrichtigungen registriert wurde.
AP_UNSUCCESSFUL
Primärer Rückgabecode; Die Anforderungs-zu-Senden-Benachrichtigung wurde nicht empfangen.
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 von APPC zugewiesenen Unterhaltungsbezeichner übereinstimmt.
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_INVALID_SEMAPHORE_HANDLE
Sekundärer Rückgabecode, der Wert von handle war ungültig.
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 werden oder wurde 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 enthält, 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 Host Integration Server-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 ausgestellt wird) ist nicht auf aktiven Knoten konfiguriert. Das Problem kann wie folgt aussehen:
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. 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_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.
Zurückgeben von Codes aus asynchroner Vervollständigung
AP_OK
Primärer Rückgabecode; die Anforderungs-zum-Senden-Benachrichtigung wurde vom Partner-TP empfangen.
AP_CANCELLED
Das ausstehende TEST_RTS_AND_POST Verb wurde beendet. Dies tritt auf, wenn die zugrunde liegende Konversation zugeordnet oder ein AP_TP_ENDED ausgestellt wurde. Beachten Sie, dass der TP wie bei RECEIVE_AND_POST weiterhin für das ordnungsgemäße Beenden der Konversation und möglicherweise für das Beenden des TP verantwortlich ist. Wenn Sie an diesem Punkt ein weiteres Verb wie RECEIVE_IMMEDIATE ausgeben, wird der Grund für den Konversationsfehler angegeben.
Die Unterhaltung kann sich in einem beliebigen Zustand befinden, mit Ausnahme von RESET, wenn das TP dieses Verb ausgibt. Es gibt keine Zustandsänderung.
Ein häufiges Feature vieler APPC-Anwendungen, z. B. 5250-Emulatoren, ist eine Anforderung, um die Anforderung eines Partners zu erkennen, die gesendet werden soll. Derzeit kann dies durch Abfragen der APPC-Schnittstelle erfolgen, um die Anfrage des Partners zu erkennen. Beispielsweise kann eine Anwendung gelegentlich eines der folgenden Verben ausgeben:
- TEST_RTS
Hinweise
RECEIVE_IMMEDIATE und überprüfen Sie das Feld rts_rcvd
SEND_DATA null Bytes, überprüfen Sie erneut das Feld rts_rcvd .
Einige der Probleme, die mit diesem Abfrageansatz verbunden sind, sind:
Die Anwendung muss ihre Standard arbeit kontinuierlich unterbrechen, um APPC abzufragen.
Die Anfrage des Partners wird nicht erkannt, sobald sie verfügbar ist.
Diese Ansätze sind prozessorintensiv.
Das verb TEST_RTS_AND_POST ermöglicht es einer Anwendung, die unter Windows ausgeführt wird, in der Regel ein 5250-Emulator, asynchrone Benachrichtigungen anzufordern, wenn die Partner-TP-Anforderungen Richtung senden.
Eine APPC-Anwendung gibt in der Regel das TEST_RTS_AND_POST Verb im SEND-Zustand aus und fährt dann mit der Standard Verarbeitung fort. Eine Anforderung für die Senderichtung vom Partner-TP wird asynchron an die Anwendung angezeigt. Nach der Bearbeitung der Partneranforderung kehrt die Anwendung in der Regel in den SEND-Zustand zurück, stellt TEST_RTS_AND_POST erneut aus und fährt fort.
Das TEST_RTS_AND_POST Verb wird synchron abgeschlossen, und der Rückgabecode AP_OK gibt an, dass eine Anforderung für asynchrone Benachrichtigung registriert wurde. Es ist wichtig zu betonen, dass dies nicht darauf hindeutet, dass die Anforderung zum Senden vom Partner-TP empfangen wurde.
Wenn die Sendeanforderung des Partners empfangen wird, tritt die asynchrone Ereignisvervollständigung auf. Es ist wichtig zu beachten, dass dies vor dem Abschluss des ursprünglichen TEST_RTS_AND_POST Verbs des lokalen TP erfolgen kann. Dies ist der Fall, wenn die Sendeanforderung des Partners empfangen wurde, bevor das TEST_RTS_AND_POST Verb des lokalen TP ausgestellt wurde oder während das TEST_RTS_AND_POST Verb des lokalen TP verarbeitet wurde.