Freigeben über


SET_TP_PROPERTIES

Das SET_TP_PROPERTIES Verb ermöglicht es einem Transaktionsprogramm (TP), seine logischen LuWIDs (Unit-of-Work Identifiers) entweder auf einen vorhandenen Wert festzulegen, indem die LUWIDs bereitgestellt werden, oder der SNA-Server fordert an, neue zu generieren und ab dann zu verwenden. Wenn die LUWID vom SNA-Server generiert wird, ist sie garantiert eindeutig. Dieses Verb wird nur verwendet, wenn die Unterstützung für Synchronisierungspunkt aktiviert ist.

Die folgende Struktur beschreibt den verb control block (VCB), der vom SET_TP_PROPERTIES Verb verwendet wird.

Syntax

  
struct set_tp_properties {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned char   set_prot_id;  
    unsigned char   new_prot_id;  
    unsigned char   prot_id[26];  
    unsigned char   set_unprot_id;  
    unsigned char   new_unprot_id;  
    unsigned char   unprot_id[26];  
    unsigned char   set_user_id;  
    unsigned char   reserv3;  
    unsigned char   user_id[10];  
    unsigned char   reserv4[10];  
};   

Member

opcode
Angegebener Parameter. Gibt den Code des Verbvorgangs AP_SET_TP_PROPERTIES an.

opext
Angegebener Parameter. Gibt die Verbvorgangserweiterung an. Das AP_EXTD_VCB Bit muss festgelegt werden, um anzugeben, dass die set_tp_properties-Struktur Synchronisierungspunktunterstützung erfordert.

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 im aufrufenden TP oder von RECEIVE_ALLOCATE im aufgerufenen TP zurückgegeben.

set_prot_id
Angegebener Parameter. Gibt an, ob das prot_id-Member geändert werden soll. Gesetzliche Werte sind AP_YES oder AP_NO.

new_prot_id
Angegebener Parameter. Gibt an, ob Microsoft® Host Integration Server die angegebene prot_id LUWID-Member verwenden oder eine neue LUWID erstellen soll. Gesetzliche Werte sind AP_YES (erstellen Sie eine neue LUWID) oder AP_NO (verwenden Sie die angegebene LUWID).

prot_id
Dieser Member ist der geschützte bezeichner für die logische Arbeitseinheit für die Transaktion, an der das TP beteiligt ist. Sie wird ignoriert, wenn set_prot_id AP_NO ist. Es handelt sich um einen angegebenen Parameter, wenn new_unprot_id AP_NO ist, oder ein zurückgegebener Parameter, wenn new_unprot_id AP_YES ist.

Mehrere TPs können an einer Transaktion beteiligt sein. Dieser Bezeichner, der im Namen des TP zugewiesen wird, der die Transaktion initiiert, ermöglicht die logische Verbindung der Konversation, aus der die Transaktion besteht.

Die prot_id kann als luw_id_overlay-Struktur mit den folgenden Feldern dargestellt werden:

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

Eine Länge von 1 Byte des vollqualifizierten LU-Namens für die LU des ursprünglichen TP.

luw_id.fqla_name

Der vollqualifizierte Name der LU für den ursprünglichen TP. Der Name wird als 17-Byte-EBCDIC-Zeichenfolge zurückgegeben, die aus der NETID, einem Punkt und dem LU-Namen besteht. Wenn die Länge des Namens weniger als 17 Byte beträgt, folgen sofort die instance und die Sequenznummern. (Beachten Sie, dass Sie daher nicht die Felder der luw_id_overlay-Struktur verwenden sollten, um auf diese Werte zuzugreifen. Diese werden nur aus Kompatibilitätsgründen bereitgestellt.

luw_id.instance

Eine 6-Byte-Zeichenfolge, die von der LU für den ursprünglichen TP eindeutig generiert wird.

luw_id.sequence

Eine 2-Byte-Zahl, die das Segment der Arbeitseinheit angibt. (Dies ist immer auf 1 festgelegt, wenn der Synchronisierungspunkt nicht unterstützt wird.)

Wenn die luw_id Länge weniger als 26 Bytes beträgt, wird sie rechts mit EBCDIC-Leerzeichen aufgefüllt.

set_unprot_id
Angegebener Parameter. Gibt an, ob der unprot_id-Member geändert werden soll. Gesetzliche Werte sind AP_YES oder AP_NO.

new_unprot_id
Angegebener Parameter. Gibt an, ob Host Integration Server die angegebene unprot_id LUWID-Member verwenden oder eine neue LUWID erstellen soll. Gesetzliche Werte sind AP_YES (erstellen Sie eine neue LUWID) oder AP_NO (verwenden Sie die angegebene LUWID).

unprot_id
Dieser Member ist der ungeschützte logische Arbeitseinheitsbezeichner für die Transaktion, an der der TP beteiligt ist. Sie wird ignoriert, wenn set_unprot_id AP_NO ist. Es handelt sich um einen angegebenen Parameter, wenn new_unprot_id AP_NO ist, oder ein zurückgegebener Parameter, wenn new_unprot_id AP_YES ist.

Mehrere TPs können an einer Transaktion beteiligt sein. Dieser Bezeichner, der im Namen des TP zugewiesen wird, der die Transaktion initiiert, ermöglicht die logische Verbindung der Konversation, aus der die Transaktion besteht.

Die prot_id kann als luw_id_overlay-Struktur mit den folgenden Feldern dargestellt werden:

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

Eine Länge von 1 Byte des vollqualifizierten LU-Namens für die LU des ursprünglichen TP.

luw_id.fqla_name

Der vollqualifizierte Name der LU für den ursprünglichen TP. Der Name wird als 17-Byte-EBCDIC-Zeichenfolge zurückgegeben, die aus der NETID, einem Punkt und dem LU-Namen besteht. Wenn die Länge des Namens weniger als 17 Byte beträgt, folgen sofort die instance und die Sequenznummern. (Beachten Sie, dass Sie daher nicht die Felder der luw_id_overlay-Struktur verwenden sollten, um auf diese Werte zuzugreifen. Diese werden nur aus Kompatibilitätsgründen bereitgestellt.)

luw_id.instance

Eine 6-Byte-Zeichenfolge, die von der LU für den ursprünglichen TP eindeutig generiert wird.

luw_id.sequence

Eine 2-Byte-Zahl, die das Segment der Arbeitseinheit angibt. (Dies ist immer auf 1 festgelegt, wenn der Synchronisierungspunkt nicht unterstützt wird.)

Wenn die luw_id Länge weniger als 26 Bytes beträgt, wird sie rechts mit EBCDIC-Leerzeichen aufgefüllt.

set_user_id
Angegebener Parameter. Gibt an, ob der user_id-Member geändert werden soll. Gesetzliche Werte sind AP_YES oder AP_NO.

reserve3
Ein reserviertes Feld.

User_id
Angegebener Parameter. Gibt die user_id an, die vom initiierenden TP in der Zuordnungsanforderung verwendet werden soll. Der Name ist eine 10-Byte-EBCDIC-Zeichenfolge, die rechts mit EBCDIC-Leerzeichen aufgefüllt ist. Dieser Parameter wird ignoriert, wenn set_user_id AP_NO ist.

reserve4
Ein reserviertes Feld.

Rückgabecodes

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

AP_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.

AP_BAD_TP_ID

Sekundärer Rückgabecode; der Wert von tp_id nicht mit einem TP-Bezeichner übereinstimmt, der von APPC zugewiesen wurde.

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.

    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_TP_BUSY
    Primärer Rückgabecode; die lokale TP hat APPC aufgerufen, während APPC einen weiteren Aufruf für denselben TP verarbeitet hat. Dies kann auftreten, wenn der lokale TP über mehrere Threads verfügt und mehr als ein Thread APPC-Aufrufe mit demselben tp_id ausgibt.

    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

Dieses Verb bezieht sich auf den TP und nicht auf eine Spezifikationsunterhaltung, sodass der TP das Verb in einem beliebigen Zustand ausstellen kann. Es gibt keine Zustandsänderung.

Die prot_id- und unprot_id-Member enthalten Felder für fqla_name_len (länge des vollqualifizierten LU-Namens der LU, der aus dem TP stammt), fqla_name (der vollqualifizierte Name der LU, der aus dem TP stammt), instance (eindeutig von der LU generiert, die der TP entstammt) und sequenz (immer auf 1 festgelegt und gibt das Segment der Arbeitseinheit an).

Es liegt in der Verantwortung der Anwendung (der Sync Point-Unterstützungskomponente), den neuen LUWID PS-Header an die Partnersynchronisierungspunktunterstützung zu übertragen, wenn die geschützte LUWID geändert wird. Auf ähnliche Weise muss die Anwendung beim Empfang des neuen LUWID-PS-Headers die LU informieren, indem sie ein SET_TP_PROPERTIES Verb ausgibt.