Hi all
I have a long running job (only stopped and restarted every few months) which calls a number of RPGs, including some ILE programs which have an RPG module bound to some IBM service programs (QZRDSAPI) for transmitting stuff via TCP/IP.
We had a problem where the ILE programs were created with ACTGRP *NEW instead of *CALLER and after a couple of weeks, the system ran out of activation marks or something. This manifested itself as the following messages in the job log:
Program activation not found.
Pointer not set for location referenced.
Unexpected user error occurred in QLEDAGE.
Application error. CEE9902 unmonitored by QLEAWI at statement 0000001463, instruction X'0000'.
Pointer not set for location referenced.
Unexpected user error occurred in QLEDAGE.
Application error. CEE9902 unmonitored by QLEAWI at statement 0000000038, instruction X'0000'.
So, we've reimplemented the programs with ACTGRP *CALLER and this seems to solve the problem
My question is, why didn't the job go on MSGW?
The root RPG of the job issues a CALL(E) to another RPG, which issues a straight CALL to the ILE programs, which issue CALLBs to the service programs (e.g. CALLB 'TCPOPEN'). The top level RPG traps for errors and reports them, but no errors were reported, only the stuff written to the job log.
Shouldn't the service programs return with an error condition so that the RPG can handle the error? Or is it all happening at too low a level in the call stack?
Any help would be gratefully received. As you may be able to tell, I'm not very techie when it comes to ILE or IBM APIs...
Cheers
Suzie
I have a long running job (only stopped and restarted every few months) which calls a number of RPGs, including some ILE programs which have an RPG module bound to some IBM service programs (QZRDSAPI) for transmitting stuff via TCP/IP.
We had a problem where the ILE programs were created with ACTGRP *NEW instead of *CALLER and after a couple of weeks, the system ran out of activation marks or something. This manifested itself as the following messages in the job log:
Program activation not found.
Pointer not set for location referenced.
Unexpected user error occurred in QLEDAGE.
Application error. CEE9902 unmonitored by QLEAWI at statement 0000001463, instruction X'0000'.
Pointer not set for location referenced.
Unexpected user error occurred in QLEDAGE.
Application error. CEE9902 unmonitored by QLEAWI at statement 0000000038, instruction X'0000'.
So, we've reimplemented the programs with ACTGRP *CALLER and this seems to solve the problem
My question is, why didn't the job go on MSGW?
The root RPG of the job issues a CALL(E) to another RPG, which issues a straight CALL to the ILE programs, which issue CALLBs to the service programs (e.g. CALLB 'TCPOPEN'). The top level RPG traps for errors and reports them, but no errors were reported, only the stuff written to the job log.
Shouldn't the service programs return with an error condition so that the RPG can handle the error? Or is it all happening at too low a level in the call stack?
Any help would be gratefully received. As you may be able to tell, I'm not very techie when it comes to ILE or IBM APIs...
Cheers
Suzie