GET_TP_PROPERTIES
Le verbe GET_TP_PROPERTIES retourne les attributs du programme de transaction (TP) et de la transaction actuelle.
La structure suivante décrit le bloc de contrôle de verbe utilisé par le verbe GET_TP_PROPERTIES .
Syntaxe
struct get_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 tp_name[64];
unsigned char lu_alias[8];
unsigned char luw_id[26];
unsigned char fqlu_name[17];
unsigned char reserve3[10];
unsigned char user_id[10];
unsigned char prot_luw_id[26];
unsigned char pwd[10];
};
Membres
opcode
Paramètre fourni. Spécifie le code d’opération de verbe, AP_GET_TP_PROPERTIES.
opext
Paramètre fourni. Spécifie l’extension de l’opération de verbe. Si le bit AP_EXTD_VCB est défini, cela indique que la structure get_tp_properties inclut le membre prot_luw_id utilisé pour la prise en charge du point de synchronisation. Sinon, le bloc de contrôle verbe se termine immédiatement après le membre user_id .
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é.
tp_name
Paramètre retourné. Fournit le nom TP du TP qui a émis le verbe. Le nom est retourné sous la forme d’une chaîne EBCDIC de 64 octets, remplie à droite avec des espaces EBCDIC.
lu_alias
Paramètre retourné. Fournit le nom d’alias affecté à l’unité logique locale. Elle est retournée sous la forme d’une chaîne ASCII de 8 octets remplie sur la droite avec des espaces ASCII.
luw_id
Paramètre retourné. Fournit l’identificateur d’unité de travail logique non protégé pour la transaction à laquelle le TP participe. 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 luw_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.
fqlu_name
Paramètre retourné. Fournit le nom complet de l’unité logique locale. 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. Le nom est rempli sur la droite avec des espaces EBCDIC.
reserve3
Champ réservé.
User_id
Paramètre fourni. Indique le user_id fourni par le tp de lancement dans la demande d’allocation. Le nom est fourni sous la forme d’une chaîne EBCDIC de 10 octets, remplie à droite avec des espaces EBCDIC.
prot_luw_id
Paramètre retourné. Contient l’identificateur d’unité de travail logique protégé pour la transaction à laquelle le TP participe, si la conversation a été allouée avec le point de synchronisation au niveau de synchronisation .
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_luw_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 prot_luw_id est inférieure à 26 octets, elle est remplie à droite avec des espaces EBCDIC.
pwd
Paramètre fourni. Contient le mot de passe du user_id du tp initialisant dans la demande d’allocation. Le mot de passe est fourni sous la forme d’une chaîne EBCDIC de 10 octets, complétée à droite avec des espaces EBCDIC.
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 correspond 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 du 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.
Le membre luw_id contient des champs pour fqla_name_len (longueur du nom complet de la lu à l’origine du tp), fqla_name (nom complet de la lu à l’origine du TP), instance (générée de manière unique par la lu à l’origine du TP) et séquence (toujours définie sur 1 et indiquant le segment d’unité de travail).