Is there a way to confirm that Datacom CICS Services is setup correctly to allow user transactions to run Threadsafe?
Release: 15.1
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.
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