Existing CICS transactions are being enhanced and we are adding calls to external API's into the existing business logic. An API call comes with a latency often in seconds. This causes DB2 locks to be hold for longer time and is leading to timeouts. The existing CICS transaction business logic consist of hundred of modules and we lack overview of what and were we updates to DB2 prior to a API call. Adding a commit to the code prior to the API call may not be the right solution if this will break up the commit scope for the business entity.
To analyze what program/modules is part of at CICS transaction we scan the source code to identify the full potential call flow. Often the potential call flow contains thousands of program/modules but when we look at it at runtime only hundred of program/modules get invoked.
For both above challenges CICS trace can help get insigts into what happens in a CICS task however the domains that need to be traced will produce large amount of trace entries. We suggest that the customization of CICS trace options is improved to allow us to be more selective.
We would like to be able to activate trace on:
PG 1101 PGLE ENTRY - FUNCTION(LINK_EXEC) PROGRAM_NAME(E4OAC110)
or alternativ
AP 1948 APLI EVENT CALL-TO-LE/370 - Rununit_Init_&_Begin_Invo Program_name(E4OAC110)
and
AP E160 EXEC ENTRY LOAD PROGRAM('USEVTRC0' AT X'2600B508')
AP 00E1 EIP ENTRY SYNCPOINT
AP E160 EXEC ENTRY WEB OPEN URIMAP('BJFRAAWS' AT X'C97066F8')
AP E160 EXEC ENTRY WEB SEND CONTAINER('BodyInput ' AT X'4979EBF8') CHANNEL('DBRestJson ' AT X'C979EC08') CHARACTERSET
('UTF-8 ' AT X'4979EE28') SESSTOKEN('........' AT X'497100E0') METHOD(636 AT
X'4970F7D8') PATH('/events' AT X'496DFB8F')
AP F911 EIWB EXIT - WEB_RECEIVE RESP=0 RESP2=0
AP E160 EXEC ENTRY WEB RECEIVE TOCONTAINER('BodyOutput ' AT X'4979EBF8') TOCHANNEL('DBRestJson ' AT X'C979EC08') SESSTOKEN
('........' AT X'497100E0') STATUSCODE( AT X'4970FFC4') STATUSTEXT( AT X'4970FFC8') STATUSLEN(256 AT X'497100C8')
NOHANDLE COBOLII STMT_Æ(004199)
AP 3180 D2EX1 ENTRY - APPLICATION REQUEST - EXEC SQL INSERT package name USN2LA2 and statement no (E8) 232 must be part of the trace we would like to see all type of DB2 request Insert/Update/Delete/Select/Declare etc
TASK-11714 KE_NUM-00AA TCB-C/L80XH/00992088 RET-80096E2E TIME-07:59:17.0202969414 INTERVAL-00.0000015410 =1306296
1-0000 02000000 00404000 001EE4E2 D5F2D3C1 F2401AD4 A2A910F5 2E8C0002 2B927DF8 *..... ...USN2LA2 .Msz.5.....k'8*
0020 2B928268 00000000 011500E8 000000E8 00000040 40404040 40404040 40404040 *.kb........Y...Y... *
0040 40404040
AP 3181 D2EX1 EXIT - APPLICATION-REQUEST - SQLCODE 0 RETURNED ON EXEC SQL INSERT
AP A094 MQTRU EVENT - CSQCOPNO - ABOUT TO ISSUE MQOPEN QUEUE(HB.DN.HEADERDATA.REP we would like to see all type of MQ request OPEN/CLOSE/PUT/GET
AP A091 MQTRU EXIT - APPLICATION-REQUEST - MQOPEN - MQCC(00000000) MQRC(00000000)
all other trace records should not be produced.
We would then activate this special trace. Take a system dump. Use FADUMP to analyse the trace entries.