Freigeben über


ALLOCATE

Das ALLOCATE Verb wird vom aufrufenden Transaktionsprogramm (TP) ausgegeben. Es ordnet eine Sitzung zwischen der lokalen logischen Einheit (LU) und der Partner-LU zu und richtet (in Verbindung mit RECEIVE_ALLOCATE) eine Konversation zwischen dem aufrufenden TP und dem aufgerufenen TP ein. 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, der vom Allocate-Verb verwendet wird.

Syntax

  
struct 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    conv_type;  
    unsigned char    synclevel;  
    unsigned char    reserv3[2];  
    unsigned char    rtn_ctl;  
    unsigned char    reserv4;  
    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    reserv5[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_B_ALLOCATE.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an, AP_BASIC_CONVERSATION. Wenn das AP_EXTD_VCB Bits festgelegt ist, gibt dies an, dass eine erweiterte Version des Verb-Steuerelementblocks verwendet wird. In diesem Fall umfasst die ALLOCATE-Struktur die Unterstützung von Synchronisierungspunkt- oder privilegierten 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.

conv_type
Angegebener Parameter. Wird nur von ALLOCATE verwendet, um den zuzuordnenden Konversationstyp anzugeben, und ist entweder AP_BASIC_CONVERSATION oder AP_MAPPED_CONVERSATION.

Wenn ALLOCATE eine zugeordnete Unterhaltung erstellt, muss das lokale TP Verben für grundlegende Unterhaltungen ausstellen und eine eigene Zuordnungsebene bereitstellen, um Datensätze in logische Datensätze und logische Datensätze in Datensätze zu konvertieren. Der Partner-TP kann Verben für grundlegende Unterhaltungen ausstellen und die Zuordnungsebene bereitstellen, oder es kann zugeordnete Konversationsverben verwenden (wenn das Partner-TP eine Implementierung von APPC verwendet, die zugeordnete Konversationsverben unterstützt). Weitere Informationen finden Sie in Ihren IBM SNA-Handbüchern.

synclevel
Angegebener Parameter. Gibt die Synchronisierungsebene der Unterhaltung an. Er bestimmt, ob die TPs eine Bestätigung des Empfangs 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 von Synchronisierungspunktebene 2 in dieser Unterhaltung verwenden können.

    reserv3
    Ein reserviertes Feld.

    rtn_ctl
    Angegebener Parameter. Gibt an, wann die lokale LU, die für eine Sitzungsanforderung vom lokalen TP fungiert, die Steuerung an das lokale TP zurückgeben soll. Informationen zu Sitzungen finden Sie unter Informationen zu Transaktionsprogrammen.

  • AP_IMMEDIATE gibt an, dass die LU eine Konfliktgewinnersitzung zuordnet, sofern eine 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 zuordnet oder einen der fehler auftritt, die in Rückgabecodes in diesem Thema dokumentiert sind. (Wenn das Sitzungslimit null ist, gibt die LU sofort die Steuerung 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 zuordnet, sofern eine 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_ALLOCATED gibt an, dass die LU erst dann die Steuerung zurückgibt, wenn sie eine Konfliktgewinnersitzung ordnet oder einen der fehler auftritt, die in Rückgabecodes in diesem Thema dokumentiert sind. (Wenn das Sitzungslimit null ist, gibt die LU sofort die Steuerung zurück.) Wenn eine Sitzung nicht verfügbar ist, wartet der TP auf eine Sitzung.

  • AP_WHEN_CONV_GROUP_ALLOCATED gibt an, dass die LU erst dann die Steuerung an den TP zurückgibt, wenn sie die durch conv_group_idangegebene Sitzung zuordnet oder einen der fehler auftritt, die in Rückgabecodes in diesem Thema dokumentiert sind. Wenn eine Sitzung nicht verfügbar ist, wartet der TP darauf, dass sie frei wird.

Hinweis

AP_IMMEDIATE ist der einzige Wert für rtn_ctl , bei dem nie eine neue Sitzung gestartet wird. Für andere Werte als AP_IMMEDIATE versucht Host Integration Server, eine zu starten, wenn eine entsprechende Sitzung nicht sofort verfügbar ist. Dadurch wird die Bedarfsverbindung aktiviert.

reserv4
Ein reserviertes Feld.

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 die primary_rc AP_OK ist, ist dies ein zurückgegebener Wert.

sense_data
Zurückgegebener Parameter. Gibt einen Zuordnungsfehler an (Wiederholung oder kein Wiederholungsversuch) und enthält Sense-Daten.

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 8-Byte-ASCII-Zeichenfolge. 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, füllen 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. Weitere Informationen zu Standard-LUs finden Sie in der Hilfe zu Microsoft Host Integration Server.

    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. Die Verwendung dieses Namens in einer einfachen Unterhaltung wird nicht empfohlen.

    tp_name
    Angegebener Parameter. Gibt den Namen des aufgerufenen TP an. Der Wert von tp_name , der von ALLOCATE im aufrufenden TP angegeben wird, 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.

    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 dadurch, dass AP_PROXY_STRONG keine Klartextkennwörter zulässt. Wenn das Remotesystem keine verschlüsselten Kennwörter unterstützt (sichere Konversationssicherheit), schlägt dieser Aufruf fehl.

  • AP_SAME für einen TP, der mit einem gültigen Benutzerbezeichner und Kennwort aufgerufen wurde, wodurch wiederum ein anderer TP aufgerufen wird.

    Angenommen, TP A ruft TP B mit einem gültigen Benutzerbezeichner und Kennwort auf, und TP B ruft wiederum 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 zu erfordern (wenn TP C für die Annahme eines bereits überprüften Indikators konfiguriert ist).

    Wenn AP_SAME in einem ALLOCATE-Verb verwendet wird, muss Ihre Anwendung immer Werte für die Parameter user_id und pwd im Verbsteuerungsblock bereitstellen. Abhängig von den zwischen dem SNA-Server und der Peer-LU ausgehandelten Eigenschaften sendet das ALLOCATE-Verb eine von drei Arten von Anfügungsnachrichten (FMH-5) in dieser Rangfolge:

  1. Wenn die LUs die Sicherheit "bereits überprüft" ausgehandelt haben, enthält das vom SNA-Server gesendete Anfügen nicht den Inhalt des pwd-Parameterfelds , das in der VCB angegeben ist.

  2. Wenn die LUs die Sicherheit der "persistenten Überprüfung" ausgehandelt haben, enthält der vom SNA-Server gesendete Attach den pwd-Parameter , der in der 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 für alle nachfolgenden Attaches auslässt (ausgestellt von Ihrer Anwendung oder einer anderen Anwendung, die dieses LU-LU-Modus-Triplet verwendet).

  3. Wenn die LUs keines der oben genannten Verhandlungen ausgehandelt haben, lässt der vom SNA-Server gesendete Attach-Parameter sowohl die parameter user_id als auch pwd für alle Attaches weg.

    Ihre Anwendung kann nicht feststellen, welcher Sicherheitsmodus zwischen den LUs ausgehandelt wurde, noch kann sie feststellen, ob das ausgibte ALLOCATE-Verb das erste für dieses Triplet im LU-LU-Modus ist. Daher muss Ihre Anwendung immer die Parameterfelder user_id und pwd 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 im Abschnitt "FM Header 5: Attach (LU 6.2)".

  • AP_STRONG 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_STRONG unterscheidet sich von AP_PGM darin, dass AP_STRONG keine Klartextkennwörter zulässt. Wenn das Remotesystem keine verschlüsselten Kennwörter 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.

    reserv5
    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 unter SNA LU6.2 Reference: Peer Protocols published by IBM.

    Für 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 keine plu_alias angegeben wird. Sie kann aus den folgenden EBCDIC-Zeichen bestehen:

  • Großbuchstaben

  • Ziffern 0 bis 9

  • Sonderzeichen $, #, und @

    Wenn der Wert dieses Parameters weniger als 17 Bytes beträgt, füllen Sie ihn auf der rechten Seite mit EBCDIC-Leerzeichen (0x40).

    reserv8
    Ein reserviertes Feld.

    proxy_user
    Angegebener Parameter. Gibt einen LPWSTR an, der auf eine Unicode-Zeichenfolge zeigt, 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 einen erweiterten VCB angibt.

    proxy_domain
    Angegebener Parameter. Gibt einen LPWSTR 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 einen erweiterten VCB angibt.

    reserv9
    Ein reserviertes Feld.

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_BAD_CONV_TYPE (für eine einfache Konversation)

Sekundärer Rückgabecode; Der für conv_type angegebene Wert war ungültig.

AP_NO_USE_OF_SNASVCMG (für eine zugeordnete Konversation)

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 ALLOCATE ausgegeben wurde.

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 ALLOCATE verwendet wird, kann er angeben, dass kein Kommunikationssystem gefunden werden konnte, 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 ALLOCATE-Anforderung erfüllen kann.

    Wenn ALLOCATE diesen Rückgabecode für ein System erzeugt, das mit mehreren Knoten mit Host Integration Server konfiguriert ist, gibt es wie folgt zwei sekundäre Rückgabecodes:

    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

ALLOCATE kann entweder eine einfache oder zugeordnete Konversation einrichten.

Der Unterhaltungszustand ist RESET, wenn das TP dieses Verb ausgibt. Nach erfolgreicher Ausführung (primary_rc ist AP_OK), ändert sich der Zustand in SEND. Wenn das Verb nicht ausgeführt wird, bleibt der Zustand unverändert.

Mehrere Parameter von ALLOCATE sind EBCDIC- oder ASCII-Zeichenfolgen. Ein TP kann das common service verb (CSV) CONVERT verwenden, um eine Zeichenfolge von einem Zeichensatz in den anderen zu übersetzen.

Um die ALLOCATE-Anforderung sofort zu senden, kann der aufrufende TP sofort nach ALLOCATEFLUSH oder CONFIRM ausgeben. Andernfalls wird die ALLOCATE-Anforderung mit anderen Daten im Sendepuffer der lokalen LU akkumuliert, bis der Puffer voll ist.

Durch Die Ausgabe VON CONFIRM nach ALLOCATION kann der aufrufende TP sofort feststellen, ob die Zuordnung erfolgreich war (wenn synclevel auf AP_CONFIRM_SYNC_LEVEL festgelegt ist).

Normalerweise muss der Wert des mode_name Parameters des 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 vom impliziten Modus verwendet, 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 Vom IBM i-Betriebssystem unterstütztes Sicherheitsfeature, das jedes Kennwort verschlüsselt, das zwischen zwei Knoten in einer Anfügen-Nachricht fließt. Wenn jemand ein APPC-Transaktionsprogramm aufruft, das eine Benutzer-ID und ein Kennwort angibt, wird ein Kennwort in einem Anfügen ausgeführt. Dies geschieht beispielsweise immer dann, wenn sich jemand bei einer IBM i anmeldet.

Die Unterstützung der 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 der SNA-Server automatisch das Lu 6.2-Unterhaltungssicherheitskennwort, das in der FMH-5 Attach-Nachricht enthalten ist. APPC-Anwendungen, die Host Integration Server verwenden, nutzen dieses Feature automatisch, indem sie das Sicherheitsfeld des VCB auf AP_PGM oder AP_STRONG in der ALLOCATE-Anforderung festlegen.

Wenn eine APPC-Anwendung den Fluss eines verschlüsselten Kennworts erzwingen möchte, kann die Anwendung in der 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 Lu 6.2 pwd -Feld (Kennwort) verschlüsselt wird, bevor es über das physische Netzwerk fließt.

Die Kennwortersetzungsfeatures werden derzeit nur von IBM i V3R1 oder höher unterstützt. Wenn das Remotesystem dieses Feature nicht unterstützt, hebt der SNA-Server die Bindung an die 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 für die Verschlüsselung auf dem BIND hinzu. Wenn der Remoteknoten die Kennwortersetzung unterstützt, legt er das gleiche Bit in der BIND-Antwort fest und fügt einige (unterschiedliche) zufällige Daten für die Entschlüsselung hinzu.

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, aber der Client kann unter jedem Betriebssystem ausgeführt werden, das von den Host Integration Server APPC-APIs unterstützt wird.

Die Clientanwendung ist so codiert, dass sie die Sicherheit auf "Programmebene" mit einem speziellen hartcodierten APPC-Benutzernamen MS$SAME und dem Kennwort MS$SAME verwendet. Wenn diese Sitzungszuordnung vom Client zum SNA-Server fließt, sucht der Server 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

Für den Remoteknoten ist es unzulässig, das Bit festzulegen, das die Kennwortersetzung angibt, und die zufälligen Daten nicht hinzuzufü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 der SNA-Server die Bindung für die Sitzung mit dem Sinnescode 10060006 auf. Dieser Sinnescode wird wie folgt interpretiert:

  • 1006 = Erforderliches Feld oder Parameter fehlen.

  • 0006 = Ein erforderliches Unterfeld eines Steuerungsvektors 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-Diensts festgelegt werden:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\snaservr\parameters\NOPWDSUB: REG_SZ: JA

    Wenn dieser Parameter in der Registrierung angegeben wird, wird die Unterstützung für die Kennwortersetzung deaktiviert.

    Es wurden mehrere Updates für Host Integration Server vorgenommen, damit eine privilegierte APPC-Anwendung eine APPC-Unterhaltung mit dem Feature Single Sign-On im Auftrag eines definierten Windows-Benutzers öffnen kann. Dies wird als privilegiertes Proxyfeature bezeichnet. Zum Aufrufen dieses Features wurde dem Verb APPC ALLOCATE eine Erweiterung hinzugefügt.

    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 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 APP_PROXY Gruppe mithilfe der Schaltfläche Benutzer im Dialogfeld Hostsicherheitsdomäne in SNA Manager hinzu.

    Der Administrator richtet dann eine APPC-Anwendung auf dem Host Integration 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, öffnet es eine APPC-Sitzung über ein ALLOCATE-Verb unter Verwendung des erweiterten VCB-Formats und gibt den Windows-Benutzernamen des gewünschten Benutzers an, z. B. UserA.

    Der SNA-Dienst sieht, dass die Sitzungsanforderung von einer Verbindung stammt, die Mitglied der Hostsicherheitsdomänen-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 APP_PROXY Gruppe ist. Da AppcUser Mitglied von APP_PROXY ist, fügt der SNA-Dienst den Benutzernamen/Kennwort für UserA in den Befehl APPC Attach (FMH-5) ein und sendet es 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 Verb ALLOCATE aufgerufen wird :

    Aktivieren Sie die Verwendung der erweiterten Struktur des Verb-Steuerelementblocks ALLOCATE , indem Sie das flag AP_EXTD_VCB im Feld opext 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 identitätswechselt werden soll.

Hinweis

Die Anwendung muss die Felder user_id und pwd im ALLOCATE VCB nicht einrichten.

Wenn die APPC-Anwendung die oben genannten Schritte ausführt und das Verb ALLOCATE ausgibt, führt der Host Integration Server-Server eine Suche in der Hostsicherheitsdomäne für den angegebenen Windows-Benutzer durch und legt die Felder Benutzer-ID und Kennwort in der FMH-5-Nachricht anfügen fest, die an das Remotesystem gesendet wird.