Sometimes a CA IDMS batch run-unit can abend with the message:
DC001003 TASK: RHDCNP3S PROG:xxxxxxx STALLED WAITING FOR EREECB AT xxxxxxxx
There is no further information on the IDMS log. The ECB is of course long gone by the time this is found.
According to the message definition, this abend can be caused by exceeding the inactive interval, the internal wait time, or the external wait time. That covers a lot of possibilities.
Is there any way to get more information (after the fact) about what the run-unit was waiting for?
An external rununit program such as Batch or CICS program that accesses an IDMS CV (referred to as ERUS) can abend with the DC001003 STALLED WAITING FOR EREECB.
This stall abend is specific to the EXTERNAL WAIT Interval specified in the SYSGEN on the SYSTEM statement or on the TASK statement.
The EXTERNAL WAIT is how long the CV will wait for the external program to issue it's next DML command.
Once the Task and Transaction (rununit) for the ERUS program has been started, each time the CV services a DML command and returns to the ERUS program, it waits on EREECB for the next command.
If CV waits longer than the EXTERNAL WAIT interval, the task will be abended with the DC001003 STALLED WAITING FOR EREECB.
Component: CA IDMS/DB
Increase the value for the EXTERNAL WAIT Interval specified in the SYSGEN on the SYSTEM statement or on the TASK statement.
Specifying EXTERNAL WAIT IS FOREVER will cause the rununit to never time out.
To change the limit for just one program define in the SYSGEN a TASK code where the task name is the same as the batch program name that appears on the DC001003 message and the program invoked is RHDCNP3S .
For example to prevent a batch rununit from ever timing out:
MOD SYS nnn.
ADD TASK program_name
EXTERNAL WAIT IS FOREVER
INVOKES PROGRAM RHDCNP3S.