MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

DFHTU630 CICS Trace Utility Program

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> CICS and Middleware
View previous topic :: View next topic  
Author Message
Jayakrishnan
Beginner


Joined: 13 Sep 2005
Posts: 5
Topics: 3

PostPosted: Tue Sep 13, 2005 5:00 am    Post subject: DFHTU630 CICS Trace Utility Program Reply with quote

Hi Friends,
I need your kind suggestion and help in tackling the following problems.

1) My primary objective is to convert the Quasi Re-entrant statements within my source module to Thread safe. In order to identify the statements within my source programs that are Quasi Reentrant or Thread Safe I ran the CICS TRACE utility called DFHTU630. Even though the Trace utility DFHTU630 notifies me that the following statements in the source program are Quasi Reentrant or Thread safe, I am not able to compare them with the statements in my source program. Can you all please tell me how to handle this ? It will be good if you can send me any documents regarding how to read the output from the CICS TRACE utility DFHTU630.

2) How can we prevent the CICS statements from shifting from Thread safe mode to Quasi Reentrant mode or vice versa?
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12372
Topics: 75
Location: San Jose

PostPosted: Tue Sep 13, 2005 6:44 am    Post subject: Reply with quote

Quote:

It will be good if you can send me any documents regarding how to read the output from the CICS TRACE utility DFHTU630.


Jayakrishnan,

Here is a detailed description of Trace utility print program (DFHTU630)

http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/DFHA6A02/2.5?DT=20040716151813

Check this link for Formatting and interpreting trace entries

http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/DFHS1A02/3.2?SHELF=dfhash05&DT=20041021111534

Quote:

2) How can we prevent the CICS statements from shifting from Thread safe mode to Quasi Reentrant mode or vice versa?



CICS introduced the concept of Open Transaction Environment(OTE) .OTE introduces a new class of TCB called an open TCB, which can be used by threadsafe applications. An open TCB is characterized by the fact it is assigned to a CICS task for the life of the CICS task and multiple OTE TCBs may run concurrently in CICS. A threadsafe application is defined as a program which uses appropriate serialization techniques, such as compare and swap or enqueue, when accessing any shared resource(s). It must be capable of running concurrently on multiple TCBs, and must not rely on quasi-reentrancy to serialize access to shared resources and storage.

Also you might consider reading this Redbook.

http://www.redbooks.ibm.com/abstracts/SG246351.html?Open

Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Jayakrishnan
Beginner


Joined: 13 Sep 2005
Posts: 5
Topics: 3

PostPosted: Thu Sep 22, 2005 9:36 am    Post subject: DFHTU630 Trace Utility Program Reply with quote

Hi Kolusu,

I am really thankful to you for the help.The link which you provided me was really useful. I was able to understand more on Threadsafe concept and was able to relate some of the Trace Output entries. But my problem is still not solved.

I am pasting a part of the CICS Trace Output which I got here.

CICS OUTPUT - SHORT Format
____________________________
Code:

00069 QR    RM 0302 RMLN  EXIT  ADD_LINK/OK LINK_TOKEN(01060004)
REMOTE_ACCESS_ID_BUFFER(1E1561E4 , 1D3A5680 , 00000008)
                                 LINK_ID_BUFFER(000996B8 , 00007000 ,
00000008) REMOTE_ACCESS_ID(DSNCSQL ) LINK_ID()
                                                                             
RET-80097A50 02:32:21.6479184536 00.0000094453 =008250=
 00069 L8000 AP 3180 D2EX1 ENTRY APPLICATION REQUEST - EXEC SQL SET
CURRENT PACKAGESET
                                                                             
RET-800967B0 02:32:21.6479980710 00.0000796174 =008251=
 00069 L8000 DD 0301 DDLO  ENTRY LOCATE DIRECTORY_TOKEN(1D3F0D80)
ENTRY_NAME(1E156220) DIRECTORY_NAME(D2TT) NAME(TNFD)
                                                                             
RET-9DC7CEEA 02:32:21.6480060944 00.0000080234 =008252=
 00069 L8000 DD 0302 DDLO  EXIT  LOCATE/OK DATA_TOKEN(1E147480 ,
C4F2E3D9)   RET-9DC7CEEA 02:32:21.6480081569 00.0000020625 =008253=
 00069 L8000 DD 0301 DDLO  ENTRY LOCATE DIRECTORY_TOKEN(1D3CFE80)
ENTRY_NAME(1E14749C) DIRECTORY_NAME(D2EN) NAME(NFDQ    )
                                                                             
RET-9DC7D056 02:32:21.6480095788 00.0000014218 =008254=
 00069 L8000 DD 0302 DDLO  EXIT  LOCATE/OK DATA_TOKEN(1E145418 ,
C4F2C5D5)   RET-9DC7D056 02:32:21.6495188210 00.0015092421 =008255=
 00069 L8000 AP 3250 D2D2  ENTRY DB2_API_CALL CSUB_TOKEN(1E0FA030)
           RET-9DC7B38C 02:32:21.6496313366 00.0001125156 =008256=
 00069 L8000 AP 3251 D2D2  EXIT  DB2_API_CALL/OK
                             RET-9DC7B38C 02:32:21.6504381564 00.0008068198
 =008257=
 00069 L8000 AP 3181 D2EX1 EXIT  APPLICATION-REQUEST SQLCODE 0 RETURNED
ON EXEC SQL SET CURRENT PACKAGESET
                                                                             
RET-800967B0 02:32:21.6504457814 00.0000076250 =008258=
 00069 L8000 RM 0301 RMLN  ENTRY SET_LINK LINK_TOKEN(01060004)
LINK_ID_BUFFER(1E1561EC , 0000000C , 00000008) SINGLE_UPDATER(YES)
                                 RECOVERY_STATUS(NECESSARY)
                  RET-80097B6A 02:32:21.6504508283 00.0000050468 =008259=
 00069 L8000 RM 0302 RMLN  EXIT  SET_LINK/OK LINK_ID_BUFFER(1E1561EC ,
0000000C , 00000008) LINK_ID()
                                                                             
RET-80097B6A 02:32:21.6504542502 00.0000034218 =008260=
1CICS - AUXILIARY TRACE FROM 09/12/05 - APPLID EXP1FPT7
                                                                    PAGE
 00236

 00069 QR    AP 2521 ERM   EXIT  C-APPLICATION-CALL-TO-TRUE(DSNCSQL )
        RET-8005B00A 02:32:21.6504872033 00.0000329531 =008261=
 00069 QR    AP 2520 ERM   ENTRY C-APPLICATION-CALL-TO-TRUE(DSNCSQL )
        RET-8005B00A 02:32:21.6504953830 00.0000081796 =008262=
 00069 L8000 AP 3180 D2EX1 ENTRY APPLICATION REQUEST - EXEC SQL TYPE2
CONNECT TO
                                                                             
RET-800967B0 02:32:21.6505203830 00.0000250000 =008263=

___________________________________________________________________


In the above Trace Output, the TCB ID with L8000 denotes a Threadsafe statement within the actual source program and that with QR denotes a Non-Threadsafe program. My objective is to analyse this CICS Trace output and find out the corresponding statements in the actual source program that are Threadsafe and that are non Threadsafe. ie, I should be able to relate one L8000 TCB ID with the corresponding Program statement. I couldn't proceed on this in any way. I tried all the available resources you had send me as well some other materials I obtained from internet. But I am not satisfied.


Can you please help me in interpreting the corresponding statements in the source program ? Can you please provide me some tips on How to identify the program statements based on this CIS Trace? It will be great, if you can guide me on this.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12372
Topics: 75
Location: San Jose

PostPosted: Thu Sep 22, 2005 9:57 am    Post subject: Reply with quote

Jayakrishnan,

Check this link which gives you a list of Threadsafe command list

http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DFHP4A04/L.0?DT=20050113150738

Quote:

In the above Trace Output, the TCB ID with L8000 denotes a Threadsafe statement within the actual source program and that with QR denotes a Non-Threadsafe program.


The QR in your trace is a LINK command. LINK command is threadsafe when it is used to link to a program in a local CICS region. It is non-threadsafe when it is used to link to a program in a remote CICS region. So check that.

Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> CICS and Middleware All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group