Tasks are abended when they exceed a specified interval or limit. Sometimes it is not apparent why a task is or is not abended, because the intervals specified in the sysgen do not seem to be applied. Typical abend messages include the following:
DC001003
TASK: <task-code> PROG: <program-name> STALLED WAITING FOR <resource>
DC244003 (SYSTEM/DATABASE) (CALL/IO/LOCK/STORAGE) Resource limit exceeded
How to understand more clearly what causes these messages to be issued?
Release: All supported releases.
As transactions are running, they are monitored in terms of time and resource usage. Their run-time statistics are compared to various limits which can be specified in the sysgen definition, and when their usage exceeds the specified limit, they are abended. These limits can be specified at the system and task level. At run-time, the system checks the specified values as follows:
If any of these tasks specifies an EXTERNAL WAIT FOREVER, EXTERNAL WAIT NO, or a specific value for EXTERNAL WAIT, that will override the SYSGENed value for timing out the task. Similarly, a task specification of INACTIVE INTERVAL IS OFF or a specific value for INACTIVE INTERVAL will override the system default value. Limits for CALL, DBIO, LOCKS, and STORAGE are applied similarly, with values specified at the task level overriding the values specified at the system level. If any of these task-level definitions exist in the back-end CV, that will explain why the system-level values are not applied.