DC001010 message missing from stall sequence
search cancel

DC001010 message missing from stall sequence

book

Article ID: 382202

calendar_today

Updated On:

Products

IDMS

Issue/Introduction

When an IDMS transaction stalls waiting for a database resource, typically the following sequence of messages is observed.

IDMS DC001007 V1 T173 TASK:TSTDI002 PROG:TSTDI002 WAITING FOR LTXNLOCK 00000008 01259401
IDMS DC001008 V1 T173 TXNID:156260 PROG:TSTDI002 SUBSCHEMA:EMPSS01 MODE:S 
IDMS DC001009 V1 T173 TSKID:264 TASK:DMLO PROG:USDTPIF2 HOLDS LTXNLOCK 00000008 01259401
IDMS DC001010 V1 T173 TXNID:156253 PROG:USDMAIN0 SUBSCHEMA:EMPSS01 MODE:X 
IDMS DC001003 V1 T173 TASK:TSTDI002 PROG:ADSOMAIN(TSTDI002) STALLED WAITING FOR LTXNLOCK 00000008 01259401
IDMS DC027007 V1 T173 TASK:TSTDI002 PROG:ADSOMAIN(TSTDI002) ABENDED WITH CODE D002

In this example, a DMLO session has updated a record, and before DMLO issues a COMMIT or FINISH, an ADS dialog, TSTDI002, is attempting to read the same record.

The DC001007 and DC001008 messages identify the task that has stalled and will abend.
The DC001009 and DC001010 messages identify the task that holds the lock that is causing the stall.
The DC001003 and DC027007 messages indicate the abend.

In some circumstances, the sequence may look slightly different. The DC001010 message is missing, and the DC001009 message identifies a user and a LTERM as opposed to a task and a program.

IDMS DC001007 V1 T223 TASK:TSTDI002 PROG:TSTDI002 WAITING FOR LTXNLOCK 00000008 01259401
IDMS DC001008 V1 T223 TXNID:156218 PROG:TSTDI002 SUBSCHEMA:EMPSS01 MODE:S
IDMS DC001009 V1 T223 LTERM:LTVTM001 USER:USER001 HOLDS LTXNLOCK 00000008 01259401
IDMS DC001003 V1 T223 TASK:TSTDI002 PROG:ADSOMAIN(TSTDI002) STALLED WAITING FOR LTXNLOCK 00000008 01259401
IDMS DC027007 V1 T223 TASK:TSTDI002 PROG:ADSOMAIN(TSTDI002) ABENDED WITH CODE D002

Environment

Release: All supported releases.

Resolution

This can happen when the first task has issued a longterm lock and therefore there is no active task holding that lock at the time of the stall. For example, if the DMLO session above is replaced by a dialog which issues a LONGTERM lock on a record with code such as this ...

OBTAIN FIRST DEPARTMENT WITHIN ORG-DEMO-REGION.
CALL DBCHK.                                    
KEEP LONGTERM 'TST1' EXCLUSIVE DEPARTMENT.     
CALL DBCHK.

... and then the dialog has gone into a pseudo-converse (DISPLAY) or the user has simply walked away from the terminal. 

The difference here is that after that has occurred, there is no active task holding the lock on which the second task is stalling. It is a longterm lock attached only to the terminal. The DC001009 identifies the terminal and user, and the DC001010 message is not necessary. The longterm lock can only be released by subsequent code, or the user signing off. 

This is not a problem - IDMS locking code is working as designed.                                

Additional Information

This functionality was introduced with r17.0 PTF RO19422.