|
If you look further over to the right-hand side of this call stack, you should see ILE program and module names as well, which might help make it easier to understand.
The idea of a call stack is that each time a program or procedure calls another program or procedure, the new one gets added to the stack. When a program or procedure finishes, it gets removed from the stack.
This includes routines in the operating system that get called as a result of you performing an opcode or BIF as well as program or procedure calls that you've made explicitly in your program.
So in the example you've provided, a program called XRPG124 (which is NOT ILE, unless you've left part of the call stack out!) is calling a program called QCMDEXC. As you may know, QCMDEXC is an API that allows you to submit a command string to be interpreted and run. QCMDEXC calls XCL127, which appears to be an OPM CL program. That program must run a SEQUEL command of some sort. QCATRS is the operating system program that calls (among other things) validity checking programs (VCP). Based on the name, I'm guessing the SEQUEL has a validity checking program named EXECHKR. EXECHKR then calls another program (this one is ILE) named SQLSERVERV.
__QRNP_PEP_SQLSERVERV is the "Program Entry Procedure" for SQLSERVERV. This is not a procedure that a programmer wrote, but rather one that's generated by the ILE program creation tools to give the program a place to start processing.
Apparently, this PEP also calls an operating system routine called "Q LE leActivationInit", which in turn calls "Q LE leActivationInitRouter", etc.
Why do you ask this? Are you having trouble with these programs? On Wed, 1 Mar 2006, Avis Ramuk wrote:
Hi, I have a RPGLE pogram named XRPG which gets executed as a job. At some point, this CLP calls another CLP program XCL127. In this program, Execute command is used to run a SQL query. Now the call stack read as below: XRPG124 PRODLIB1 10800 008E 000 QCMDEXC QSYS 0129 000 XCL127 PRODLIB2 128 0051 000 QCATRS QSYS 01EE 000 EXECHKR SEQUEL 0005 000 < SQLSERVERV SEQUEL 000 Procedure: _QRNP_PEP_SQLSERVERV < vationInit QSYS 0000001534 000 Procedure: Q LE leActivationInit < InitRouter QSYS 0000001567 000 Procedure: Q LE leActivationInitRouter < initlocale QSYS 0000000004 000 Procedure: _C_PSX_initlocale < _setlocale QSYS 0000001114 000 Procedure: _C_PSX_setlocale < lex__FiPCc QSYS 0000001169 000 ..continues..I want someone to help me in explaining how and why this call happens. Especially I want to know when/why leactivationinit gets called. Can anyone please explain this?.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.