This document describes the various automatic timer related abend detection functionality in IDMS.
Release: All supported releases
Component: IDMS
The various mechanisms are External Wait time, Inactive Interval, Resource Timeout interval, Runaway interval, Deadlock Detection interval and Ticker interval.
External Wait Time
External wait time is the amount of time IDMS waits for an external user session to issue a database request before assuming that it has terminated. When the external wait time elapses, the system abnormally terminates the external request unit with an error status of nn69 and initiates recovery procedures.
Example of messages in Batch job joblog (or CICS log) :
+IDMS DC410003 DNS SEND/RECEIVE Failure Status is : 5839
+IDMS DC410006 DNS Processing error, Function is RECEIVE_AND_WAIT, Status is XMIT Error
+IDMS DTS: Abend on path's subsequent downstream node
+IDMS DTS: Logical connections to node disabled
+IDMS DTS: Physical connection to node disabled
+************************** ABORTING - BELBAT1 , 0069, **** RECOVER IDMS ****
Example of messages written to the DC/UCF log :
DC001003 V67 T44 TASK:RHDCNP3S PROG:BELBAT1 STALLED WAITING FOR EREECB AT 3A80C4D0
DC027007 V67 T44 TASK:RHDCNP3S PROG:BELBAT1 ABENDED WITH CODE D002
DC201006 V67 T1 CV-Status BE-TaskID Pri FE - ID1 FE - ID2 FE TaskCD FE USERID FE - ID3
DC201006 V67 T1 ABRT D002 44 100 BATCBULK USER01X BELBAT1 USER01 3E10EEDA
DC203005 V67 T44 Program-ID BELBAT1 Transaction-ID 7437 has been Rolled Out!
DC203005 V67 T44 SUBSCNAM User id FE - ID1 FE - ID2 FE - ID3 FE Tskcd
DC203005 V67 T44 EMPSS02 USER01 BATCBULK USER01X 00000000 BELBAT1
V67 T44 DTS Event: TD0T - Begin ABEND event handling
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Event: TD0T - Disconnecting connection(s) to server(s)
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Error: TD0C - Connection is being forced to disconnect
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Error: TD0C - Connection is being forced to disconnect
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Error: TD0C - Connection is being forced to disconnect
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Event: TD0T - Connection(s) to server(s) disconnected
V67 T44 LTE=LD000000 USER=USER01
DC410006 V67 T44 DNS Processing error, Function is RECEIVE_AND_WAIT, Status is XMIT Error
V67 T44 DTS: Abend on path's subsequent downstream node
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS: Logical connections to node disabled
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS: Physical connection to node disabled
V67 T44 LTE=LD000000 USER=USER01
V67 T44 DTS Event: TD0T - End ABEND event handling
The External Wait time is defined in the SYSGEN SYSTEM Statement and can be overridden in the TASK Statement.
At run time, it can be overridden at task level with DCMT VARY TASK taskcode EXTERNAL WAIT OFF/SYSTEM/value .
Inactive Interval (also referred to as STALL interval)
The inactive interval is the amount of time IDMS permits a task to wait for a resource.
This resource can be a database type resource or other (e.g. terminal input). In the latter case, the difference between Inactive Interval and Resource Timeout is that for Inactive Interval, a task MUST be running on the terminal, whereas for Resource Timeout, NOTHING may be running on the terminal.
When the Inactive Interval expires, IDMS abnormally terminates the task.
Example of messages in Batch job joblog (or CICS log) :
+IDMS DC410003 DNS SEND/RECEIVE Failure Status is : 0069
+IDMS DC410006 DNS Processing error, Function is RECEIVE_AND_WAIT, Status is XMIT Error
+IDMS DTS: Abend on path's subsequent downstream node
+IDMS DTS: Logical connections to node disabled
+IDMS DTS: Physical connection to node disabled
+************************** ABORTING - BELCOBMN , 0069, **** RECOVER IDMS ****
Example of messages written to the DC/UCF log :
IDMS DC001007 V67 T75 TASK:BELCOBMN PROG:BELCOBMN WAITING FOR LTXNLOCK 00020008 0124FF01
IDMS DC001008 V67 T75 TXNID:20500 PROG:BELCOBMN SUBSCHEMA:EMPSS01 MODE:S
IDMS DC001009 V67 T75 TSKID:73 TASK:DCEMP PROG:DCEMP HOLDS LTXNLOCK 00020008 0124FF01
IDMS DC001010 V67 T75 TXNID:20498 PROG:DCEMP SUBSCHEMA:EMPSS01 MODE:X
IDMS DC001003 V67 T75 TASK:RHDCNP3S PROG:BELCOBMN STALLED WAITING FOR LTXNLOCK 00020008 0124FF01
IDMS DC027007 V67 T75 TASK:RHDCNP3S PROG:BELCOBMN ABENDED WITH CODE D002
IDMS DC203005 V67 T75 Program-ID BELCOBMN Transaction-ID 20499 has been Rolled Out!
IDMS DC203005 V67 T75 SUBSCNAM User id FE - ID1 FE - ID2 FE - ID3 FE Tskcd
IDMS DC203005 V67 T75 EMPSS01 USER01 BATCBULK USER01S 0DCB8B36 BELCOBMN
IDMS V67 T75 DTS Event: TD0T - Begin ABEND event handling
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS Event: TD0T - Disconnecting connection(s) to server(s)
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS Error: TD0C - Connection is being forced to disconnect
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS Error: TD0C - Connection is being forced to disconnect
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS Event: TD0T - Connection(s) to server(s) disconnected
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS DC410006 V67 T75 DNS Processing error, Function is RECEIVE_AND_WAIT, Status is XMIT Error
IDMS V67 T75 DTS: Abend on path's subsequent downstream node
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS: Logical connections to node disabled
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS: Physical connection to node disabled
IDMS V67 T75 LTE=LD000000 USER=USER01
IDMS V67 T75 DTS Event: TD0T - End ABEND event handling
IDMS V67 T75 LTE=LD000000 USER=USER01
Internal Wait Time
The Internal Wait Time is the amount of time IDMS permits an external request unit to wait for a resource (for example, a locked area or a storage allocation). When the internal wait time elapses, the system abnormally terminates the request unit with an error status of nn00 or nn69 and initiates recovery procedures.
Important Note :
The Internal wait time is no longer functional. The parameter is still accepted by the SYSGEN compiler, but its value is not used anymore. Default wait limits for external run-units on internal resources are now controlled by the INACTIVE INTERVAL clause of the TASK parameter for task RHDCNP3S.
Wait times for individual batch or CICS run-units can be specified by defining TASK statements in SYSGEN where the task name is the name of the batch program first establishing the connection to the CV for the run-unit or the CICS task code.
See KD 92844: Under what task code do IDMS External pgms run?
Resource Timeout Interval
The resource timeout interval is the amount of time IDMS permits a terminal to be inactive. Terminal activity occurs when the user presses a control key (such as ENTER or PF1) that passes data to the system.
The Resource Timeout interval is defined in the SYSGEN SYSTEM Statement and can be overridden in the TASK Statement.
At run time, it can be overridden at task level with DCMT VARY TASK taskcode RESOURCE INTERVAL OFF/SYSTEM/value or DCMT VARY TIME RESOURCE INTERVAL OFF/value .
Runaway Interval
The runaway interval is the amount of time IDMS permits a task to execute without returning control to the system. A task returns control to the system for each system service call and each database operation. When the runaway interval expires, the system abnormally terminates the task. This mechanism allows IDMS to detect and terminate endless loops.
Example of error message displayed on terminal :
PREVIOUS TASK ABENDED WITH ABEND CODE D004
Example of messages written to the IDMS DCLOG :
IDMS DC027007 V67 T113 TASK:ADS PROG:ADSOMAIN ABENDED WITH CODE D004
IDMS DC027009 V67 T113 05:45:19 16.140 CURRENT TASK CODE IS ADSLOOP
IDMS DC027010 V67 T113 CURRENT LTE ID IS LTVTM001
IDMS DC027011 V67 T113 CURRENT USER ID IS USER02
The Runaway interval is defined in the SYSGEN SYSTEM Statement and can be dynamically varied with DCMT VARY TIME RUNAWAY nnn command.
Deadlock Detection Interval
The Deadlock Detection interval specifies how often, in seconds, the deadlock detector searches for tasks that are in a deadlock.
At runtime, it is possible to dynamically change the Deadlock Detection interval with a DCMT VARY DEADLOCK DETECTION INTERVAL NNN command.
The following messages appear in the IDMS/DC log when a deadlock is detected :
DC001000 V67 T14 T:000000053 DCEMP P:DCEMP C:DEAD WAITING ON R:LTXNLOCK 00000008 0124FF01
DC001001 V67 T14 Txn/RU ID RU NAME SUBSC User ID FE - ID1 FE - ID2 FE - ID3 FE Tskcd
DC001001 V67 T14 000001860 DCEMP EMPSS01 USER01
DC001000 V67 T14 T:000000057 DCEMP P:DCEMP C:DEAD WAITING ON R:LTXNLOCK 00000008 01250F01
DC001001 V67 T14 Txn/RU ID RU NAME SUBSC User ID FE - ID1 FE - ID2 FE - ID3 FE Tskcd
DC001001 V67 T14 000001862 DCEMP EMPSS01 USER02
DC001002 V67 T14 T:000000057 DCEMP P:DCEMP C:DEAD DEADLOCKED ON R:LTXNLOCK 00000008 01250F01
DC203005 V67 T57 Program-ID DCEMP Transaction-ID 1862 has been Ro lled Out!
DC203005 V67 T57 SUBSCNAM User id FE - ID1 FE - ID2 FE - ID3 FE Tskcd
DC203005 V67 T57 EMPSS01 USER001
Note: The DC001001 messages are only displayed if the SYSIDMS parameters used by the CV contain DEADLOCK_DETAILS=ON, or if a DCMT VARY DEADLOCK DETAILS ON command has been issued.
Ticker Interval
The Ticker Interval determines the frequency with which IDMS checks for time-related events (such as runaway tasks).
The Ticker interval is defined in the SYSGEN SYSTEM Statement and can be dynamically varied with DCMT VARY TIME TIMER nnn command.
To be effective, the ticker interval must be less than or equal to the lowest non-zero value specified for the following timed functions: deadlock detection interval, external wait time, inactive interval, resource timeout interval, runaway interval.
Typically, the ticker interval for an IDMS system used exclusively for batch processing is larger than the ticker Interval for a system used for online (or both online and batch) processing.
Abend Detection and Timed Functions
To display the various timer parameters, use the commands documented at the links below:
SYSTEM Statement
TASK Statement
DCMT VARY TASK
DCMT VARY TIME
DCMT DISPLAY DEADLOCK
DCMT VARY DEADLOCK
The External Wait in a running system cannot be displayed with a formatted DCMT command. However, it can be seen in memory by viewing the halfword at CCE+x'62':
D MEM CCE 100
<Addr> <Offset> <Hex> <Character>
00038F40 00000000 C3C3F4F9 801EC613 00000000 00000000 *CC49Ø.F.........*
00038F50 00000010 00000000 00000000 00000000 00000000 *................*
00038F60 00000020 00000000 00000000 00000000 00000000 *................*
00038F70 00000030 C3E5F6F5 C4D4C3D3 3B60C490 3E54ECA0 *CV65DMCL.-D..èÖ.*
00038F80 00000040 3E550FA0 40EE7E88 00062A08 00000001 *.í.. Ó=h........*
00038F90 00000050 00150000 00000000 00010100 38FE1048 *.............Ú.ç*
00038FA0 00000060 00780028 *.Ì.. *
The External wait in this CV is x'0028' or 40 in decimal.