Freigeben über


ZUTEILEN

Das ALLOCATE Verb wird vom aufrufenden Transaktionsprogramm (TP) ausgegeben. Sie weist eine Sitzung zwischen der lokalen logischen Einheit (LU) und der Partner-LU zu, und (in Verbindung mit RECEIVE_ALLOCATE) stellt eine Unterhaltung zwischen dem aufrufenden TP und dem aufgerufenen TP her. Nachdem dieses Verb erfolgreich ausgeführt wurde, generiert APPC einen Unterhaltungsbezeichner (conv_id). Die conv_id ist ein erforderlicher Parameter für alle anderen APPC-Unterhaltungsverben.

In der folgenden Struktur wird der verbsteuerelementblock beschrieben, 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];  
};   

Elemente

opcode
Angegebener Parameter. Gibt den Verbvorgangscode AP_B_ALLOCATE an.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung AP_BASIC_CONVERSATION an. Wenn das AP_EXTD_VCB Bit festgelegt ist, gibt dies an, dass eine erweiterte Version des Verb-Steuerelementblocks verwendet wird. In diesem Fall umfasst die ALLOCATE-Struktur die Unterstützung des Sync Point oder die Unterstützung von privilegierten Proxyfunktionen.

reserv2
Ein reserviertes Feld.

primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC am Ende des Verbs festgelegt wurde. Die gültigen Rückgabecodes variieren je nach ausgegebenen APPC-Verb. Informationen zu gültigen Fehlercodes für dieses Verb finden Sie unter "Rückgabecodes".

secondary_rc
Zurückgegebener Parameter. Gibt den von APPC festgelegten sekundären Rückgabecode am Ende des Verbs an. Die gültigen Rückgabecodes variieren je nach ausgegebenen APPC-Verb. Informationen zu gültigen Fehlercodes für dieses Verb finden Sie unter "Rückgabecodes".

tp_id
Angegebener Parameter. Identifiziert das lokale TP. Der Wert dieses Parameters wurde von TP_STARTED zurückgegeben.

conv_id
Zurückgegebener Parameter. Identifiziert die Zwischenunterhaltung zwischen den beiden TPs.

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

Wenn ALLOCATE eine zugeordnete Unterhaltung einrichtet, muss das lokale TP grundlegende Unterhaltungsverben ausstellen und eine eigene Zuordnungsschicht bereitstellen, um Datensätze in logische Datensätze und logische Datensätze in Datensätze zu konvertieren. Das Partner-TP kann grundlegende Unterhaltungsverben bereitstellen und die Zuordnungsschicht bieten oder zugeordnete Unterhaltungsverben verwenden (wenn das Partner-TP eine Implementierung von APPC verwendet, die zugeordnete Unterhaltungsverben unterstützt). Weitere Informationen finden Sie in Ihren IBM SNA-Handbüchern.For more information, see your IBM SNA manual(s).

Synchronisierungsstufe
Angegebener Parameter. Gibt die Synchronisierungsebene der Unterhaltung an. Sie bestimmt, ob die TPs die Bestätigung des Empfangs von 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 auf einer Sitzungsanforderung vom lokalen TP ausgeführt wird, die Steuerung an den lokalen TP zurückgeben soll. Informationen zu Sitzungen finden Sie unter "Über Transaktionsprogramme".

  • AP_IMMEDIATE gibt an, dass die LU eine Inhaltsgewinnersitzung zuweist, sofern eine sofort verfügbar ist, und gibt die Steuerung an den TP zurück.

  • AP_WHEN_SESSION_ALLOCATED gibt an, dass die LU die Steuerung erst an den TP zurückgibt, wenn sie eine Sitzung zuweist oder auf einen der In Rückgabecodes in diesem Thema dokumentierten Fehler stößt. (Wenn der Sitzungsgrenzwert null ist, gibt die LU die Steuerung sofort 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 Contention-Gewinner- oder Contention-Loser-Sitzung zuweist, wenn 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 mit dem Fehler in den Feldern primary_rc und secondary_rc zurückgegeben.

  • AP_WHEN_CONWINNER_ALLOCATED gibt an, dass die LU die Steuerung erst zurückgibt, wenn sie eine Sitzung mit Inhaltsgewinnern zuweist oder auf einen der In Rückgabecodes in diesem Thema dokumentierten Fehler stößt. (Wenn der Sitzungsgrenzwert null ist, gibt die LU die Steuerung sofort 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 die Steuerung erst an den TP zurückgibt, wenn sie die durch conv_group_id angegebene Sitzung zuweist oder einer der Fehler auftritt, die in den Rückgabecodes dieses Themas 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 , der nie dazu führt, dass eine neue Sitzung gestartet wird. Für Werte außerhalb von AP_IMMEDIATE, wenn eine entsprechende Sitzung nicht sofort verfügbar ist, versucht der Host Integration Server, eine zu starten. Dies bewirkt, dass die On-Demand-Verbindung aktiviert wird.

reserv4
Ein reserviertes Feld.

conv_group_id
Bereitgestellter/zurückgegebener Parameter. Gibt den Bezeichner der Unterhaltungsgruppe an, 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 (Wiederholungsversuche oder keinen Wiederholungsversuche) an und enthält Sinndaten.

plu_alias
Angegebener Parameter. Gibt den Alias an, mit dem die Partner-LU dem lokalen TP bekannt ist.

Die plu_alias muss dem Namen einer Partner-LU entsprechen, 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, legen 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 mit TPs, 5250 Emulatoren und/oder APPC-Anwendungen kann der Systemadministrator lokale und Remote-LUs zuweisen. In diesem Fall bleibt das Feld leer oder null, und auf die Standard-LUs wird zugegriffen, wenn der Benutzer oder Gruppenmitglied ein APPC-Programm startet. Weitere Informationen zu Standard-LUs finden Sie in der Hilfe zum Microsoft Host Integration Server.

    mode_name
    Angegebener Parameter. Gibt den Namen einer Gruppe von Netzwerkmerkmalen an, die während der Konfiguration definiert sind.

    Der Wert von mode_name muss dem Namen eines Modus entsprechen, der der Partner-LU während der Konfiguration zugeordnet ist.

    Der Parameter ist eine 8-Byte EBCDIC-Zeichenfolge. Sie 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 intern von APPC verwendet. 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 in der aufrufenden TP angegeben wird, muss mit dem Wert von tp_name übereinstimmen, der von RECEIVE_ALLOCATE im aufgerufenen TP angegeben wird.

    Der Parameter ist eine 64-Byte-EBCDIC-Zeichenzeichenfolge und berücksichtigt die Groß-/Kleinschreibung. Der parameter tp_name kann aus den folgenden EBCDIC-Zeichen bestehen:

  • Groß- und Kleinbuchstaben

  • Ziffern 0 bis 9

  • Sonderzeichen $, #, @und Punkt (.)

    Wenn tp_name weniger als 64 Bytes beträgt, verwenden Sie EBCDIC-Leerzeichen (0x40), um sie auf der rechten Seite zu speichern.

    Die SNA-Konvention besteht darin, dass ein Dienst-TP-Name bis zu vier Zeichen enthalten kann. Das erste Zeichen ist ein hexadezimales Byte zwischen 0x00 und 0x3F. Die anderen Zeichen stammen aus dem Typ AE EBCDIC Zeichensatz.

    Sicherheit
    Angegebener Parameter. Stellt die Informationen bereit, die die Partner-LU benötigt, um den Zugriff auf das aufgerufene TP zu überprüfen.

    Verwenden Sie basierend auf der Unterhaltungssicherheit, die während der Konfiguration für den aufgerufenen TP eingerichtet wurde, einen der folgenden Werte:

  • AP_NONE für ein aufgerufenes TP, das keine Unterhaltungssicherheit verwendet.

  • AP_PGM für ein aufgerufenes TP, das Unterhaltungssicherheit verwendet, und erfordert daher einen Benutzerbezeichner und ein Kennwort. 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 erfordert daher eine Benutzer-ID und ein Kennwort. Zeiger müssen für proxy_user eingerichtet sein und proxy_domain auf Unicode-Zeichenfolgen verweisen, die den Benutzernamen und den Domänennamen des Benutzers enthalten, der als Identitätswechsel verwendet werden soll. Die Anwendung muss die felder user_id und pwd nicht festlegen.

  • AP_PROXY_SAME für ein TP, das mithilfe eines privilegierten Proxys mit einem gültigen Benutzerbezeichner und kennwort aufgerufen wurde, der vom Proxy bereitgestellt wird, was wiederum einen anderen TP aufruft. Zeiger müssen für proxy_user eingerichtet sein und proxy_domain auf Unicode-Zeichenfolgen verweisen, die den Benutzernamen und den Domänennamen des Benutzers enthalten, der als Identitätswechsel verwendet werden soll. Die Anwendung muss die felder user_id und pwd nicht festlegen.

    Angenommen, TP A ruft TP B mit einem gültigen Benutzerbezeichner und Kennwort auf, der vom privilegierten Proxy bereitgestellt wird, 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 an den Benutzerbezeichner von TP A und einen bereits überprüften Indikator. Dieser Indikator weist TP C an, das Kennwort nicht erforderlich zu machen (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 Unterhaltungssicherheit verwendet, und erfordert daher eine Vom privilegierten Proxymechanismus bereitgestellte Benutzer-ID und ein Kennwort. Zeiger müssen für proxy_user eingerichtet sein und proxy_domain auf Unicode-Zeichenfolgen verweisen, die den Benutzernamen und den Domänennamen des Benutzers enthalten, der als Identitätswechsel verwendet werden 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 Klartext-Kennwörter zulässt. Wenn das Remotesystem verschlüsselte Kennwörter (sichere Unterhaltungssicherheit) nicht unterstützt, schlägt dieser Aufruf fehl.

  • AP_SAME für einen TP, der mit einem gültigen Benutzerbezeichner und Kennwort aufgerufen wurde, was wiederum einen anderen TP aufruft.

    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 an die Benutzer-ID von TP A und einen bereits überprüften Indikator. Dieser Indikator weist TP C an, das Kennwort nicht erforderlich zu machen (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 angeben. Abhängig von den zwischen dem SNA-Server und der Peer-LU ausgehandelten Eigenschaften sendet das ALLOCATE-Verb eine von drei Arten von Attach-Nachrichten (FMH-5) in folgender Prioritätsreihenfolge:

  1. Wenn die LUs die "bereits überprüfte" Sicherheit ausgehandelt haben, enthält die vom SNA-Server gesendete Anfügung 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 das vom SNA-Server gesendete Anfügen den pwd-Parameter, der in der VCB angegeben ist, aber nur, wenn das Anfügen das erste für den angegebenen user_id-Parameter seit dem Start der LU-LU-Sitzung ist und lässt den pwd-Parameter bei allen nachfolgenden Anfügungen aus (ausgestellt von Ihrer Anwendung oder einer anderen Anwendung, die dieses LU-LU-Modus-Triplet verwendet).

  3. Wenn die LUs keines der oben genannten verhandelt haben, wird das vom SNA-Server gesendete Attach sowohl die user_id-Parameter als auch pwd-Parameter für alle Attaches weglassen.

    Ihre Anwendung kann nicht erkennen, welcher Sicherheitsmodus zwischen den LUs ausgehandelt wurde, noch ob der ALLOCATE-Befehl, den sie sendet, der erste für dieses LU-LU-Modus-Triplet ist. Ihre Anwendung muss also immer die Felder user_id und pwd-Parameter im VCB festlegen, wenn die Sicherheit auf AP_SAME festgelegt ist.

    Weitere Informationen zur dauerhaften Überprüfung und bereits überprüfter Sicherheit finden Sie im SNA Formats Guide, Abschnitt "FM Header 5: Attach (LU 6.2)".

  • AP_STRONG für ein aufgerufenes TP, das Unterhaltungssicherheit verwendet, und erfordert somit einen Benutzerbezeichner und ein Kennwort. Geben Sie diese Informationen über die parameter user_id und pwd an. AP_STRONG unterscheidet sich von AP_PGM darin, dass AP_STRONG keine Klartext-Kennwörter zulässt. Wenn das Remotesystem verschlüsselte Kennwörter (sichere Unterhaltungssicherheit) nicht unterstützt, schlägt dieser Aufruf fehl.

    Wenn die automatische APPC-Anmeldefunktion verwendet werden soll, muss die Sicherheit auf AP_PGM festgelegt werden. Ausführliche 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.

    Der pwd-Parameter ist eine 10-Byte-EBCDIC-Zeichenfolge und berücksichtigt groß-/kleinschreibung. Er kann aus den folgenden EBCDIC-Zeichen bestehen:

  • Groß- und Kleinbuchstaben

  • Ziffern 0 bis 9

  • Sonderzeichen $, #, @und Punkt (.)

    Wenn das Kennwort weniger als 10 Bytes beträgt, verwenden Sie EBCDIC-Leerzeichen (0x40), um es auf der rechten Seite zu speichern.

    Wenn die automatische APPC-Anmeldefunktion verwendet werden soll, muss die PWD-Zeichenzeichenfolge hartcodiert werden, um MS$SAME. Ausführliche Informationen finden Sie im Abschnitt "Hinweise".

    user_id
    Angegebener Parameter. Gibt den Benutzerbezeichner an, der für den Zugriff auf den 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 und berücksichtigt die Groß-/Kleinschreibung. Er muss mit einem der für den Partner-TP konfigurierten Benutzerbezeichner übereinstimmen.

    Der Parameter kann aus den folgenden EBCDIC-Zeichen bestehen:

  • Groß- und Kleinbuchstaben

  • Ziffern 0 bis 9

  • Sonderzeichen $, #, @und Punkt (.)

    Wenn user_id weniger als 10 Byte beträgt, verwenden Sie EBCDIC-Leerzeichen (0x40), um sie auf der rechten Seite zu speichern.

    Wenn die automatische APPC-Anmeldefunktion verwendet werden soll, muss die user_id Zeichenfolge hartcodiert an MS$SAME sein. Ausführliche 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 liegt zwischen 0 und 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 0 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) entsprechen. Weitere Informationen finden Sie im SNA LU6.2 Reference: Peer-Protokolle, das von IBM veröffentlicht wurde.

    Für Windows kann sich der Datenpuffer in einem statischen Datenbereich oder in einem global zugewiesenen Bereich befinden. Der Datenpuffer muss vollständig in diesen Bereich passen.

    Reserv7
    Ein reserviertes Feld.

    fqplu_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 Typen von EBCDIC-Zeichenfolgen 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 ist. Er kann aus den folgenden EBCDIC-Zeichen bestehen:

  • Großbuchstaben

  • Ziffern 0 bis 9

  • Sonderzeichen $, #und @

    Wenn der Wert dieses Parameters kleiner als 17 Byte ist, legen 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 zeigt, die den Benutzernamen enthält, der mithilfe des privilegierten Proxyfeatures identitätswechselt werden soll. Dieses Feld kann nur verwendet werden, wenn das AP_EXTD_VCB Bit für das Opext-Feld festgelegt ist, das 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 imitiert werden soll. Dieses Feld kann nur verwendet werden, wenn das AP_EXTD_VCB Bit für das Opext-Feld festgelegt ist, das eine erweiterte VCB angibt.

    reserv9
    Ein reserviertes Feld.

Rückgabecodes

AP_OK
Primärer Rückgabecode; das Verb erfolgreich ausgeführt wurde.

AP_ERFOLGLOS
Primärer Rückgabecode; der angegebene Parameter rtn_ctl sofortigen Rückgabe (AP_IMMEDIATE) an das TP angegeben, und die lokale LU hat keine verfügbare Sitzung des Gewinners von Inhalten.

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_SCHLECHTE_SICHERHEIT

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

AP_UNGÜLTIGES_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_FALSCH

Sekundärer Rückgabecode; der Wert von pip_dlen größer als 32767 war.

AP_UNBEKANNTER_PARTNER_MODUS

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 angegebene partner_lu_alias nicht erkannt.

AP_BAD_CONV_TYPE (für eine einfache Unterhaltung)

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_UNGÜLTIGER_DATENSEGMENT

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 RESET festgelegt.

Dieser Code kann über ein Verb zurückgegeben werden, das nach ZUWEISUNG ausgegeben wurde.

AP_ZUORDNUNGSFEHLER_KEIN_NEUVERSUCH

Sekundärer Rückgabecode; die Unterhaltung kann aufgrund einer dauerhaften Bedingung nicht zugewiesen werden, z. B. aufgrund eines Konfigurationsfehlers oder sitzungsprotokollfehlers. Um den Fehler zu ermitteln, sollte der Systemadministrator die Fehlerprotokolldatei untersuchen. Wiederholen Sie die Zuordnung erst, wenn der Fehler behoben wurde.

AP_ALLOCATIONSFEHLER_WIEDERHOLUNG

Sekundärer Rückgabecode; die Unterhaltung konnte aufgrund einer temporären Bedingung, z. B. aufgrund eines Verknüpfungsfehlers, nicht zugewiesen werden. Der Grund für den Fehler wird im Systemfehlerprotokoll protokolliert. Wiederholen Sie die Zuordnung.

AP_COMM_SUBSYSTEM_ABENDED
Primärer Rückgabecode; gibt eine der folgenden Bedingungen an:

  • Der von dieser Unterhaltung verwendete Knoten hat einen ABEND gefunden.

  • Die Verbindung zwischen dem TP und dem PU 2.1-Knoten wurde unterbrochen (LAN-Fehler).

  • Die SnaBase auf dem Computer des TP ist ein ABEND aufgetreten.

    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 beim Verarbeiten des Verbs nicht geladen oder beendet werden. So 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, um die lokale LU zu unterstützen. (Der mit TP_STARTED angegebene lokale LU-Alias ist beispielsweise falsch oder wurde nicht konfiguriert.) Wenn lu_alias oder mode_name weniger als acht Zeichen enthält, müssen Sie sicherstellen, dass diese Felder mit Leerzeichen rechts 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 das System erzeugt, das mit mehreren Knoten mit Hostintegrationsserver 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 ausgegeben wird) ist für keine aktiven Knoten konfiguriert. Das Problem könnte eine 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; die VCB über das Ende des Datensegments hinaus erweitert wurde.

    AP_STACK_ZU_KLEIN
    Primärer Rückgabecode; Die Stapelgröße der Anwendung ist zu klein, um das Verb auszuführen. Erhöhen Sie die Stapelgröße Ihrer Anwendung.

    AP_CONV_BUSY
    Primärer Rückgabecode; es kann jeweils nur ein herausragendes Unterhaltungsverb für jede Unterhaltung vorhanden sein. Dies kann auftreten, wenn der lokale TP über mehrere Threads verfügt und mehrere Threads APPC-Aufrufe mit demselben conv_id ausgeben.

    AP_Thread-Blockierung
    Primärer Rückgabecode; Der aufrufende Thread befindet sich bereits in einem blockierenden Aufruf.

    AP_UNERWARTETER_DOS_FEHLER
    Primärer Rückgabecode; Das Betriebssystem hat beim Verarbeiten eines APPC-Aufrufs vom lokalen TP einen Fehler an APPC zurückgegeben. Der Rückgabecode des Betriebssystems wird über die secondary_rc zurückgegeben. Es wird in intel byte-getauschter Reihenfolge angezeigt. Wenn das Problem weiterhin besteht, wenden Sie sich an den Systemadministrator.

Bemerkungen

ALLOCATE kann entweder eine einfache oder abgebildete Unterhaltung einrichten.

Der Unterhaltungszustand wird ZURÜCKGESETZT, 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 ALLOCATE sind EBCDIC- oder ASCII-Zeichenfolgen. Ein TP kann das allgemeine Dienstverb (CSV) CONVERT verwenden, um eine Zeichenfolge aus einem Zeichensatz in den anderen zu übersetzen.

Um die ALLOCATE-Anforderung sofort zu senden, kann der aufrufende TP FLUSH oder CONFIRM sofort nach ALLOCATE ausführen. Andernfalls sammelt sich die ALLOCATE-Anforderung mit anderen Daten im Sendepuffer der lokalen LU, bis der Puffer voll ist.

Durch die Bestätigung von CONFIRM nach ALLOCATE kann der aufrufende TP sofort feststellen, ob die Zuweisung erfolgreich war (wenn die 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 aufgerufenen TP-Knoten konfiguriert und während der Konfiguration mit der Partner-LU verknüpft ist.

Wenn einer der dem Partner-LU zugeordneten Modi auf dem Knoten des aufgerufenen TP ein impliziter Modus ist, wird die zwischen den beiden LUs festgelegte Sitzung dem impliziten Modus zugeordnet, wenn kein Modusname, der der Partner-LU zugeordnet ist, mit dem Wert von mode_name übereinstimmt.

Hostintegrationsserver unterstützt ein Feature namens Kennwortersetzung. Dies ist ein Sicherheitsfeature, das vom IBM i-Betriebssystem unterstützt wird, das jedes Kennwort verschlüsselt, das zwischen zwei Knoten in einer Anfügen-Nachricht fließt. Ein Kennwort fließt bei anfügen, wenn jemand ein APPC-Transaktionsprogramm aufruft, das einen Benutzerbezeichner und ein Kennwort angibt. Dies geschieht beispielsweise, wenn sich jeder bei einem 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 der SNA-Server automatisch das Sicherheitskennwort der LU 6.2-Konversation, das in der FMH-5-Attach-Nachricht enthalten ist. APPC-Anwendungen, die Hostintegrationsserver 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 das Ablaufen eines verschlüsselten Kennworts erzwingen möchte, kann die Anwendung AP_STRONG für das Sicherheitsfeld im VCB in der ALLOCATE-Anforderung angeben. Diese Option wird in IBM i V3R1 definiert und wird in der IBM i CPI-C Programmierreferenz 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 Kennwortersetzungsfeatures werden derzeit nur von IBM i V3R1 oder höher unterstützt. Wenn dieses Feature vom Remotesystem nicht unterstützt wird, trennt der SNA-Server die Sitzung mit dem Sense Code 10060006. Die beiden Knoten verhandeln, ob sie dieses Feature im BIND-Austausch unterstützen oder nicht. HostIntegration Server legt ein bisschen in der BIND fest und fügt auch einige zufällige Daten zur BINDUNG für die Verschlüsselung 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.

Hostintegrationsserver 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 des Hostintegrationsservers aufgerufen werden. Der Client muss in einer Windows-Domäne angemeldet sein, der Client kann jedoch auf jedem Betriebssystem ausgeführt werden, das von den HOST Integration Server APPC-APIs unterstützt wird.

Die Clientanwendung ist codiert, um die Sicherheit auf Programmebene mit einem speziell hartcodierten APPC-Benutzernamen MS$SAME und kennwort MS$SAME zu verwenden. Wenn diese Sitzungszuweisung 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-Anlagenachricht, die er an den Host sendet.

Hinweis

Es ist für den Remoteknoten unzulässig, das Bit festzulegen, das die Kennwortersetzung angibt, und die zufälligen Daten nicht hinzufügen.

Laut IBM gibt es Implementierungen der LU 6.2-Kennwortersetzung, die die Kennwortersetzung nicht unterstützen, aber das Kennwortersetzungsbit zurück an Host Integration Server wiederholen, ohne zufällige Daten anzugeben. In diesem Fall entbindet der SNA-Server die Sitzung mit dem Sense-Code 10060006. Dieser Sense-Code wird wie folgt interpretiert:

  • 1006 = Erforderliches Feld oder Parameter fehlt.

  • 0006 = Ein erforderliches Unterfeld eines Steuerelementvektors wurde weggelassen.

    Hostintegrationsserver sollte auch ein Ereignis 17 protokollieren (APPC-Sitzungsaktivierungsfehler: Bind negative Antwort gesendet).

    Die richtige Lösung besteht darin, dass die fehlerhafte Implementierung behoben werden soll. Als kurzfristige Problemumgehung kann jedoch die folgende Registrierungseinstellung für den Hostintegrationsserver-Dienst festgelegt werden:

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

    Wenn dieser Parameter in der Registrierung angegeben wird, wird die Kennwortersetzungsunterstützung deaktiviert.

    Es wurden mehrere Aktualisierungen an Host Integration Server vorgenommen, um einer privilegierten APPC-Anwendung das Öffnen einer APPC-Unterhaltung mithilfe des Features "Single Sign-On" im Namen eines definierten Windows-Benutzers zu ermöglichen. Dies wird als privilegiertes Proxyfeature bezeichnet. Dem VERB APPC ALLOCATE wurde eine Erweiterung hinzugefügt, um dieses Feature aufzurufen.

    Eine APPC-Anwendung wird privilegierte, 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 des Hostintegrationsservers. Wenn das Benutzerkonto, unter dem der tatsächliche Client ausgeführt wird, Mitglied dieser zweiten Windows-Gruppe ist, ist der Client berechtigt, eine APPC-Unterhaltung im Namen eines beliebigen Benutzerkontos zu initiieren, das im Hostkontocache definiert ist.

    Im Folgenden wird die Funktionsweise des privilegierten Proxyfeatures veranschaulicht:

    Der Hostintegrationsserver-Administrator erstellt eine Hostsicherheitsdomäne namens APP. SNA Manager erstellt jetzt zwei Windows-Gruppen. Die erste Gruppe heißt "APP", und die zweite wird APP_PROXY für dieses Beispiel aufgerufen. Benutzer, die der APP-Gruppe zugewiesen sind, sind für einmaliges Anmelden aktiviert. Benutzer, die der gruppe APP_PROXY zugewiesen sind, sind privilegierte Proxys. Der Administrator fügt die Windows-Benutzer-AppcUser mithilfe der Schaltfläche "Benutzer" im Dialogfeld "Hostsicherheitsdomäne" im SNA-Manager zur APP_PROXY Gruppe hinzu.

    Der Administrator richtet dann eine APPC-Anwendung auf dem Hostintegrationsserver ein, um als Windows-Dienst namens APPCAPP ausgeführt zu werden und dieser Dienst für den Betrieb unter dem AppcUser-Benutzerkonto eingerichtet wurde. Wenn APPCAPP ausgeführt wird, öffnet es eine APPC-Sitzung über ein ALLOCATE-Verb im erweiterten VCB-Format und gibt den Windows-Benutzernamen des gewünschten Benutzers an, UserA (z. B. ).

    Der SNA-Dienst sieht die Sitzungsanforderung aus einer Verbindung, 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 ihn an den Partner-TP.

    Um das privilegierte Proxyfeature zu unterstützen, muss die APPC-Anwendung die folgende Programmlogik implementieren:

    Die APPC-Anwendung muss die Windows-Benutzer-ID und den Domänennamen bestimmen, die er als Identitätswechsel verwenden möchte.

    Die APPC-Anwendung muss die folgenden Parameter vor dem Aufrufen des ALLOCATE-Verbs festlegen:

    Aktivieren Sie die Verwendung der erweiterten ALLOCATE-Verb-Steuerelementblockstruktur, indem Sie das AP_EXTD_VCB-Flag im opext-Feld festlegen.

    Legen Sie die Sicherheit auf AP_PROXY_SAME, AP_PROXY_PGM oder AP_PROXY_STRONG fest.

    Richten Sie die Zeiger für proxy_user ein und proxy_domain , um auf Unicode-Zeichenfolgen zu verweisen, die den Benutzernamen und den Domänennamen des Benutzers enthalten, der als Identitätswechsel verwendet werden soll.

Hinweis

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

Wenn die APPC-Anwendung die oben genannten Schritte ausführt und das ZUWEISEN-Verb ausgibt, führt der Hostintegrationsserver ein Nachschlagen in der Hostsicherheitsdomäne für den angegebenen Windows-Benutzer durch und legt die Benutzer-ID- und Kennwortfelder in der FMH-5-Anfügen Nachricht fest, die an das Remotesystem gesendet wird.