ACTIVATE_SESSION
Das ACTIVATE_SESSION Verb fordert Microsoft® Host Integration Server auf, eine Sitzung zwischen der lokalen logischen Einheit (LU) und einer angegebenen Partner-LU mithilfe eines angegebenen Modus zu aktivieren. Dieses Verb wird entweder abgeschlossen, wenn die angegebene Sitzung aktiv wurde oder wenn ein Fehler aufgetreten ist.
Die folgende Struktur beschreibt den Verbkontrollblock, der vom ACTIVATE_SESSION Verb verwendet wird.
Syntax
typedef struct activate_session {
unsigned short opcode;
unsigned char reserv2[2];
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char reserv3[8];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char mode_name[8];
unsigned char fqplu_name[17];
unsigned char polarity;
unsigned char session_id[8];
unsigned long conv_group_id;
unsigned char reserv4[1];
unsigned char type;
HANDLE deactivation_event;
unsigned short* p_deactivation_status;
unsigned char reserv5[10];
} ACTIVATE_SESSION;
Member
opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs AP_ACTIVATE_SESSION an.
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“.
reserv3
Ein reserviertes Feld.
lu_alias
Angegebener Parameter. Stellt den 8-Byte-ASCII-Namen bereit, der lokal für die LU verwendet wird. Wenn die lokale Standard-LU verwendet werden soll, füllen Sie diesen Parameter mit Leerzeichen aus.
plu_alias
Angegebener Parameter. Stellt den 8-Byte-ASCII-Namen bereit, der lokal für die Partner-LU verwendet wird. Wenn die Standard-Remote-LU verwendet werden soll, füllen Sie diesen Parameter mit Leerzeichen aus. Wenn die Partner-LU mit dem parameter fqplu_name angegeben werden soll, füllen Sie diesen Parameter mit binären Nullen aus.
mode_name
Angegebener Parameter. Gibt den Namen des EBCDIC-Modus (Typ A) an.
fqlu_name
Angegebener Parameter. Stellt den Partner-LU-Namen in EBCDIC (Typ A) bereit, wenn auf dem lokalen Knoten kein plu_alias Name definiert ist und sich die Partner-LU auf einem anderen Knoten befindet. Dieser Parameter wird ignoriert, wenn plu_alias angegeben wird.
polarity
Angegebener Parameter. Gibt die Polarität für die Sitzung an. Mögliche Werte:
AP_POL_EITHER
Wenn AP_POL_EITHER festgelegt ist, aktiviert ACTIVATE_SESSION eine erste Sprechersitzung, sofern verfügbar; Andernfalls wird eine Bietersitzung aktiviert.
AP_POL_FIRST_SPEAKER
Wenn AP_POL_FIRST_SPEAKER festgelegt ist, ist ACTIVATE_SESSION nur erfolgreich, wenn eine Sitzung mit der angeforderten Polarität verfügbar ist.
AP_POL_BIDDER
Wenn AP_POL_BIDDER festgelegt ist, ist ACTIVATE_SESSION nur erfolgreich, wenn eine Sitzung mit der angeforderten Polarität verfügbar ist.
session_id
Zurückgegebener Parameter. Stellt den 8-Byte-Bezeichner der Aktivierungssitzung bereit.
conv_group_id
Zurückgegebener Parameter. Stellt den Unterhaltungsgruppenbezeichner bereit. Dieser Parameter kann für ALLOCATE und MC_ALLOCATE Verben angegeben werden, um Unterhaltungen in dieser bestimmten Sitzung zu starten.
reserv4
Ein reserviertes Feld.
Typ
Angegebener Parameter. Gibt den Aktivierungstyp an. Mögliche Werte:
AP_ACT_ACTIVE
Wenn AP_ACT_ACTIVE angegeben ist, versucht Host Integration Server, die erforderliche Sitzung zu starten (durch Senden von BIND oder INIT-SELF).
AP_ACT_PASSIVE
Wenn AP_ACT_PASSIVE angegeben ist, versucht Host Integration Server nicht, die Sitzung zu starten, und das Verb wird abgeschlossen, wenn der Partner die Sitzung gestartet hat.
deactivation_event
Angegebener Parameter. Stellt ein Ereignishandle bereit, das APPC signalisieren soll, wenn die Sitzung deaktiviert wird. Das Ereignishandle sollte durch Aufrufen der Funktion CreateEvent oder OpenEvent Win32® abgerufen werden.
p_deactivation_status
Zurückgegebener Parameter. Ein Zeiger auf einen Wert, der festgelegt wird, wenn das Deaktivierungsereignis signalisiert wird, um den Abschluss status bereitzustellen. Die folgenden Werte können zurückgegeben werden.
AP_SESSION_DEACTIVATED
AP_COMM_SUBSYSTEM_ABENDED
reserv5
Ein reserviertes Feld.
Rückgabecodes
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt. Der sekundäre Rückgabecode gibt die Polarität der eingerichteten Sitzung an. Die folgenden Werte können zurückgegeben werden.
AP_POL_FIRST_SPEAKER
AP_POL_BIDDER
AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.
AP_INVALID_LU_ALIAS
Sekundärer Rückgabecode; APPC kann die angegebene lu_alias unter den definierten nicht finden.
AP_INVALID_PLU_ALIAS
Sekundärer Rückgabecode; APPC hat die angegebene plu_alias nicht erkannt.
AP_INVALID_MODE_NAME
Sekundärer Rückgabecode; APPC hat die angegebene mode_name nicht erkannt.
AP_INVALID_FQPLU_NAME
Sekundärer Rückgabecode; APPC hat die angegebene fqplu_name nicht erkannt.
AP_INVALID_POLARITY
Sekundärer Rückgabecode; APPC hat die angegebene Polarität nicht erkannt.
AP_INVALID_TYPE
Sekundärer Rückgabecode; APPC hat den angegebenen Typ nicht erkannt.
AP_ACTIVATION_FAIL_NO_RETRY
Primärer Rückgabecode; Die Sitzung konnte aufgrund einer Bedingung nicht aktiviert werden, die eine Aktion erfordert (z. B. ein Konfigurationskonflikt oder ein Sitzungsprotokollfehler).
AP_ACTIVATION_FAIL_RETRY
Primärer Rückgabecode; Die Sitzung konnte aufgrund einer temporären Bedingung (z. B. eines Linkfehlers) nicht aktiviert werden.
AP_SESSION_LIMITS_EXCEEDED
Primärer Rückgabecode; die Sitzung konnte nicht aktiviert werden, da die Sitzungsgrenzwerte überschritten wurden.
AP_SESSION_LIMITS_CLOSED
Primärer Rückgabecode; die Sitzung konnte nicht aktiviert werden, da die Sitzungslimits geschlossen sind (d. a. null).
AP_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; gibt an, 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 (Lokaler Netzwerkfehler ist aufgetreten).
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_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_THREAD_BLOCKING
Primärer Rückgabecode; der aufrufende Thread befindet sich bereits in einem blockierenden Aufruf.
Hinweise
Dieses Verb unterstützt sowohl die aktive als auch die passive Aktivierung.
Die aktive Form dieses Verbs führt dazu, dass Host Integration Server versucht, die Sitzung zu initiieren (indem eine BIND für unabhängige LUs oder ein INIT-SELF für abhängige LUs gesendet wird). Die aktive Form dieses Verbs führt auch zu folgendem Verhalten:
Wenn die Verbindung mit der Partner-LU inaktiv und bedarfsgesteuert konfiguriert ist, versucht der Knoten, die Verbindung zu starten.
Wenn dynamische Partnerschaften verwendet werden, richtet der Knoten die LU-LU/MODE-Partnerschaft ein.
Wenn CNOS nicht ausgeführt wurde, startet der Knoten CNOS (ändert jedoch keines der Sitzungsgrenzwerte).
Das passive Formular versucht nicht, die Sitzung zu starten, sondern wird abgeschlossen, wenn die LU von einer BIND-Instanz aus der Partner-LU gestartet wird. Bei unabhängigen LUs können mehrere passive ACTIVATE_SESSION Verben für dieselbe LU-LU/MODE in die Warteschlange eingereiht und nach und nach abgeschlossen werden, wenn neue Sitzungen gestartet werden.
Dieses Verb enthält auch ein Deaktivierungsereignis, das gepostet wird, wenn die Sitzung von einer anderen Methode als einem DEACTIVATE_SESSION Verb deaktiviert wird (z. B. führt eine unaufgefragte UNBIND von der Partner-LU dazu, dass dieses Ereignis gepostet wird).