Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

QSYS2.STACK_INFO

Pile d'appels d'un travail

Affiche la pile d'appels d'un travail, avec programmes, modules, procédures et numéros d'instruction : un équivalent SQL de l'option Afficher la pile d'appels.

À quoi ça sert

STACK_INFO renvoie une ligne par entrée de la pile d'appels d'un travail, dans l'ordre (ORDINAL_POSITION), avec le type d'entrée, le programme et sa bibliothèque, le module, la procédure, le groupe d'activation et les identifiants d'instruction. Des colonnes dédiées couvrent les piles Java (classe, méthode, ligne), PASE et code interne sous licence.

Le paramètre JOB_NAME vaut '*' par défaut (le travail courant) ; sinon on passe le nom qualifié d'un autre travail. THREAD_ID cible une unité d'exécution précise, et IGNORE_ERRORS (par défaut 'YES') évite l'échec si le travail n'est plus accessible.

On l'utilise pour diagnostiquer un travail bloqué ou en boucle : on voit exactement où il se trouve, sans l'interrompre.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM TABLE(QSYS2.STACK_INFO('*')) X

Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :

THREAD_ID Identifiant de l'unité d'exécution THREAD_TYPE Type d'unité d'exécution ORDINAL_POSITION Position ordinale ENTRY_TYPE Type de l'entrée PROGRAM_NAME Nom du programme PROGRAM_LIBRARY_NAME Nom de la bibliothèque du programme STATEMENT_IDENTIFIERS Identifiants des instructions REQUEST_LEVEL Niveau de la demande CONTROL_BOUNDARY Limite de contrôle PROGRAM_ASP_NAME Nom de l'ASP du programme PROGRAM_ASP_NUMBER Numéro de l'ASP du programme MODULE_NAME Nom du module MODULE_LIBRARY_NAME Bibliothèque du module PROCEDURE_NAME Nom de la procédure ACTIVATION_GROUP_NUMBER Numéro du groupe d'activation ACTIVATION_GROUP_NAME Nom du groupe d'activation MI_INSTRUCTION_NUMBER Numéro d'instruction MI JAVA_LINE_NUMBER Numéro de ligne Java JAVA_BYTE_CODE_OFFSET Décalage dans le bytecode Java JAVA_METHOD_TYPE Type de la méthode Java JAVA_CLASS_NAME Nom de la classe Java JAVA_METHOD_NAME Nom de la méthode Java JAVA_METHOD_SIGNATURE Signature de la méthode Java JAVA_FILE_NAME Nom du fichier Java JAVA_SOURCE_FILE_NAME Nom du fichier source Java PASE_LINE_NUMBER Numéro de ligne PASE PASE_INSTRUCTION_ADDRESS Adresse d'instruction PASE PASE_INSTRUCTION_OFFSET Décalage d'instruction PASE PASE_KERNEL_CODE Code noyau PASE PASE_BIT_CODE Code binaire PASE PASE_ALTERNATE_RESUME_POINT Point de reprise alternatif PASE PASE_PROCEDURE_NAME Nom de la procédure PASE PASE_LOAD_MODULE_NAME Nom du module chargé PASE PASE_LOAD_MODULE_PATH Chemin du module chargé PASE PASE_SOURCE_PATH_AND_FILE Chemin et fichier source PASE LIC_INSTRUCTION_OFFSET Décalage d'instruction du code interne sous licence LIC_PROCEDURE_NAME Nom de procédure du code interne sous licence LIC_LOAD_MODULE_NAME Nom du module de chargement du code interne sous licence
2153 NULL 44 LIC NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 460 cblabranch cblabranch
2153 NULL 43 LIC NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 236 aiuser_program_call_portal aiuser_program_call_portal
2153 NULL 42 ILE QDBSSUDF2 QSYS 0000003086 NULL NO *SYSBAS 1 QSQSTKINFO QBUILDSS1 RETRIEVE_CALL_STACK 1 *DFTACTGRP NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
2153 NULL 41 ILE QDBSSUDF2 QSYS 0000002631 NULL NO *SYSBAS 1 QSQSTKINFO QBUILDSS1 OPEN_CALL 1 *DFTACTGRP NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
2153 NULL 40 ILE QDBSSUDF2 QSYS 0000002525 NULL NO *SYSBAS 1 QSQSTKINFO QBUILDSS1 QSQSTKINFO 1 *DFTACTGRP NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma JOBISQL sont des objets de démonstration créés pour ce site.

L'exemple d'IBM

Afficher la pile d'appels du travail courant.

-- Description: Display the call stack for the current job. 
 SELECT * FROM TABLE(QSYS2.STACK_INFO('*')) X;

Bon à savoir

Les colonnes Java, PASE et code interne ne sont renseignées que pour les entrées de ce type : filtrez sur ENTRY_TYPE pour ne garder que les programmes ILE ou OPM d'un travail applicatif.

Paramètres

ParamètreTypePar défautSignification
JOB_NAME VARCHAR(28) '*' Nom du travail
THREAD_ID VARCHAR(20) NULL Identifiant de l'unité d'exécution
IGNORE_ERRORS VARCHAR(3) 'YES' Ignorer les erreurs

Colonnes renvoyées (38)

Afficher les 38 colonnes
ColonneTypeSignification
THREAD_ID BIGINT Identifiant de l'unité d'exécution
THREAD_TYPE VARCHAR(6) Type d'unité d'exécution
ORDINAL_POSITION INTEGER Position ordinale
ENTRY_TYPE VARCHAR(4) Type de l'entrée
PROGRAM_NAME VARCHAR(10) Nom du programme
PROGRAM_LIBRARY_NAME VARCHAR(10) Nom de la bibliothèque du programme
STATEMENT_IDENTIFIERS VARCHAR(109) Identifiants des instructions
REQUEST_LEVEL INTEGER Niveau de la demande
CONTROL_BOUNDARY VARCHAR(3) Limite de contrôle
PROGRAM_ASP_NAME VARCHAR(10) Nom de l'ASP du programme
PROGRAM_ASP_NUMBER INTEGER Numéro de l'ASP du programme
MODULE_NAME VARCHAR(10) Nom du module
MODULE_LIBRARY_NAME VARCHAR(10) Bibliothèque du module
PROCEDURE_NAME VARCHAR(4096) Nom de la procédure
ACTIVATION_GROUP_NUMBER DECIMAL(20, 0) Numéro du groupe d'activation
ACTIVATION_GROUP_NAME VARCHAR(10) Nom du groupe d'activation
MI_INSTRUCTION_NUMBER INTEGER Numéro d'instruction MI
JAVA_LINE_NUMBER INTEGER Numéro de ligne Java
JAVA_BYTE_CODE_OFFSET INTEGER Décalage dans le bytecode Java
JAVA_METHOD_TYPE VARCHAR(9) Type de la méthode Java
JAVA_CLASS_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom de la classe Java
JAVA_METHOD_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom de la méthode Java
JAVA_METHOD_SIGNATURE DOUBLE-BYTE CHAR LARGE OBJECT Signature de la méthode Java
JAVA_FILE_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom du fichier Java
JAVA_SOURCE_FILE_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom du fichier source Java
PASE_LINE_NUMBER BIGINT Numéro de ligne PASE
PASE_INSTRUCTION_ADDRESS DECIMAL(20, 0) Adresse d'instruction PASE
PASE_INSTRUCTION_OFFSET BIGINT Décalage d'instruction PASE
PASE_KERNEL_CODE VARCHAR(3) Code noyau PASE
PASE_BIT_CODE INTEGER Code binaire PASE
PASE_ALTERNATE_RESUME_POINT VARCHAR(3) Point de reprise alternatif PASE
PASE_PROCEDURE_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom de la procédure PASE
PASE_LOAD_MODULE_NAME DOUBLE-BYTE CHAR LARGE OBJECT Nom du module chargé PASE
PASE_LOAD_MODULE_PATH DOUBLE-BYTE CHAR LARGE OBJECT Chemin du module chargé PASE
PASE_SOURCE_PATH_AND_FILE DOUBLE-BYTE CHAR LARGE OBJECT Chemin et fichier source PASE
LIC_INSTRUCTION_OFFSET BIGINT Décalage d'instruction du code interne sous licence
LIC_PROCEDURE_NAME VARCHAR(4096) Nom de procédure du code interne sous licence
LIC_LOAD_MODULE_NAME VARCHAR(64) Nom du module de chargement du code interne sous licence