Timer related abend detection in IDMS
search cancel

Timer related abend detection in IDMS

book

Article ID: 43265

calendar_today

Updated On:

Products

IDMS

Issue/Introduction

This document describes the various automatic timer related abend detection functionality in IDMS.

Environment

Release: All supported releases
Component: IDMS

Resolution

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.

Additional Information

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.