How can I verify if my transactions which access the Datacom/DB MUF using Datacom CICS Services are setup to run Threadsafe?
search cancel

How can I verify if my transactions which access the Datacom/DB MUF using Datacom CICS Services are setup to run Threadsafe?

book

Article ID: 19090

calendar_today

Updated On:

Products

Datacom DATACOM - AD Ideal Datacom/AD Datacom/DB

Issue/Introduction

Is there a way to confirm that Datacom CICS Services is setup correctly to allow user transactions to run Threadsafe?

 

Environment

Release: 15.1

Resolution

First, we will give an overview of Threadsafe, and then explain how to see if Datacom CICS Services is setup to support it.

BACKGROUND

CICS open transaction environment (OTE) is an architecture that was introduced to allow CICS to make better use of the mainframe, by running more processes in parallel, increasing the throughput of work through the system and resulting in more work being done in the same amount of time. In addition, OTE can improve the performance of existing applications that access external resources managers such as  Datacom/DB by consuming less mainframe resources in getting the job done. In order to take advantage of CICS OTE, applications must be threadsafe. This means that if the mainframe has many processors that are running in parallel, the threadsafe application runs correctly. If an application is threadsafe, it can be defined to CICS with a CONCURRENCY keyword so that it uses OTE. If an application is not threadsafe, CICS runs it without using OTE.

CICS has only one QR TCB in a region, and the CICS dispatcher shares use of the QR TCB between all the tasks. However, a single CICS system can have many open TCBs. Using OTE effectively keeps an application running on an open TCB for as long as possible and minimizes the number of times it must switch back to the QR TCB.

VERIFYING THAT DATACOM CICS SERVICES IS USING THREADSAFE FEATURES

First, issue this CICS transaction:

DBOC INQ=GENOPTS

At the bottom of the page returned, you can see if you have OPENAPI set to YES or NO.

DBEC=DBEC DBEX DBRC           DBOC=DBOC DBIC DBKC      DBUG=DBUG DBFS
DBTS=DBTS DBTX                OPENAPI=NO               EOJ_OK=NO
REQTHD=00000 EXEMPT TRANS=DBOC
OPERID=***

Now, if you run transactions, you can then review the trace (transaction DBOC INQ=TRACE), and you might see something like this:
TRACE TABLE INQUIRE

SEQ   TIME   TASK TERM TRAN PROGRAM  TCB TCB CMMD  TBL  KEY  RTN    URT
NR   HHMMSS    ID   ID   ID NAME     NAM  ID       NAM  NAME CODE    ID

0439 113552   103 U049 SCFD VPEHJN68 QR  002 REDKG DVW DVWKS       0002
0440 113552   103 U049 SCFD VPEHJN68 QR  002 REDKG DVW DVWKS       0002
0441 113552   103 U049 SCFD VPEHJN68 QR  002 REDLE DVW DVWKS       0002

Here you can see the TCB used is QR.

Your choices for this processing are either to use the QR TCB (the single Quasi-Reentrant CICS TCB) or the multiple L8 TCBs.

If you have OpenAPI=NO, we will keep the mode for the TCB that is in place when we make the call to DB. So if whatever was running before the DB command was L8, we keep L8, and if whatever was running was QR, we keep QR.

However, if you are using OpenAPI=YES, we will always change to use L8, and will then restore the previous setting after the call.

 

Additional Information

For more information about the Open Transaction Environment (OTE) and Datacom CICS Services see the Datacom Tools documentation sections Open Transaction Environment and Utilizing Resources Effectively heading Open Transaction Environment (OTE)

For general information about Threadsafe and CICS Transaction Server for z/OS V4.2, please see the IBM Redbook, Threadsafe Considerations for CICS, available at http://www.redbooks.ibm.com/redbooks/pdfs/sg246351.pdf