CNOS
Das Verb CNOS (Change Number of Sessions) legt APPC LU 6.2-Sitzungslimits fest.
Die folgende Struktur beschreibt den vom CNOS-Verb verwendeten Verbkontrollblock.
Syntax
typedef struct cnos {
unsigned short opcode;
unsigned char reserv2[2];
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char key[8];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char fqplu_name[17];
unsigned char reserv3;
unsigned char mode_name[8];
unsigned int mode_name_select:1;
unsigned int set_negotiable:1;
unsigned int reserv4:6;
unsigned int reserv5:8;
unsigned short plu_mode_sess_lim;
unsigned short min_conwinners_source;
unsigned short min_conwinners_target;
unsigned short auto_act;
unsigned int drain_target:1;
unsigned int drain_source:1;
unsigned int responsible:1;
unsigned int reserv6:5;
unsigned int reserv7:8;
} CNOS;
Member
opcode
Angegebener Parameter. Gibt den Verbvorgangscode AP_CNOS 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“.
Schlüssel
Angegebener Parameter. Gibt entweder den master oder den Dienstschlüssel in ASCII an, wenn das Keylock-Feature gesichert wurde.
lu_alias
Angegebener Parameter. Stellt den 8-Byte-ASCII-Namen bereit, der lokal für die LU verwendet wird.
plu_alias
Angegebener Parameter. Stellt den 8-Byte-ASCII-Namen bereit, der lokal für die Partner-LU verwendet wird.
fqlu_name
Angegebener Parameter. Stellt den Namen der logischen Partnereinheit (Lu) 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.
mode_name
Angegebener Parameter. Gibt den Namen des EBCDIC-Modus (Typ A) an, der verwendet werden soll, wenn der Wert von mode_name_select AP_ONE ist.
mode_name_select
Angegebener Parameter. Gibt den Modusnamen an, für den Ihr Programm die Sitzungslimits und Konfliktgewinner-Polaritäten festlegt oder zurückgesetzt. Zulässige Werte sind AP_ALL oder AP_ONE.
set_negotiable
Angegebener Parameter. Gibt an, ob APPC die aktuelle Einstellung für das maximale verhandelbare Sitzungslimit ändern soll. Zulässige Werte sind AP_YES und AP_NO.
reserv4
Ein reserviertes 6-Bit-Feld.
reserv5
Ein reserviertes 8-Bit-Feld.
plu_mode_sess_lim
Angegebener Parameter. Gibt das Sitzungslimit an, wenn der Wert für set_negotiable JA ist. Zulässige Werte sind 0 bis 32767.
min_conwinners_source
Angegebener Parameter. Gibt die Anzahl der Sitzungen an, deren Lu garantiert der Gewinner des Konflikts ist. Zulässige Werte sind 0 bis 32767.
min_conwinners_target
Angegebener Parameter. Gibt die Mindestanzahl von Sitzungen an, deren Ziel-LU garantiert der Konfliktgewinner ist. Zulässige Werte sind 0 bis 32767.
auto_act
Angegebener Parameter. Gibt die Anzahl der lokalen LUs-Konfliktgewinnersitzungen an, für die APPC automatisch aktiviert werden soll. Zulässige Werte sind 0 bis 32767. Lesen Sie den Abschnitt Hinweise dieses Themas, bevor Sie diesen Parameter verwenden.
drain_target
Angegebener Parameter. Gibt an, ob die Ziel-LU ihre wartenden (ausgehenden) Zuordnungsanforderungen ausgleichen kann. Zulässige Werte sind AP_YES und AP_NO.
drain_source
Angegebener Parameter. Gibt an, ob die Quell-LU ihre wartenden (ausgehenden) Zuordnungsanforderungen löschen kann. Zulässige Werte sind AP_YES und AP_NO.
Verantwortlich
Angegebener Parameter. Gibt an, welche LU für die Deaktivierung der Sitzungen aufgrund des Zurücksetzens des Sitzungslimits für parallele Sitzungsverbindungen verantwortlich ist. Zulässige Werte sind AP_SOURCE und AP_TARGET.
reserv6
Ein reserviertes 5-Bit-Feld.
reserv7
Ein reserviertes 8-Bit-Feld.
Rückgabecodes
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.
AP_CNOS_ACCEPTED
Sekundärer Rückgabecode; APPC akzeptiert die Sitzungslimits und die Verantwortung wie angegeben.
AP_CNOS_NEGOTIATED
Sekundärer Rückgabecode; APPC akzeptiert die Sitzungslimits und die Verantwortung als von der Partner-LU verhandelbar. Werte, die ausgehandelt werden können, sind:
plu_mode_session_limit
min_conwinners_source
min_conwinners_target
Verantwortlich
drain_target
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 ALLOCATE oder MC_ALLOCATE ausgegeben wurde.
AP_ALLOCATION_FAILURE_NO_RETRY
Sekundärer Rückgabecode; die Konversation kann aufgrund einer dauerhaften Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurationsfehlers oder eines 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_CNOS_LOCAL_RACE_REJECT
Primärer Rückgabecode; APPC verarbeitet derzeit ein CNOS-Verb , das von einer lokalen LU ausgegeben wird.
AP_CNOS_PARTNER_LU_REJECT
Primärer Rückgabecode; Die Partner-LU hat eine CNOS-Anforderung von der lokalen LU abgelehnt.
AP_CNOS_MODE_CLOSED
Sekundärer Rückgabecode; die lokale LU kann kein sitzungsfreies Limit aushandeln, da das lokale maximale Sitzungslimit auf der Partner-LU 0 ist.
AP_CNOS_MODE_NAME_REJECT
Sekundärer Rückgabecode; Die Partner-LU erkennt den angegebenen Modusnamen nicht.
AP_CNOS_COMMAND_RACE_REJECT
Sekundärer Rückgabecode; die lokale LU verarbeitet derzeit ein von der Partner-LU ausgegebenes CNOS-Verb .
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 Transaktionsprogramm (TP) und dem PU 2.1-Knoten wurde unterbrochen (lokaler Netzwerkfehler).
Die SnaBase auf dem TPs-Computer ist auf einen ABEND gestoßen.
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_INVALID_KEY
Primärer Rückgabecode; Der angegebene Schlüssel war falsch.
AP_INVALID_VERB_SEGMENT
Primärer Rückgabecode; der VCB wurde über das Ende des Datensegments hinaus erweitert.
AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.
AP_ALL_MODE_MUST_RESET
Sekundärer Rückgabecode; APPC lässt kein Sitzungslimit zu, wenn der parameter mode_name_select AP_ALL angibt.
AP_AUTOACT_EXCEEDS_SESSLIM
Sekundärer Rückgabecode; für das CNOS-Verb ist der Wert für auto_act größer als der Wert für plu_mode_sess_lim.
AP_BAD_LU_ALIAS
Sekundärer Rückgabecode; APPC kann die angegebene lu_alias unter den definierten nicht finden.
AP_BAD_PARTNER_LU_ALIAS
Sekundärer Rückgabecode; APPC hat die angegebene plu_alias nicht erkannt.
AP_BAD_SNASVCMG_LIMITS
Sekundärer Rückgabecode; Ihr Programm hat ungültige Einstellungen für plu_mode_sess_lim, min_conwinners_source oder min_conwinners_target angegeben, als mode_name angegeben wurde.
AP_CHANGE_SRC_DRAINS
Sekundärer Rückgabecode; APPC lässt mode_name_select (ONE) und drain_source (JA) nicht zu, wenn drain_source (NO) derzeit für den angegebenen Modus in Kraft ist.
AP_CNOS_IMPLICIT_PARALLEL
Sekundärer Rückgabecode; APPC erlaubt es einem Programm nicht, das Sitzungslimit für einen anderen Modus als den SNASVCMG-Modus für die implizite Partnervorlage zu ändern, wenn die Vorlage parallele Sitzungen angibt. (Der Begriff „Vorlage“ wird verwendet, weil viele der tatsächlichen Werte noch ausgefüllt werden müssen.)
AP_CPSVCMG_MODE_NOT_ALLOWED
Sekundärer Rückgabecode; Der Modus mit dem Namen CPSVCMG kann nicht als mode_name für das Deaktivierungsverb der Sitzung angegeben werden.
AP_EXCEEDS_MAX_ALLOWED
Sekundärer Rückgabecode; Ihr Programm hat ein CNOS-Verb ausgegeben, das eine plu_mode_sess_lim Zahl und set_negotiable (AP_NO) angibt.
AP_MIN_GT_TOTAL
Sekundärer Rückgabecode; Die Summe aus min_conwinners_source und min_conwinners_target gibt eine Zahl an, die größer als plu_mode_sess_lim ist.
AP_MODE_CLOSED
Sekundärer Rückgabecode; die lokale LU kann kein sitzungsfreies Limit aushandeln, da das lokale maximale Sitzungslimit auf der Partner-LU 0 ist.
AP_RESET_SNA_DRAINS
Sekundärer Rückgabecode; SNASVCMG unterstützt die Werte des Ablaufparameters nicht.
AP_SINGLE_NOT_SRC_RESP
Sekundärer Rückgabecode; für ein CNOS-Verb mit einzeler Sitzung lässt APPC zu, dass nur die lokale (Quell-)LU für die Deaktivierung von Sitzungen verantwortlich ist.
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_STATE_CHECK
Primärer Rückgabecode; das Verb wurde nicht ausgeführt, da es in einem ungültigen Zustand ausgegeben wurde.
AP_CANT_RAISE_LIMITS
Sekundärer Rückgabecode; APPC lässt das Festlegen von Sitzungslimits auf einen Wert ohne Zero nicht zu, es sei denn, die Grenzwerte sind derzeit 0.
AP_LU_DETACHED
Sekundärer Rückgabecode; Ein Befehl hat die Definition der lokalen LU zurückgesetzt, bevor CNOS versucht hat, die LU anzugeben.
AP_SNASVCMG_RESET_NOT_ALLOWED
Sekundärer Rückgabecode; Ihr lokales Programm hat versucht, das CNOS-Verb für den Modus mit dem Namen SNASVCMG auszustellen und dabei ein Sitzungslimit von 0 angegeben.
AP_UNEXPECTED_DOS_ERROR
Primärer Rückgabecode; das Betriebssystem hat beim Verarbeiten eines APPC-Verbs aus dem 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
CNOS identifiziert eine LU allein anhand des Alias. Wenn derselbe lokale LU-Alias mehrmals in einer Domäne (zu Sicherungs- oder anderen Zwecken) verwendet wird und dieser LU-Alias über CNOS angegeben wird, kann das Verb an eine andere LU als die beabsichtigte fließen.
Wenn CNOS nicht zum Festlegen des Modussitzungslimits ausgegeben wird, bevor ein Programm sein erstes APPC ALLOCATE-, MC_ALLOCATE-, SEND_CONVERSATION- oder MC_SEND_CONVERSATION oder Common Programming Interface for Communications (CPI-C) Allocate-Aufruf für eine bestimmte Partner-LU und einen bestimmten Modus ausgibt, generiert APPC intern ein Sitzungslimit unter Verwendung des Werts aus der Modusdefinition.
Wenn Sie die Grenzwerte für eine Parallelsitzungsverbindung festlegen, verhandeln die beiden LUs die Sitzungslimits im Modus, die Einstellungen für die Leerung und die Verantwortungswerte. APPC aktualisiert diese Parameter in CNOS , um die Einstellungen widerzuspiegeln, die von beiden LUs während der Verhandlung vereinbart wurden. Ihr Programm kann DISPLAY ausgeben, um die ausgehandelten Werte für das Modussitzungslimit abzurufen.
Beim Festlegen der Grenzwerte für eine einzelne Sitzung tritt keine CNOS-Aushandlung auf (das heißt, die beiden LUs verhandeln keine Entlastungseinstellungen oder Verantwortungswerte). Koordinieren Sie daher die Einstellungen für den Modusdefinitionsparameter zwischen Partner-LUs mithilfe einer Einzelsitzungsverbindung, indem Sie einen einzelnen Sitzungsmodus auf jedem Knoten definieren.
Im Rahmen der Einrichtung der anfänglichen Grenzwerte legt CNOS auch die garantierte (d. h. die mindeste) Anzahl von Konflikt-Gewinner- und Konflikt-Verlierersitzungen fest und legt die automatische Aktivierungsanzahl für die Quell-LUs-Konflikt-Gewinner-Sitzungen fest. Die Aktion von CNOS wirkt sich normalerweise nur auf die Gruppe von Sitzungen mit dem angegebenen Modusnamen zwischen der Quell-LU und der Ziel-LU aus. Alternativ kann ein CNOS die Sitzungslimits aller Modi für eine Partner-LU zurücksetzen.
APPC erzwingt das Sitzungslimit für den neuen Modus und die Polaritäten der Konfliktgewinner, bis sie von der einen oder anderen Seite geändert werden, indem ein nachfolgendes CNOS-Verb ausgegeben wird. Die CNOS-Transaktion ist für die API der Ziel-LU unsichtbar, unabhängig davon, welche LU das Ziel ist. Die Ergebnisse der CNOS-Transaktion können mit DISPLAY abgerufen werden.