Skip to main content

CICS - Single Thread/ThreadSafe and CPU Utilisation per CPs

1 reply [Last post]
Hoe San
Offline
Joined: 2009-01-29

Hello,
         Pls advise on the followings:
        1. Say we have a CICS task A with pgm A running on a machine with 8 CPs.
            Understand that CICS runs in single-thread (say we don't consider threadsafe programming), does it mean to say that a particular task A when triggered can only run in 1 CP? Is this the design of CICS? In 1 of my customer site, we have a particular CICS region, when too many transaction come in, the region will hang and need to be recycled. When we checked the CPU utilisation, the machine didn't even reach 50% utilisation.
        2. Is there a way whereby we can check the CPU utilisation per CP instead of the whole machine?
        3. Is there any way whereby we can combine 2 CPs in a machine of total 8 CPs as 1?
 
        Greatly appreciate your experts advice.
        Thank you.
 
.Hoe San.

pcs305
pcs305's picture
Offline
Joined: 2006-03-06
Re: Single Thread/ThreadSafe and CPU Utilisation per CPs

Hoe,

 

1. Yes, Historically CICS was designed to single thread tasks. Tasks would run in the QR TCB but CICS applications usually was designed to be pseudo-conversational thus the running task will give up control of the TCB at some point and CICS will the dispatch other tasks based on priority etc.

Every time your transaction executes an EXEC CICS command CICS will use that time to dispatch other tasks. If your program is running for an extended period of time you may want to consider architecting the application into an TOR/AOR configuration. That will help distribute the workload accross more CPU's.

BUT... there are a lot of other ways to look at this... Do you use DB2? What is the long running transaction doing? Can the workload be moved to a different TCB?

You can also use a monitoring tool to cancel the task without having to cancel te CICS region, OR use CEKL to get rid of the task.

2. You can look at RMF stats.

3. z/OS dispatches a TCB on a CPU. You will not be able to logically combine the CPU's.

CICS has come a long way from those single threaded day of old and there is a lot of ways to get arrounf that "limitation".


Ian