02 - Database DB2 for i

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti,

oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM i & SQL Tips.
In questo articolo Massimo ci mostra come utilizzare la table function QSYS2.STACK_INFO per individuare i programmi presenti nella call stack di un job su IBM i.

🔗 IBM i & SQL Tips #010 – Locate programs in the call stack – Massimo Duca

🧠 Cosa fa STACK_INFO

La funzione QSYS2.STACK_INFO restituisce informazioni dettagliate sui livelli della call stack – cioè la sequenza di programmi e procedure attivi in un determinato job – direttamente tramite SQL.
In pratica, basta una semplice query per sapere chi ha chiamato chi, senza dover intervenire con codice RPG o chiamate a basso livello.

Massimo spiega come filtrare i risultati, interpretare i diversi campi restituiti (programma, libreria, tipo di entry, livello), e come queste informazioni possano essere sfruttate per debug, logging, o per introdurre logiche condizionali basate sul chiamante.

Un articolo chiaro, pratico e immediatamente applicabile — come sempre nel suo stile. Grazie Massimo!

🧩 E le performance?

L’uso di STACK_INFO apre anche la porta a una riflessione interessante: come si comporta in termini di performance rispetto all’uso diretto della storica API QWVRCSTK (Retrieve Call Stack)?

Sebbene l’API fornisca il massimo controllo ed efficienza, il suo utilizzo richiede codice dedicato, gestione di buffer, strutture di dati e parsing complesso.
STACK_INFO, al contrario, permette di ottenere le stesse informazioni in una manciata di righe SQL, con un approccio molto più accessibile.
In ambienti dove la consultazione della stack non è continua o critica per le performance, questa semplicità rappresenta un vantaggio notevole.

💡 Una considerazione più ampia

L’articolo di Massimo è un ottimo esempio del valore degli IBM i Services introdotti negli ultimi anni: un modo moderno, coerente e developer-friendly per accedere a informazioni di sistema che un tempo richiedevano l’uso di API come QUSRJOBI, QWCRSVAL o QWVRCSTK.

Queste funzioni SQL non sempre sostituiscono le API – che restano più performanti e granulari – ma rendono la vita degli sviluppatori molto più semplice, integrandosi naturalmente con gli strumenti moderni come ACS, VS Code e gli ambienti di sviluppo SQL.

In questo senso, articoli come quello di Massimo aiutano la community a scoprire e valorizzare il meglio dei due mondi: la potenza di IBM i e la praticità di SQL.

📘 Leggi il post completo di Massimo Duca:
👉 IBM i & SQL Tips #010 – Locate programs in the call stack

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

--- Roberto De Pedrini Faq400.com

Recent Posts

VsCode Extension: Bob Cozzi’s RPG IV to RPG Free Conversion

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…

2 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

2 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

2 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

3 mesi ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

3 mesi ago

Guida alla configurazione SFTP su IBM i (con Public Key o Password)

Approfitto di una recente discussione su IBM TechXchange per segnalarvi un’ottima guida di Anna Niederschulte: dedicata alla configurazione di SFTP…

3 mesi ago