MC_ALLOCATE
Das MC_ALLOCATE Verb wird vom aufrufenden Transaktionsprogramm (TP) ausgegeben. Es ordnet eine Sitzung zwischen der lokalen logischen Einheit (LU) und der Partner-LU zu und erstellt (in Verbindung mit RECEIVE_ALLOCATE) eine Konversation zwischen dem aufrufenden TP und dem aufgerufenen TP. Nachdem dieses Verb erfolgreich ausgeführt wurde, generiert APPC einen Konversationsbezeichner (conv_id). Der conv_id ist ein erforderlicher Parameter für alle anderen APPC-Konversationsverben.
Die folgende Struktur beschreibt den Verb-Kontrollblock (VCB), der vom MC_ALLOCATE-Verb verwendet wird.
Syntax
struct mc_allocate {
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 char synclevel;
unsigned char reserv4[2];
unsigned char rtn_ctl;
unsigned char reserv5;
unsigned long conv_group_id;
unsigned long sense_data;
unsigned char plu_alias[8];
unsigned char mode_name[8];
unsigned char tp_name[64];
unsigned char security;
unsigned char reserv6[11];
unsigned char pwd[10];
unsigned char user_id[10];
unsigned short pip_dlen;
unsigned char FAR * pip_dptr;
unsigned char reserv7;
unsigned char fqplu_name[17];
unsigned char reserv8[8];
unsigned long proxy_user;
unsigned long proxy_domain;
unsigned char reserv9[16];
};
Member
opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs an. AP_M_ALLOCATE.
opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_MAPPED_CONVERSATION. Wenn das AP_EXTD_VCB Bits festgelegt ist, bedeutet dies, dass eine erweiterte Version des Verb-Steuerelementblocks verwendet wird. In diesem Fall umfasst die MC_ALLOCATE-Struktur Synchronisierungspunktunterstützung oder Unterstützung für privilegierte Proxyfeatures.
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 zurückgegeben.
conv_id
Zurückgegebener Parameter. Identifiziert die Konversation, die zwischen den beiden TPs eingerichtet wurde.
reserv3
Ein reserviertes Feld.
synclevel
Angegebener 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.
reserv4
Ein reserviertes Feld.reserv5
Ein reserviertes Feld.rtn_ctl
Angegebener Parameter. Gibt an, wann die lokale LU, die auf eine Sitzungsanforderung aus dem lokalen TP wirkt, die Steuerung an den lokalen TP zurückgeben soll. Informationen zu Sitzungen finden Sie unter Übersicht über Transaktionsprogramme.AP_IMMEDIATE gibt an, dass die LU eine Konflikt-Gewinner-Sitzung zuweist, wenn sie sofort verfügbar ist, und gibt die Steuerung an den TP zurück.
AP_WHEN_SESSION_ALLOCATED gibt an, dass die LU erst dann die Steuerung an den TP zurückgibt, wenn sie eine Sitzung ordnet oder einen der in Rückgabecodes in diesem Thema dokumentierten Fehler auftritt. (Wenn das Sitzungslimit 0 ist, gibt die LU sofort das Steuerelement zurück.) Wenn eine Sitzung nicht verfügbar ist, wartet der TP auf eine Sitzung.
AP_WHEN_SESSION_FREE gibt an, dass die LU eine Konflikt-Gewinner- oder Konflikt-Verlierer-Sitzung ordnet, wenn sie verfügbar ist oder aktiviert werden kann, und gibt die Steuerung an den TP zurück. Wenn ein Fehler auftritt (wie in Rückgabecodes in diesem Thema dokumentiert), wird der Aufruf sofort zurückgegeben, wobei der Fehler in den Feldern primary_rc und secondary_rc angezeigt wird.
AP_WHEN_CONWINNER_ALLOC gibt an, dass die LU erst dann die Steuerung zurückgibt, wenn sie eine Konflikt-Gewinner-Sitzung zuweist oder einen der fehler auftritt, die in Rückgabecodes in diesem Thema dokumentiert sind. (Wenn das Sitzungslimit 0 ist, gibt die LU sofort das Steuerelement zurück.) Wenn eine Sitzung nicht verfügbar ist, wartet der TP auf eine Sitzung.
AP_WHEN_CONV_GROUP_ALLOC gibt an, dass die LU erst dann die Steuerung an den TP zurückgibt, wenn sie die durch conv_group_idangegebene Sitzung zuweist oder einen der in Rückgabecodes in diesem Thema dokumentierten Fehler auftritt. Wenn eine Sitzung nicht verfügbar ist, wartet der TP, bis sie frei wird.
Hinweis
AP_IMMEDIATE ist der einzige Wert für rtn_ctl , der nie dazu führt, dass eine neue Sitzung gestartet wird. Für andere Werte als AP_IMMEDIATE versucht Microsoft® Host Integration Server, eine zu starten, wenn eine entsprechende Sitzung nicht sofort verfügbar ist. Dadurch wird die Bedarfsverbindung aktiviert.
conv_group_id
Angegebener/zurückgegebener Parameter. Gibt den Bezeichner der Konversationsgruppe an, aus der die Sitzung zugeordnet werden soll. Die conv_group_id ist nur erforderlich, wenn rtn_ctlauf WHEN_CONV_GROUP_ALLOC festgelegt ist. Wennrtn_ctl einen anderen Wert angibt und der primary_rc AP_OK ist, ist dies ein zurückgegebener Wert.
sense_data
Zurückgegebener Parameter. Gibt einen Zuordnungsfehler an (wiederholen oder nicht wiederholen) und enthält Sinndaten.
plu_alias
Angegebener Parameter. Gibt den Alias an, unter dem die Partner-LU dem lokalen TP bekannt ist.
Die plu_alias muss mit dem Namen einer Partner-LU übereinstimmen, die während der Konfiguration eingerichtet wurde.
Der Parameter ist eine ASCII-Zeichenfolge mit 8 Byte. Sie kann aus den folgenden ASCII-Zeichen bestehen:
Großbuchstaben
Ziffern 0 bis 9
Leerzeichen
Sonderzeichen $, #, %und @
Das erste Zeichen dieser Zeichenfolge darf kein Leerzeichen sein.
Wenn der Wert dieses Parameters weniger als acht Bytes beträgt, polstern Sie ihn auf der rechten Seite mit ASCII-Leerzeichen (0x20).
Wenn Sie die Partner-LU mit dem parameter fqplu_name angeben möchten, füllen Sie diesen Parameter mit binären Nullen aus.
Für einen Benutzer oder eine Gruppe, die TPs, 5250-Emulatoren und/oder APPC-Anwendungen verwendet, kann der Systemadministrator lokale Standard- und Remote-LUs zuweisen. In diesem Fall bleibt das Feld leer oder NULL, und auf die Standard-LUs wird zugegriffen, wenn der Benutzer oder das Gruppenmitglied ein APPC-Programm startet.
mode_name
Angegebener Parameter. Gibt den Namen einer Gruppe von Netzwerkmerkmalen an, die während der Konfiguration definiert wurden.Der Wert von mode_name muss mit dem Namen eines Modus übereinstimmen, der der Partner-LU während der Konfiguration zugeordnet ist.
Der Parameter ist eine 8-Byte-EBCDIC-Zeichenfolge. Es kann aus Zeichen vom Typ A EBCDIC-Zeichensatz bestehen:
Großbuchstaben
Ziffern 0 bis 9
Sonderzeichen $, #und @
Das erste Zeichen in der Zeichenfolge muss ein Großbuchstaben oder ein Sonderzeichen sein.
Verwenden Sie SNASVCMG nicht in einer zugeordneten Unterhaltung. SNASVCMG ist eine reservierte mode_name, die intern von APPC verwendet wird.
tp_name
Angegebener Parameter. Gibt den Namen des aufgerufenen TP an. Der Von MC_ALLOCATE im aufrufenden TP angegebene Wert von tp_name muss mit dem Wert von tp_name übereinstimmen, der von RECEIVE_ALLOCATE im aufgerufenen TP angegeben wird.Bei dem Parameter handelt es sich um eine 64-Byte-EBCDIC-Zeichenfolge, wobei die Groß-/Kleinschreibung beachtet wird. Der tp_name-Parameter kann aus den folgenden EBCDIC-Zeichen bestehen:
Groß- und Kleinbuchstaben
Ziffern 0 bis 9
Sonderzeichen $, #, @ und Punkt (.)
Wenn tp_name kleiner als 64 Bytes ist, verwenden Sie EBCDIC-Leerzeichen (0x40), um sie auf der rechten Seite zu polstern.
Die SNA-Konvention ist, dass ein Dienst-TP-Name bis zu vier Zeichen aufweisen kann. Das erste Zeichen ist ein hexadezimales Byte zwischen 0x00 und 0x3F. Die anderen Zeichen stammen aus dem Zeichensatz vom Typ AE EBCDIC.
security
Angegebener Parameter. Stellt die Informationen bereit, die die Partner-LU benötigt, um den Zugriff auf den aufgerufenen TP zu überprüfen. Weitere Informationen finden Sie im Abschnitt Mögliche Werte für den Sicherheitsparameter in diesem Thema.Reservieren6
Ein reserviertes Feld.pwd
Angegebener Parameter. Gibt das Kennwort an, das user_id zugeordnet ist.Der pwd-Parameter ist nur erforderlich, wenn die Sicherheit auf AP_PGM oder AP_SAME festgelegt ist. Es muss mit dem Kennwort für user_id übereinstimmen, das während der Konfiguration eingerichtet wurde.
Beim pwd-Parameter handelt es sich um eine 10-Byte-EBCDIC-Zeichenfolge, wobei die Groß-/Kleinschreibung beachtet wird. Sie kann aus den folgenden EBCDIC-Zeichen bestehen:
Groß- und Kleinbuchstaben
Ziffern 0 bis 9
Sonderzeichen $, #, @ und Punkt (.)
Wenn das Kennwort weniger als 10 Bytes ist, verwenden Sie EBCDIC-Leerzeichen (0x40), um es auf der rechten Seite zu polstern.
Wenn die automatische AppC-Anmeldefunktion verwendet werden soll, muss die pwd-Zeichenfolge in MS$SAME hartcodiert sein. Weitere Informationen finden Sie im Abschnitt Hinweise.
User_id
Angegebener Parameter. Gibt den Benutzerbezeichner an, der für den Zugriff auf das Partner-TP erforderlich ist. Sie ist nur erforderlich, wenn der Sicherheitsparameter auf AP_PGM oder AP_SAME festgelegt ist.Der user_id-Parameter ist eine 10-Byte-EBCDIC-Zeichenfolge, wobei die Groß-/Kleinschreibung beachtet wird. Sie muss mit einer der Benutzerbezeichner übereinstimmen, die für den Partner-TP konfiguriert sind.
Der Parameter kann aus den folgenden EBCDIC-Zeichen bestehen:
Groß- und Kleinbuchstaben
Ziffern 0 bis 9
Sonderzeichen $, #, @ und Punkt (.)
Wenn user_id kleiner als 10 Bytes ist, verwenden Sie EBCDIC-Leerzeichen (0x40), um sie auf der rechten Seite zu polstern.
Wenn die automatische AppC-Anmeldefunktion verwendet werden soll, muss die user_id Zeichenfolge hart in MS$SAME codiert sein. Weitere Informationen finden Sie im Abschnitt Hinweise.
pip_dlen
Angegebener Parameter. Gibt die Länge der Programminitialisierungsparameter (PIP) an, die an den Partner-TP übergeben werden sollen. Der Bereich reicht von 0 bis 32767.pip_dptr
Angegebener Parameter. Gibt die Adresse des Puffers an, der PIP-Daten enthält. Verwenden Sie diesen Parameter nur, wenn pip_dlen größer als 00 ist.PIP-Daten können aus Initialisierungsparametern oder Umgebungseinrichtungsinformationen bestehen, die von einem Partner-TP oder Remotebetriebssystem benötigt werden. Die PIP-Daten müssen dem allgemeinen Datenstromformat (GDS) folgen. Weitere Informationen finden Sie in Ihrem IBM SNA-Handbuch.For more information, see your IBM SNA manual(s).
Bei Microsoft Windows kann sich der Datenpuffer in einem statischen Datenbereich oder in einem global zugeordneten Bereich befinden. Der Datenpuffer muss vollständig in diesen Bereich passen.
reserv7
Ein reserviertes Feld.fqlu_name
Angegebener Parameter. Gibt den vollqualifizierten Namen der Partner-LU an. Dies muss mit dem vollqualifizierten Namen der lokalen LU übereinstimmen, die im Remoteknoten definiert ist. Der Parameter besteht aus zwei EBCDIC-Zeichenfolgen vom Typ A für die NETID und den LU-Namen der Partner-LU. Die Namen werden durch einen EBCDIC-Punkt (.) getrennt.Dieser Name muss angegeben werden, wenn kein plu_alias angegeben ist. Sie kann aus den folgenden EBCDIC-Zeichen bestehen:
18Uppbuchstaben
Ziffern 0 bis 9
Sonderzeichen $, #und @
Wenn der Wert dieses Parameters kleiner als 17 Bytes ist, polstern Sie ihn auf der rechten Seite mit EBCDIC-Leerzeichen (0x40).
reserv8
Ein reserviertes Feld.proxy_user
Angegebener Parameter. Gibt einen LPWSTR-Wert an, der auf eine Unicode-Zeichenfolge verweist, die den Benutzernamen enthält, der mithilfe des privilegierten Proxyfeatures identitätswechseln soll. Dieses Feld kann nur verwendet werden, wenn das AP_EXTD_VCB Bit für das Opext-Feld festgelegt ist, was eine erweiterte VCB angibt.proxy_domain
Angegebener Parameter. Gibt einen LPWSTR-Wert an, der auf eine Unicode-Zeichenfolge zeigt, die den Domänennamen des Benutzers enthält, der mithilfe des Privilegierten Proxyfeatures identitätswechseln soll. Dieses Feld kann nur verwendet werden, wenn das AP_EXTD_VCB Bit für das Opext-Feld festgelegt ist, was eine erweiterte VCB angibt.reserv9
Ein reserviertes Feld.
Mögliche Werte für den Sicherheitsparameter
Basierend auf der Unterhaltungssicherheit, die während der Konfiguration für den aufgerufenen TP eingerichtet wurde, verwenden Sie einen der folgenden Werte:
AP_NONE für einen aufgerufenen TP, der keine Konversationssicherheit verwendet.
AP_PGM für einen aufgerufenen TP, der Unterhaltungssicherheit verwendet und daher eine Benutzer-ID und ein Kennwort erfordert. Geben Sie diese Informationen über die Parameter user_id und pwd an .
AP_PROXY_PGM für einen aufgerufenen TP mit privilegiertem Proxy, der Unterhaltungssicherheit verwendet und daher eine Benutzer-ID und ein Kennwort erfordert. Zeiger müssen für proxy_user und proxy_domain eingerichtet werden, um auf Unicode-Zeichenfolgen zu verweisen, die den Benutzernamen und Domänennamen des Benutzers enthalten, der identitätswechseln soll. Die Anwendung muss die Felder user_id und pwd nicht festlegen.
AP_PROXY_SAME für einen TP, der mithilfe eines privilegierten Proxys mit einer gültigen Benutzer-ID und einem vom Proxy angegebenen Kennwort aufgerufen wurde, wodurch wiederum ein anderer TP aufgerufen wird. Zeiger müssen für proxy_user und proxy_domain eingerichtet werden, um auf Unicode-Zeichenfolgen zu verweisen, die den Benutzernamen und Domänennamen des Benutzers enthalten, der identitätswechseln soll. Die Anwendung muss die Felder user_id und pwd nicht festlegen.
Angenommen, TP A ruft TP B mit einer gültigen Benutzer-ID und einem kennwort des privilegierten Proxys auf, und TP B ruft wiederum TP C auf. Wenn TP B den Wert AP_PROXY_SAME angibt, sendet APPC die LU für TP C, den Benutzerbezeichner von TP A und einen bereits überprüften Indikator. Dieser Indikator weist TP C an, das Kennwort nicht zu erfordern (wenn TP C für die Annahme eines bereits überprüften Indikators konfiguriert ist).
AP_PROXY_STRONG für einen aufgerufenen TP mit privilegiertem Proxy, der die Unterhaltungssicherheit verwendet und daher eine Benutzer-ID und ein Kennwort erfordert, die vom privilegierten Proxymechanismus bereitgestellt werden. Zeiger müssen für proxy_user und proxy_domain eingerichtet werden, um auf Unicode-Zeichenfolgen zu verweisen, die den Benutzernamen und Domänennamen des Benutzers enthalten, der identitätswechseln soll. Die Anwendung muss die Felder user_id und pwd nicht festlegen. AP_PROXY_STRONG unterscheidet sich von AP_PROXY_PGM darin, dass AP_PROXY_STRONG keine Klartextkennwörter zulässt. Wenn das Remotesystem verschlüsselte Kennwörter nicht unterstützt (sichere Konversationssicherheit), schlägt dieser Aufruf fehl.
AP_SAME für einen TP, der mit einer gültigen Benutzer-ID und einem gültigen Kennwort aufgerufen wurde, wodurch wiederum ein anderer TP aufgerufen wird.
Angenommen, TP A ruft TP B mit einer gültigen Benutzer-ID und einem gültigen Kennwort auf, und TP B wiederum ruft TP C auf. Wenn TP B den Wert AP_SAME angibt, sendet APPC die LU für TP C, den Benutzerbezeichner von TP A und einen bereits überprüften Indikator. Dieser Indikator weist TP C an, das Kennwort nicht anzufordern (wenn TP C für die Annahme eines bereits verifizierten Indikators konfiguriert ist).
Wenn AP_SAME in einem MC_ALLOCATE Verb verwendet wird, muss Ihre Anwendung immer Werte für die Parameter user_id und pwd im Verb-Kontrollblock bereitstellen. Abhängig von den Eigenschaften, die zwischen Host Integration Server und der Peer-LU ausgehandelt werden, sendet das MC_ALLOCATE Verb eine von drei Arten von Anfügungsnachrichten (FMH-5) in dieser Rangfolge:
Wenn die LUs die Sicherheit "bereits überprüft" ausgehandelt haben, enthält das vom Host Integration Server gesendete Anfügen nicht den Inhalt des im VCB angegebenen pwd-Parameterfelds .
Wenn die LUs die Sicherheit für die "persistente Überprüfung" ausgehandelt haben, enthält der vom Host Integration Server gesendete Anfügen den pwd-Parameter , der im VCB angegeben ist, aber nur, wenn Attach der erste für den angegebenen user_id Parameter seit beginn der LU-LU-Sitzung ist und den pwd-Parameter auf allen nachfolgenden Attaches auslässt (ausgestellt von Ihrer Anwendung oder einer anderen Anwendung, die diesen LU-LU-Modus verwendet).
Wenn die LUs keines der oben genannten Ausgehandelt haben, lässt der vom Host Integration Server gesendete Anfügen sowohl die parameter user_id als auch pwd für alle Attaches aus.
Ihre Anwendung kann nicht erkennen, welcher Sicherheitsmodus zwischen den LUs ausgehandelt wurde, noch kann sie feststellen, ob das MC_ALLOCATE Verb, das sie ausgibt, das erste für dieses Triplet im LU-LU-Modus ist. Daher muss Ihre Anwendung immer die user_id - und pwd-Parameterfelder im VCB festlegen, wenn die Sicherheit auf AP_SAME festgelegt ist.
Weitere Informationen zur dauerhaften Überprüfung und bereits überprüften Sicherheit finden Sie im SNA-Formathandbuch, Abschnitt "FM Header 5: Attach (LU 6.2)".
AP_STRONG für ein aufgerufenes TP, das Unterhaltungssicherheit verwendet und daher eine Benutzer-ID und ein Kennwort erfordert. Geben Sie diese Informationen über die Parameter user_id und pwd an . AP_STRONG unterscheidet sich von AP_PGM darin, dass AP_STRONG keine Klartextkennwörter zulässt. Wenn das Remotesystem verschlüsselte Kennwörter nicht unterstützt (sichere Konversationssicherheit), schlägt dieser Aufruf fehl.
Wenn die automatische AppC-Anmeldefunktion verwendet werden soll, muss die Sicherheit auf AP_PGM festgelegt werden. Weitere Informationen finden Sie im Abschnitt Hinweise.
Rückgabecodes
AP_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.
AP_UNSUCCESSFUL
Primärer Rückgabecode; Der angegebene Parameter rtn_ctl die sofortige (AP_IMMEDIATE) Rückgabe der Steuerung an den TP angegeben, und die lokale LU verfügte nicht über eine verfügbare Konflikt-Gewinner-Sitzung.
AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.
AP_BAD_RETURN_CONTROL
Sekundärer Rückgabecode; Der für rtn_ctl angegebene Wert war ungültig.
AP_BAD_SECURITY
Sekundärer Rückgabecode; Der für die Sicherheit angegebene Wert war ungültig.
AP_BAD_SYNC_LEVEL
Sekundärer Rückgabecode; Der für sync_level angegebene Wert war ungültig.
AP_BAD_TP_ID
Sekundärer Rückgabecode; Der für tp_id angegebene Wert war ungültig.
AP_PIP_LEN_INCORRECT
Sekundärer Rückgabecode; der Wert von pip_dlen war größer als 32767.
AP_UNKNOWN_PARTNER_MODE
Sekundärer Rückgabecode; Der für mode_name angegebene Wert war ungültig.
AP_BAD_PARTNER_LU_ALIAS
Sekundärer Rückgabecode; APPC hat die bereitgestellte partner_lu_alias nicht erkannt.
AP_NO_USE_OF_SNASVCMG
Sekundärer Rückgabecode; SNASVCMG ist kein gültiger Wert für mode_name.
AP_INVALID_DATA_SEGMENT
Sekundärer Rückgabecode; Die PIP-Daten waren länger als das zugeordnete Datensegment, oder die Adresse des PIP-Datenpuffers war falsch.
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 MC_ALLOCATE ausgegeben wird.
AP_ALLOCATION_FAILURE_NO_RETRY
Sekundärer Rückgabecode; Die Konversation kann aufgrund einer permanenten Bedingung nicht zugeordnet werden, z. B. aufgrund eines Konfigurations- oder 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_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 oder beendet werden. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.Wenn dieser Rückgabecode mit MC_ALLOCATE verwendet wird, kann er darauf hinweisen, dass kein Kommunikationssystem gefunden wurde, das die lokale 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 MC_ALLOCATE Anforderung erfüllen kann.
Wenn MC_ALLOCATE diesen Rückgabecode für ein Host Integration Server-System 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 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_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
MC_ALLOCATE erstellt eine zugeordnete Unterhaltung.
Der Konversationszustand ist RESET, wenn das TP dieses Verb ausgibt. Nach erfolgreicher Ausführung (primary_rc ist AP_OK), ändert sich der Status in SEND. Wenn das Verb nicht ausgeführt wird, bleibt der Zustand unverändert.
Mehrere Parameter von MC_ALLOCATE sind EBCDIC- oder ASCII-Zeichenfolgen. Ein TP kann csv convert verwenden, um eine Zeichenfolge aus einem Zeichensatz in den anderen zu übersetzen.
Um die MC_ALLOCATE-Anforderung sofort zu senden, kann der aufrufende TP unmittelbar nach MC_ALLOCATE MC_FLUSH oder MC_CONFIRM ausgeben. Andernfalls wird die MC_ALLOCATE Anforderung mit anderen Daten im Sendepuffer der lokalen LU akkumuliert, bis der Puffer voll ist.
Durch die Ausgabe von MC_CONFIRM nach MC_ALLOCATE kann der aufrufende TP sofort ermitteln, ob die Zuordnung erfolgreich war (wenn synclevel auf AP_CONFIRM_SYNC_LEVEL festgelegt ist).
Normalerweise muss der Wert des mode_name-Parameters des MC_ALLOCATE Verbs mit dem Namen eines Modus übereinstimmen, der für den Knoten des aufgerufenen TP konfiguriert und während der Konfiguration der Partner-LU zugeordnet ist.
Wenn einer der Modi, die der Partner-LU auf dem Knoten des aufgerufenen TP zugeordnet sind, ein impliziter Modus ist, wird die zwischen den beiden LUs eingerichtete Sitzung im impliziten Modus ausgeführt, wenn kein der Partner-LU zugeordneter Modusname mit dem Wert von mode_name übereinstimmt.
Host Integration Server unterstützt ein Feature namens Kennwortersetzung. Dies ist ein Sicherheitsfeature, das von der neuesten Version des IBM i-Betriebssystems (V3R1) unterstützt wird und jedes Kennwort verschlüsselt, das zwischen zwei Knoten in einer Anfügen-Nachricht fließt. Ein Kennwort fließt in eine Anfügung, wenn jemand ein APPC-Transaktionsprogramm aufruft, das eine Benutzer-ID und ein Kennwort angibt. Dies geschieht beispielsweise, wenn sich jemand bei einer IBM i anmeldet.
Die Unterstützung für die Kennwortersetzung wird durch Festlegen von Bit 5 in Byte 23 der BIND-Anforderung auf 1 angegeben (was angibt, dass die Kennwortersetzung unterstützt wird). Wenn das Remotesystem dieses Bit in der BIND-Antwort festlegt, verschlüsselt Host Integration Server automatisch das Lu 6.2-Unterhaltungssicherheitskennwort, das in der FMH-5 Attach-Nachricht enthalten ist. Host Integration Server APPC-Anwendungen nutzen dieses Feature automatisch, indem sie das Sicherheitsfeld des VCB auf AP_PGM oder AP_STRONG in der MC_ALLOCATE-Anforderung festlegen.
Wenn eine APPC-Anwendung den Fluss eines verschlüsselten Kennworts erzwingen möchte, kann die Anwendung in der MC_ALLOCATE-Anforderung AP_STRONG für das Sicherheitsfeld im VcB angeben. Diese Option wird wie in IBM i V3R1 definiert implementiert und in der IBM i CPI-C-Programmiererreferenz als CM_SECURITY_PROGRAM_STRONG dokumentiert, wobei das Feld LU 6.2 pwd (Kennwort) verschlüsselt wird, bevor es über das physische Netzwerk fließt.
Die Kennwortersetzungsfunktion wird derzeit nur von IBM i V3R1 oder höher unterstützt. Wenn das Remotesystem dieses Feature nicht unterstützt, hebt Host Integration Server die Bindung der Sitzung mit dem Sense-Code von 10060006 auf. Die beiden Knoten verhandeln, ob sie dieses Feature im BIND-Austausch unterstützen oder nicht. Host Integration Server legt ein Bit im BIND fest und fügt auch einige zufällige Daten zur Verschlüsselung in bind hinzu. Wenn der Remoteknoten die Kennwortersetzung unterstützt, wird das gleiche Bit in der BIND-Antwort festgelegt und einige (unterschiedliche) Zufallsdaten für die Entschlüsselung hinzugefügt.
Host Integration Server unterstützt die automatische Anmeldung für APPC-Anwendungen. Dieses Feature erfordert eine bestimmte Konfiguration durch den Netzwerkadministrator: Die APPC-Anwendung muss auf der LAN-Seite von einem Client von Host Integration Server aufgerufen werden. Der Client muss bei einer Windows-Domäne angemeldet sein, kann jedoch eine beliebige Plattform sein, die die Host Integration Server APPC-APIs unterstützt.
Die Clientanwendung ist so codiert, dass sie sicherheit auf "Programmebene" mit einem speziellen hartcodierten APPC-Benutzernamen MS$SAME und dem Kennwort MS$SAME verwendet. Wenn diese Sitzungszuordnung vom Client zum Host Integration Server fließt, sucht der Hostintegrationsserver das Hostkonto und das Kennwort, das dem Windows-Konto entspricht, unter dem der Client angemeldet ist, und ersetzt die Hostkontoinformationen in der APPC-Anfügungsnachricht, die er an den Host sendet.
Hinweis
Es ist unzulässig, dass der Remoteknoten das Bit festlegt, das die Kennwortersetzung angibt, und die Zufälligen Daten nicht hinzufügen.
Laut IBM gibt es Implementierungen der LU 6.2-Kennwortersetzung, die keine Kennwortersetzung unterstützen, aber das Kennwortersetzungsbit an Host Integration Server zurückgeben, ohne zufällige Daten anzugeben. In diesem Fall hebt Host Integration Server die Bindung der Sitzung mit dem Sense-Code 10060006 auf. Dieser Sense-Code wird wie folgt interpretiert:
1006 = Erforderliches Feld oder Fehlender Parameter.
0006 = Ein erforderliches Unterfeld eines Kontrollvektors wurde weggelassen.
Host Integration Server sollte auch ein Ereignis 17 protokollieren (APPC-Sitzungsaktivierungsfehler: BIND negative Antwort gesendet).
Die richtige Lösung besteht darin, dass die fehlerhafte Implementierung behoben wird. Als kurzfristige Problemumgehung kann jedoch die folgende Registrierungseinstellung des Host Integration Server-SNA-Diensts festgelegt werden: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\snaservr\parameters\NOPWDSUB: REG_SZ: JA
Wenn dieser Parameter in der Registrierung angegeben ist, wird die Unterstützung für die Kennwortersetzung von Host Integration Server deaktiviert.
Es wurden mehrere Updates für Host Integration Server vorgenommen, um einer privilegierten APPC-Anwendung das Öffnen einer APPC-Konversation mithilfe der Single Sign-On-Funktion im Namen eines definierten Windows-Benutzers zu ermöglichen. Dies wird als privilegiertes Proxyfeature bezeichnet. Dem Verb APPC-MC_ALLOCATE wurde eine Erweiterung hinzugefügt, um dieses Feature aufzurufen.
Eine APPC-Anwendung wird privilegiert, indem sie in einem Windows-Benutzerkonto gestartet wird, das Mitglied einer speziellen Windows-Gruppe ist. Wenn eine Hostsicherheitsdomäne konfiguriert ist, definiert SNA Manager eine zweite Windows-Gruppe für die Verwendung mit den Hostsicherheitsfeatures von Host Integration Server. Wenn das Benutzerkonto, unter dem der tatsächliche Client ausgeführt wird, Mitglied dieser zweiten Windows-Gruppe ist, ist der Client berechtigt, eine APPC-Konversation im Namen eines beliebigen Benutzerkontos zu initiieren, das im Hostkontocache definiert ist.
Im Folgenden wird veranschaulicht, wie das Feature für privilegierte Proxys funktioniert:
Der Host Integration Server-Administrator erstellt eine Hostsicherheitsdomäne mit dem Namen APP. SNA-Manager erstellt jetzt zwei Windows-Gruppen. Die erste Gruppe heißt APP und die zweite gruppe heißt APP_PROXY für dieses Beispiel. Benutzer, die der APP-Gruppe zugewiesen sind, sind für einmaliges Anmelden aktiviert. Benutzer, die der APP_PROXY Gruppe zugewiesen sind, sind privilegierte Proxys. Der Administrator fügt den Windows-Benutzer AppcUser der gruppe APP_PROXY hinzu, indem er die Schaltfläche Benutzer im Dialogfeld Hostsicherheitsdomäne im SNA-Manager verwendet.
Der Administrator richtet dann eine APPC-Anwendung auf dem Host Integration Server-Server ein, die als Windows-Dienst namens APPCAPP ausgeführt wird, und dieser Dienst wurde für den Betrieb unter dem AppcUser-Benutzerkonto eingerichtet. Wenn APPCAPP ausgeführt wird, wird eine APPC-Sitzung über ein ALLOCATE-Verb mit dem erweiterten VCB-Format geöffnet und der Windows-Benutzername des gewünschten Benutzers( z. B. UserA) angegeben.
Der SNA-Dienst sieht die Sitzungsanforderung von einer Verbindung, die Mitglied der Host Security Domain APP ist. Die Client/Server-Schnittstelle teilt dem SNA-Dienst mit, dass der tatsächliche Client AppcUser ist.
Der SNA-Dienst überprüft, ob AppcUser Mitglied der gruppe APP_PROXY ist. Da AppcUser Mitglied von APP_PROXY ist, fügt der SNA-Dienst den Benutzernamen/Das Kennwort für UserA in den Befehl APPC Attach (FMH-5) ein und sendet ihn an den Partner-TP.
Um das Feature für privilegierte Proxys zu unterstützen, muss die APPC-Anwendung die folgende Programmlogik implementieren:
Die APPC-Anwendung muss die Windows-Benutzer-ID und den Domänennamen ermitteln, die sie annehmen möchte.
Die APPC-Anwendung muss die folgenden Parameter festlegen, bevor das MC_ALLOCATE Verb aufgerufen wird:
Aktivieren Sie die Verwendung der erweiterten MC_ALLOCATE Verbsteuerungsblockstruktur, indem Sie das flag AP_EXTD_VCB im opext-Feld festlegen.
Legen Sie Sicherheit auf AP_PROXY_SAME, AP_PROXY_PGM oder AP_PROXY_STRONG fest.
Richten Sie die Zeiger für proxy_user und proxy_domain so ein, dass sie auf Unicode-Zeichenfolgen verweisen, die den Benutzernamen und Domänennamen des Benutzers enthalten, der die Identität annehmen soll.
Hinweis
Die Anwendung muss die Felder user_id und pwd im MC_ALLOCATE VCB nicht einrichten.
Wenn die APPC-Anwendung die oben genannten Schritte ausführt und das MC_ALLOCATE Verb ausgibt, führt der Host Integration Server-Server eine Suche in der Hostsicherheitsdomäne für den angegebenen Windows-Benutzer durch und legt die Benutzer-ID- und Kennwortfelder in der FMH-5-Nachricht anfügen fest, die an das Remotesystem gesendet wird.