RECEIVE_ALLOCATE_EX
Das verb RECEIVE_ALLOCATE_EX akzeptiert eine neue VCB-Struktur, um die Registrierung eines anfügenden Managers zu ermöglichen.
Syntax
typedef struct receive_allocate_ex {
unsigned short opcode;
unsigned char opext;
unsigned char format;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_name[64];
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char sync_level;
unsigned char conv_type;
unsigned char user_id[10];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char mode_name[8];
unsigned char reserv3[2];
unsigned long conv_group_id;
unsigned char fqplu_name[17];
unsigned char pip_incoming;
unsigned long timeout;
unsigned char password[10];
unsigned char reserv5[2];
unsigned char attach_id[8];
}
Member
opcode
Angegebener Parameter: RECEIVE_ALLOCATE_EX
opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_BASIC_CONVERSATION.
format
Reservierter Parameter.
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.
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.
tp_name
Angegebener Parameter. Der tp_name ist nur ein zurückgegebener Parameter. Die Anwendung muss jedoch genügend Pufferspeicherplatz zuweisen, um die tp_name (d. h. 64 Zeichen) aufzunehmen und den Namen in EBCDIC-Leerzeichen zu initialisieren (hexadezimales X'40').
Das zurückgegebene Verb enthält den tatsächlichen TP-Namen, der vom Remotesystem gesendet wird.
tp_id
Zurückgegebener Parameter. Identifiziert den lokalen TP.
conv_id
Zurückgegebener Parameter. Stellt den Unterhaltungsbezeichner bereit. Es identifiziert die Konversation, die APPC zwischen den beiden Partner-TPs eingerichtet hat.
sync_level
Zurückgegebener Parameter. Gibt die Synchronisierungsebene der Unterhaltung an. Sie bestimmt, ob die TPs eine Empfangsbestätigung der Daten anfordern und den Empfang der Daten bestätigen können.
AP_NONE gibt an, dass die Bestätigungsverarbeitung in dieser Unterhaltung nicht verwendet wird.
AP_CONFIRM_SYNC_LEVEL gibt an, dass die TPs die Bestätigungsverarbeitung in dieser Unterhaltung verwenden können.
AP_SYNCPT gibt an, dass TPs die Bestätigungsverarbeitung für Synchronisierungspunktebene 2 in dieser Unterhaltung verwenden können.
conv_type
Zurückgegebener Parameter. Gibt den Vom Partner-TP ausgewählten Konversationstyp mit MC_ALLOCATE oder ALLOCATE an. Folgende Werte sind möglich:AP_BASIC_CONVERSATION
AP_MAPPED_CONVERSATION
user_id
Dies ist die EBCDIC-user_id, die vom Remotesystem gesendet wird.lu_alias
Angegebener Parameter. Lokaler LU-Alias. Muss angegeben werden, um einen anfügenden Manager zu registrieren. Nur ein Anfügungs-Manager kann für einen bestimmten lokalen LU-Alias innerhalb der Host Integration Server-Unterdomäne registriert werden. Wenn bereits ein anderer Anfügungs-Manager-Prozess für diesen lu_alias registriert ist, wird der folgende Fehler zurückgegeben:primary_rc = AP_STATE_CHECK (0x0002) secondary_rc = AP_LU_ALREADY_REGISTERED (0x0000050A)
Dies gibt an, dass Host Integration Server diesen anfügenden Manager nicht registrieren konnte.
plu_alias
Zurückgegebener Parameter. Stellt den Alias bereit, mit dem die Partner-LU (die die eingehende Zuordnung initiiert hat) dem lokalen TP bekannt ist. Es handelt sich um eine ASCII-Zeichenfolge.mode_name
Zurückgegebener Parameter. Stellt den Modusnamen bereit, der durch MC_ALLOCATE oder ALLOCATE im Partner-TP angegeben wird. Dies ist der Name einer Reihe von Netzwerkmerkmalen, die während der Konfiguration definiert wurden. Die mode_name ist eine EBCDIC-Zeichenfolge vom Typ A.reserv3
Reservierter Parameter.conv_group_id
Unterhaltungsgruppenbezeichner.fqplu_name
Dieser zurückgegebene Parameter stellt den vollqualifizierten LU-Namen bereit.pip_incoming
Angegebener Parameter. Wenn dieser Anfüge-Manager eingehende FMH-5-Attaches akzeptiert, die PIP-Daten enthalten, legen Sie dies auf AP_YES fest. Legen Sie andernfalls AP_NO fest.Zurückgegebener Parameter: Wenn PIP-Daten im eingehenden Attach vorhanden sind, wird dies auf AP_YES festgelegt. Wenn keine PIP-Daten vorhanden sind, wird dies auf AP_NO festgelegt.
timeout
Timeout in Sekunden. Ein Wert von 0xFFFFFFFF kann verwendet werden, um ewig zu warten.password
Zurückgegebener Parameter: Dies ist das vom Remotesystem gesendete EBCDIC-Kennwort. Wenn das Remotesystem die Kennwortersetzung (Kennwortverschlüsselung) unterstützt, wird das verschlüsselte Kennwort in RECEIVE_ALLOCATE_EX empfangen. Es gibt keine Möglichkeit, dieses Kennwort zu entschlüsseln, sodass die Anwendung die Benutzeranmeldeinformationen nicht überprüfen kann.reserv5
Reservierter Parameter.attach_id
Zurückgegebener Parameter. Immer auf 0 festgelegt. Dieses Feld ist für die Quellkompatibilität mit Nicht-Microsoft SNA-Produkten definiert.
Hinweise
Host Integration Server unterstützt APPC-RECEIVE_ALLOCATE_EX und RECEIVE_ALLOCATE_EX_END , um den Entwurf und die Implementierung einiger aufrufbarer Transaktionsprogramme zu vereinfachen. Mit dieser Funktion kann eine APPC-Anwendung alle eingehenden FMH-5 Attach-Anforderungen empfangen, die vom Host Integration Server über eine bestimmte lokale APPC LU empfangen werden, sodass eine Anwendung als "Anfügen-Manager" fungieren kann. Ein Anfüge-Manager ist ein Programm, das eine eingehende FMH-5-Anfügungsanforderung verarbeitet, um eine LU6.2-Konversation zu starten. Wenn eine APPC-Anwendung RECEIVE_ALLOCATE aufruft (im Gegensatz zu RECEIVE_ALLOCATE_EX), übernimmt Host Integration Server die Funktionalität des Anfügen-Managers. Um die Anfügungs-Manager-Funktionalität in einer APPC-Anwendung zu implementieren, geschieht Folgendes:
Die Anwendung stellt einen lokalen APPC LU-Alias für die RECEIVE_ALLOCATE_EX-Funktion mit einer tp_name von EBCDIC-Leerzeichen (hexadezimales X'40') bereit.
Wenn Host Integration Server eine eingehende FMH-5-Anfügungsanforderung über eine LU6.2-Sitzung mit dieser lokalen APPC-LU empfängt, leitet Host Integration Server die Anforderung an die Anwendung weiter.
Wenn die RECEIVE_ALLOCATE_EX abgeschlossen ist, ist die Anwendung für Folgendes verantwortlich:
Annehmen oder Ablehnen des FMH-5-Attach
Überprüfen der Sicherheit auf Konversationsebene und
Wenn Sie die anfügende Anforderung annehmen, verarbeiten Sie die Anforderung vollständig innerhalb des Win32-Prozesskontexts.
Zum Beenden des Lauschens auf neue eingehende Anfügungsanforderungen ruft die Anwendung RECEIVE_ALLOCATE_EX_END auf.
Nachdem ein Prozess RECEIVE_ALLOCATE_EX ausgibt, sollte der Prozess nicht RECEIVE_ALLOCATE mit einem bestimmten TP-Namen aufrufen. Wenn ein Prozess RECEIVE_ALLOCATE aufruft, sollte dieser Prozess später nicht RECEIVE_ALLOCATE_EX aufrufen. Anders ausgedrückt: Für die Dauer eines Prozesses, der einen aufrufbaren TP unterstützt, sollte der Prozess ausschließlich RECEIVE_ALLOCATE oder RECEIVE_ALLOCATE_EX aufrufen, aber nicht beides.
Es ist nicht möglich, dass die Anwendung die eingehende Anfügungsanforderung an einen anderen Prozess sendet, da die Konversations-ID nur innerhalb ihres eigenen Anwendungskontexts gültig ist.
Hinweis
: Host Integration Server unterstützt das automatische Starten einer Anfügungs-Manager-Anwendung nicht. Anders ausgedrückt: Wenn eine Anwendung RECEIVE_ALLOCATE_EX aufruft, muss die Anwendung gestartet werden, bevor eingehende Anfügenanforderungen über die lokale LU eingehen.
Die aktuelle Spezifikation gibt den Sicherheitsindikator nicht zurück (Byte 4 des FMH-5-Anfügens). Daher muss die Anwendung eingehende Anfügungsanforderungen aufnehmen, die Folgendes enthalten:
Weder ein user_id noch ein Kennwort (wenn keine Sicherheit im Anfügen gesendet wird),
Nur eine user_id (z. B. für "bereits überprüfte" Anhänge) oder
Sowohl ein user_id als auch ein Kennwort (wenn eine Benutzerautorisierung erforderlich ist).
In der LU6.2 BIND-Anforderung gibt Host Integration Server die Unterstützung für eingehende FMH-5 Attach-Anforderungen an, die Benutzersicherheit, bereits überprüft und Kennwortersetzung enthalten. Host Integration Server unterstützt keine eingehenden Anhänge, die eine persistente Überprüfung anfordern.
Die RECEIVE_ALLOCATE_EX-Funktion ermöglicht es einer Anwendung, sich als Anfügen-Manager zu registrieren, wenn der tp_name auf alle EBCDIC-Leerzeichen (X'40') festgelegt ist und ein Local LU-Alias im Feld lu_alias angegeben wird. Wenn sie als Anfügungs-Manager für einen bestimmten lu_alias registriert sind, leitet Host Integration Server alle eingehenden Anhänge, die über den lu_alias empfangen werden, an die Anwendung weiter. Weitere Informationen dazu, wie Host Integration Server eingehende FMH-5-Anfügungsanforderungen weiter leitet, finden Sie unten.
Die Anwendung kann RECEIVE_ALLOCATE_EX mehrmals aufrufen, um sich als Anfügen-Manager für eine oder mehrere lokale LU zu registrieren. Es kann jedoch nur ein Anfügungs-Manager für einen bestimmten lu_alias innerhalb der SNA-Unterdomäne registriert werden (d. a. für alle Hostintegrationsserver und angefügten Host Integration Server-Clients). Die Anwendung kann keine leere tp_name und leere lu_alias bereitstellen. Anders ausgedrückt: Eine Anwendung kann sich nicht als Standardanfügungs-Manager registrieren, um alle eingehenden Anfügungsanforderungen für eine SNA-Unterdomäne zu empfangen.
Wenn RECEIVE_ALLOCATE_EX abgeschlossen ist, ist die Anwendung für Folgendes verantwortlich:
Entscheidung, ob die Anfügung akzeptiert wird oder nicht. Host Integration Server stellt keinen Mechanismus zum Konfigurieren von Transaktionsprogrammen (TPs) bereit. Die Anwendung muss über ein eigenes Mittel zum Definieren der tp-Namen verfügen, die sie unterstützt.
Falls akzeptiert, muss die Anwendung die Sicherheitsattribute für Unterhaltungen (user_id, Kennwort) und für die Verarbeitung der neuen Unterhaltung überprüfen.
Die tp_id und conv_id können nicht zur Verarbeitung an einen separaten Prozess übergeben werden. Die gesamte TP-Verarbeitung muss von der Anwendung bereitgestellt werden.
Wenn die Anwendung die Anfügungsanforderung ablehnt, muss [MC_]DEALLOCATE aufgerufen werden, wobei die conv_id, die in der abgeschlossenen RECEIVE_ALLOCATE_EX empfangen werden, zusammen mit einem entsprechenden Grundcode im parameter dealloc_type angegeben werden, wobei diese neuen erweiterten Codes verwendet werden:
#define AP_DEALLOC_SECURITY_NOT_VALID_PASSWORD_EXPIRED 0x10
#define AP_DEALLOC_SECURITY_NOT_VALID_PASSWORD_INVALID 0x11
#define AP_DEALLOC_SECURITY_NOT_VALID_USERID_REVOKED 0x12
#define AP_DEALLOC_SECURITY_NOT_VALID_USERID_INVALID 0x13
#define AP_DEALLOC_SECURITY_NOT_VALID_USERID_MISSING 0x14
#define AP_DEALLOC_SECURITY_NOT_VALID_PASSWORD_MISSING 0x15
#define AP_DEALLOC_SECURITY_NOT_VALID_GROUP_INVALID 0x16
#define AP_DEALLOC_SECURITY_NOT_VALID_USERID_REVOKED_IN_GROUP 0x17
#define AP_DEALLOC_SECURITY_NOT_VALID_USERID_NOT_DEFD_TO_GROUP 0x18
#define AP_DEALLOC_SECURITY_NOT_VALID_NOT_AUTHORIZED_AT_REMOTE_LU 0x19
#define AP_DEALLOC_SECURITY_NOT_VALID_NOT_AUTHORIZED_FROM_LOCAL_LU 0x1A
#define AP_DEALLOC_SECURITY_NOT_VALID_NOT_AUTHORIZED_TO_TRANSACTION_PROGRAM 0x1B
#define AP_DEALLOC_SECURITY_NOT_VALID_INSTALLATION_EXIT_FAILED 0x1C
#define AP_DEALLOC_SECURITY_NOT_VALID_PROCESSING_FAILURE 0x1D
#define AP_DEALLOC_SECURITY_NOT_VALID_PROTOCOL_VIOLATION 0x1E
Wenn die Anwendung den oben genannten dealloc_type festlegt, sendet der Host Integration Server dann den entsprechenden Sinnescode innerhalb des FMH-7-Fehlers, der an das Remotesystem gesendet wird, wenn die FMH-5 Attach-Anforderung abgelehnt wird:
#define AP_SECURITY_NOT_VALID_PASSWORD_EXPIRED APPC_FLIPL(x080fff00)
#define AP_SECURITY_NOT_VALID_PASSWORD_INVALID APPC_FLIPL(x080fff01)
#define AP_SECURITY_NOT_VALID_USERID_REVOKED APPC_FLIPL(x080fff02)
#define AP_SECURITY_NOT_VALID_USERID_INVALID APPC_FLIPL(x080fff03)
#define AP_SECURITY_NOT_VALID_USERID_MISSING APPC_FLIPL(x080fff04)
#define AP_SECURITY_NOT_VALID_PASSWORD_MISSING APPC_FLIPL(x080fff05)
#define AP_SECURITY_NOT_VALID_GROUP_INVALID APPC_FLIPL(x080fff06)
#define AP_SECURITY_NOT_VALID_USERID_REVOKED_IN_GROUP APPC_FLIPL(x080fff07)
#define AP_SECURITY_NOT_VALID_USERID_NOT_DEFD_TO_GROUP APPC_FLIPL(x080fff08)
#define AP_SECURITY_NOT_VALID_NOT_AUTHORIZED_AT_REMOTE_LU APPC_FLIPL(x080fff09)
#define AP_SECURITY_NOT_VALID_NOT_AUTHORIZED_FROM_LOCAL_LU APPC_FLIPL(x080fff0A)
#define AP_SECURITY_NOT_VALID_NOT_AUTHORIZED_TO_TRANSACTION_PROGRAM APPC_FLIPL(x080fff0B)
#define AP_SECURITY_NOT_VALID_INSTALLATION_EXIT_FAILED APPC_FLIPL(x080fff0C)
#define AP_SECURITY_NOT_VALID_PROCESSING_FAILURE APPC_FLIPL(x080fff0D)
#define AP_SECURITY_NOT_VALID_PROTOCOL_VIOLATION APPC_FLIPL(x080fff0E)
Vor dem Aufruf RECEIVE_ALLOCATE_EX möchte die Anwendung möglicherweise die Konfigurationseinstellungen für die lokale APPC-LU überprüfen, um festzustellen, ob die LU Synchronisierungsstufe 2 unterstützt oder ein Mitglied des Standard-LU-Pools ist. Verwenden Sie dazu die erweiterte GET_LU_STATUS-API .
Um die Registrierung als Anfügen-Manager für eine bestimmte lokale APPC-LU aufzuheben, muss die Anwendung RECEIVE_ALLOCATE_EX_END aufrufen, wie unten dokumentiert. Wenn eine Anwendung für mehrere lu_alias als Anfügungs-Manager registriert ist, muss für jede lu_alias RECEIVE_ALLOCATE_EX_END aufgerufen werden.
Die Anwendung sollte versuchen, jederzeit eine RECEIVE_ALLOCATE_EX ausstehend zu haben, um eingehende Anfügeanforderungen zeitnah zu behandeln. Wenn die Anwendung keine neuen RECEIVE_ALLOCATE_EX veröffentlichen kann, führt Host Integration Server bis zu 2.048 eingehende Angefügte für die Anwendung in die Warteschlange, wenn die Anwendung auf dem Host Integration Server ausgeführt wird, oder 256, wenn sie auf einem HIS-Client ausgeführt wird. Wenn der Grenzwert überschritten wird, lehnt Host Integration Server die Anfügungsanforderung mit dem Sense-Code X'084B6031' oder AP_TRANS_PGM_NOT_AVAIL_RETRY ab.