SET_TP_PROPERTIES
Le verbe SET_TP_PROPERTIES permet à un programme transactionnel (TP) de définir ses identificateurs d’unité de travail logique (LUWID) sur une valeur existante, en fournissant les LUWID, ou en demandant au serveur SNA d’en générer de nouveaux et de les utiliser à partir de là. Lorsque le LUWID est généré par le serveur SNA, il est garanti qu’il est unique. Ce verbe est utilisé uniquement si la prise en charge des points de synchronisation est activée.
La structure suivante décrit le bloc de contrôle de verbe (VCB) utilisé par le verbe SET_TP_PROPERTIES .
Syntaxe
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];
};
Membres
opcode
Paramètre fourni. Spécifie le code d’opération de verbe, AP_SET_TP_PROPERTIES.
opext
Paramètre fourni. Spécifie l’extension de l’opération de verbe. Le bit AP_EXTD_VCB doit être défini pour indiquer que la structure set_tp_properties nécessite la prise en charge du point de synchronisation.
reserv2
Champ réservé.
primary_rc
Paramètre retourné. Spécifie le code de retour principal défini par APPC à l’achèvement du verbe. Les codes de retour valides dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
secondary_rc
Paramètre retourné. Spécifie le code de retour secondaire défini par APPC à l’achèvement du verbe. Les codes de retour valides dépendent du verbe APPC émis. Pour connaître les codes d’erreur valides de ce verbe, consultez Codes de retour.
tp_id
Paramètre fourni. Identifie le TP local. La valeur de ce paramètre a été retournée par TP_STARTED dans le TP d’appel ou par RECEIVE_ALLOCATE dans le TP appelé.
set_prot_id
Paramètre fourni. Indique si le membre prot_id doit être modifié. Les valeurs légales sont AP_YES ou AP_NO.
new_prot_id
Paramètre fourni. Indique si Microsoft® Host Integration Server doit utiliser le membre LUWID prot_id fourni ou créer un LUWID. Les valeurs légales sont AP_YES (créer un LUWID) ou AP_NO (utilisez le LUWID fourni).
prot_id
Ce membre est l’identificateur d’unité de travail logique protégé pour la transaction à laquelle le TP participe. Elle est ignorée si set_prot_id est AP_NO. Il s’agit d’un paramètre fourni si new_unprot_id est AP_NO ou d’un paramètre retourné si new_unprot_id est AP_YES.
Plusieurs TPs peuvent être impliqués dans une transaction. Cet identificateur, qui est attribué pour le compte du tp qui lance la transaction, permet à la conversation qui compose la transaction d’être connectée logiquement.
Le prot_id peut être représenté sous la forme d’une structure luw_id_overlay avec les champs suivants :
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
Longueur de 1 octet du nom complet de l’unité logique du TP d’origine.
luw_id.fqla_name
Nom complet de l’unité logique du tp d’origine. Le nom est retourné sous la forme d’une chaîne EBCDIC de 17 octets, composée du NETID, d’un point et du nom de la lu. Si la longueur du nom est inférieure à 17 octets, le instance et les numéros de séquence suivent immédiatement. (Notez que pour cette raison, vous ne devez pas utiliser les champs de la structure luw_id_overlay pour accéder à ces valeurs. Ceux-ci sont fournis à des fins de compatibilité uniquement).
luw_id.instance
Chaîne de 6 octets générée de manière unique par l’unité logique pour le TP d’origine.
luw_id.sequence
Nombre de 2 octets qui indique le segment d’unité de travail. (Cette valeur est toujours définie sur 1 si le point de synchronisation n’est pas pris en charge.)
Si la longueur du luw_id est inférieure à 26 octets, elle est remplie à droite avec des espaces EBCDIC.
set_unprot_id
Paramètre fourni. Indique si le membre unprot_id doit être modifié. Les valeurs légales sont AP_YES ou AP_NO.
new_unprot_id
Paramètre fourni. Indique si Host Integration Server doit utiliser le unprot_id membre LUWID fourni ou créer un LUWID. Les valeurs légales sont AP_YES (créer un LUWID) ou AP_NO (utilisez le LUWID fourni).
unprot_id
Ce membre est l’identificateur d’unité de travail logique non protégé pour la transaction à laquelle le TP participe. Elle est ignorée si set_unprot_id est AP_NO. Il s’agit d’un paramètre fourni si new_unprot_id est AP_NO ou d’un paramètre retourné si new_unprot_id est AP_YES.
Plusieurs TPs peuvent être impliqués dans une transaction. Cet identificateur, qui est attribué pour le compte du tp qui lance la transaction, permet à la conversation qui compose la transaction d’être connectée logiquement.
Le prot_id peut être représenté sous la forme d’une structure luw_id_overlay avec les champs suivants :
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
Longueur de 1 octet du nom complet de l’unité logique du TP d’origine.
luw_id.fqla_name
Nom complet de l’unité logique du tp d’origine. Le nom est retourné sous la forme d’une chaîne EBCDIC de 17 octets, composée du NETID, d’un point et du nom de la lu. Si la longueur du nom est inférieure à 17 octets, le instance et les numéros de séquence suivent immédiatement. (Notez que pour cette raison, vous ne devez pas utiliser les champs de la structure luw_id_overlay pour accéder à ces valeurs. Celles-ci sont fournies à des fins de compatibilité uniquement.)
luw_id.instance
Chaîne de 6 octets générée de manière unique par l’unité logique pour le TP d’origine.
luw_id.sequence
Nombre de 2 octets qui indique le segment d’unité de travail. (Cette valeur est toujours définie sur 1 si le point de synchronisation n’est pas pris en charge.)
Si la longueur du luw_id est inférieure à 26 octets, elle est remplie à droite avec des espaces EBCDIC.
set_user_id
Paramètre fourni. Indique si le membre user_id doit être modifié. Les valeurs légales sont AP_YES ou AP_NO.
reserve3
Champ réservé.
User_id
Paramètre fourni. Indique le user_id qui doit être utilisé par le tp de lancement dans la demande d’allocation. Le nom est une chaîne EBCDIC de 10 octets, remplie à droite avec des espaces EBCDIC. Ce paramètre est ignoré si set_user_id est AP_NO.
reserve4
Un champ réservé.
Codes de retour
AP_OK
Code de retour principal ; indique que le verbe s’est exécuté correctement.
AP_PARAMETER_CHECK
Code de retour principal ; le verbe n’a pas été exécuté en raison d’une erreur de paramètre.
AP_BAD_TP_ID
Code de retour secondaire ; la valeur de tp_id ne correspondait pas à un identificateur TP attribué par APPC.
AP_COMM_SUBSYSTEM_ABENDED
Code de retour principal ; indique l’une des situations suivantes :
Le nœud utilisé par cette conversation a rencontré un abandon (ABEND).
La connexion a été interrompue entre le programme transactionnel et le nœud PU 2.1 (erreur LAN).
Le processus SnaBase qui se déroule sur l’ordinateur du programme transactionnel a rencontré un abandon (ABEND).
L’administrateur système doit examiner le journal des erreurs pour déterminer la raison de l’abandon.
AP_COMM_SUBSYSTEM_NOT_LOADED
Code de retour principal ; indique qu’il n’a pas été possible de charger un composant requis ou d’y mettre fin lors du traitement du verbe. Par conséquent, la communication n’a pas pu être établie. Contactez l’administrateur système pour mettre en place une action corrective.AP_INVALID_VERB_SEGMENT
Code de retour principal ; indique que le bloc de contrôle de verbe s’étend au-delà de la fin du segment de données.AP_STACK_TOO_SMALL
Code de retour principal ; indique que la taille de la pile de l’application est trop petite pour exécuter le verbe. Augmentez la taille de pile de votre application.AP_TP_BUSY
Code de retour principal ; indique que le programme transactionnel local a émis un appel à APPC alors qu’APPC traitait un autre appel pour le même programme transactionnel. Cela peut se produire si le TP local a plusieurs threads et que plusieurs threads émettent des appels APPC à l’aide de la même tp_id.AP_UNEXPECTED_DOS_ERROR
Code de retour principal ; indique que le système d’exploitation a retourné une erreur à APPC lors du traitement d’un appel APPC à partir du programme transactionnel local. Le code de retour du système d’exploitation a été retourné via secondary_rc. Il apparaît dans l’ordre Intel avec permutation d’octets. Si le problème persiste, consultez l’administrateur système.
Notes
Ce verbe est lié au TP plutôt qu’à une conversation de spécification, de sorte que le TP peut émettre le verbe dans n’importe quel état. Il n’y a aucun changement d’état.
Les prot_id et unprot_id membres contiennent des champs pour fqla_name_len (longueur du nom complet de l’unité lu à l’origine du TP), fqla_name (nom complet de la lu à l’origine du TP), instance (généré de manière unique par la lu à l’origine du TP) et séquence (toujours défini sur 1 et indiquant le segment d’unité de travail).
Il incombe à l’application (composant de prise en charge du point de synchronisation) de transmettre le nouvel en-tête PS LUWID au support du point de synchronisation partenaire lorsque le LUWID protégé est modifié. De même, lorsque le nouvel en-tête PS LUWID est reçu, l’application doit en informer le lu en émettant un verbe SET_TP_PROPERTIES .