> Tech > Eléments de base de l’API Retrive Call Stack

Eléments de base de l’API Retrive Call Stack

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

L'API QWVRCStk tire une quantité considérable d'informations sur les programmes et procédures présents dans la pile d'appel d'un job :

• Request level est le niveau du programme ou de la procédure de traitement des requêtes. Si aucune requête n'a été reçue, la valeur de ce champ est 0 (zéro).

Eléments de base de l’API Retrive Call Stack

• Program name est le nom du programme
pour le niveau d’appel. Ce
champ peut contenir la valeur spéciale
*N, indiquant que le nom du
programme n’est pas disponible. Ce
peut être le cas si le programme est détruit ou si la bibliothèque est verrouillée.

• Program library name est la bibliothèque
contenant le programme. Ce
champ peut contenir la valeur spéciale
*N, indiquant que le nom de la
bibliothèque n’est pas disponible. Ce
peut être le cas si la bibliothèque est
détruite ou verrouillée.

• MI instruction number est le numéro
d’instruction machine courant
dans le programme. Ce champ n’a de
signification que pour des programmes
OPM (Original Program
Model). Pour des procédures ILE, ce
champ contient 0 (zéro).

• Module name est le module contenant
la procédure ILE. Ce champ
peut contenir la valeur spéciale *N,
indiquant que le nom du module
n’est pas disponible. Ce peut être le
cas si le programme est détruit ou si sa bibliothèque est verrouillée. Si ce
champ est vierge (blanc), c’est que le
programme n’est pas un programme
ILE.

• Module library name est la bibliothèque
contenant le module. Ce
champ peut contenir la valeur spéciale
*N, indiquant que le nom de la
bibliothèque n’est pas disponible. Ce
peut être le cas si le programme est
détruit ou si sa bibliothèque est verrouillée.
Si ce champ est vierge
(blanc), c’est qu’on n’a pas affaire à 
un programme ILE.

• Control boundary flag est le flag indiquant
si une frontière de contrôle
est active pour un programme ou
une procédure. Une valeur de 0
(zéro) indique qu’aucune frontière
de contrôle n’est active. Une valeur
de 1 indique qu’une frontière de
contrôle est active.

• Activation group number est le numéro
interne du groupe d’activation
dans lequel le programme ou la procédure
est en train de s’exécuter.
Une valeur de 1 indique le groupe
d’activation par défaut du système,
tandis qu’une valeur de 2 indique le
groupe d’activation par défaut de
l’utilisateur.

• Activation group name est le nom
du groupe d’activation dans lequel le
programme ou la procédure est en
train de s’exécuter. Ce champ peut
contenir la valeur spéciale *DFTACTGRP
indiquant que le groupe d’activation
n’a pas de nom spécifique
(c’est-à -dire qu’il s’exécute dans l’un
des groupes d’activation par défaut).
En outre, la valeur *NEW indique
que le groupe d’activation n’a pas de
nom spécifique et qu’il a été créé
quand le programme a été appelé.

• Statement identifiers sont les identificateurs
d’instruction en langage
évolué (HLL). Il peut y avoir de multiples
identificateurs d’instruction
pour des procédures ILE.

• Procedure name est le nom de la
procédure pour le niveau d’appel.

Un seul appel adressé à  QWVRCStk
extrait ces détails pour tous les niveaux
d’appel en ordre inversé (c’est-à -dire,
la première entrée de la pile d’appel
renvoyée correspond à  l’appel le plus
récent). Outre les informations de la
pile d’appel, l’API renvoie les informations
de contrôle nécessaires pour extraire
ces détails. Le processus d’extraction
peut être déconcertant parce que
l’API renvoie les informations sur la
pile d’appel dans un champ unique
contenant divers sous-champs et sousstructures,
dont beaucoup se répètent
et sont de longueur variable. La
figure 1 montre la disposition de la
structure renvoyée. Les huit premiers
sous-champs constituent la partie statique
de la structure (c’est-à -dire qu’ils
occupent toujours ces positions). Les
champs suivant cette partie statique
représentent une sous-structure
contenant une entrée de la pile d’appel. Cette sous-structure se répète
une fois pour chaque entrée de la pile
d’appel. L’emplacement et la taille de
cette sous-structure et de certains de
ses sous-champs varient selon les données
contenues dans chacune des entrées
de la pile d’appel.

QWVRCStk accepte les paramètres
suivants :

• Receiver variable – un paramètre de
sortie de longueur variable destiné à 
contenir les informations sur la pile
d’appel extraites.

• Length of receiver variable – un paramètre
d’entrée qui définit la longueur
de la variable réceptrice.

• Format of receiver information – un
paramètre d’entrée qui définit le format
du récepteur ; la valeur doit être
CSTK0100.

• Job identification information – un paramètre d’entrée de longueur variable
qui indique le job pour lequel
il faut extraire les informations.

• Format of job identification information
– un paramètre d’entrée qui définit
le format des informations
d’identification de job ; la valeur doit
être JIDF0100.

• Error code – un paramètre d’entrée/
sortie de longueur variable qui
contient la structure d’erreur API
standard.

QWVRCStk est entièrement documentée
à  http://publib.boulder.ibm.com/pubs/html/as400/v5r1/ic2924/info/apis/qwvrcstk.htm.

Il faut aussi prendre en compte les
exigences de l’API en matière de droits.
Pour appeler correctement l’API, l’une
au moins des conditions suivantes doit
être remplie :

• L’API est appelée dans le thread pour
lequel la pile d’appel est extraire.

• L’appelant de l’API s’exécute sous le
même profil utilisateur que le job
contenant le thread pour lequel la
pile d’appel est extraite.

• L’appelant de l’API s’exécute sous un
profil utilisateur doté du droit spécial
job control (*JobCtl).

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010