Distinguishing between waits and loops on z/OS

Waits and loops on IBM MQ for z/OS can present similar symptoms. Use this topic to help determine if we are experiencing a wait or a loop.

Because waits and loops can be difficult to distinguish, in some cases we need to carry out a detailed investigation before deciding which classification is appropriate for the problem.

This section gives you guidance about choosing the best classification, and advice on what to do when you have decided on a classification.


Waits

For problem determination, a wait state is regarded as the state in which the execution of a task has been suspended. That is, the task has started to run, but has been suspended without completing, and has subsequently been unable to resume.

A problem identified as a wait in your system could be caused by any of the following:

  • A wait on an MQI call
  • A wait on a CICS or IMS call
  • A wait for another resource (for example, file I/O)
  • An ECB wait
  • The CICS or IMS region waiting
  • TSO waiting
  • IBM MQ for z/OS waiting for work
  • An apparent wait, caused by a loop
  • Your task is not being dispatched by CICS or MVS due to higher priority work
  • Db2 or RRS are inactive


Loops

A loop is the repeated execution of some code. If we have not planned the loop, or if you have designed it into the application but it does not terminate for some reason, you get a set of symptoms that vary depending on what the code is doing, and how any interfacing components and products react to it. In some cases, at first, a loop might be diagnosed as a wait or performance problem, because the looping task competes for system resources with other tasks that are not involved in the loop. However, a loop consumes resources but a wait does not.

An apparent loop problem in the system could be caused by any of the following:

  • An application doing a lot more processing than usual and therefore taking much longer to complete
  • A loop in application logic
  • A loop with MQI calls
  • A loop with CICS or IMS calls
  • A loop in CICS or IMS code
  • A loop in IBM MQ for z/OS


Symptoms of waits and loops

Any of the following symptoms could be caused by a wait, a loop, or by a badly tuned or overloaded system:

  • Timeouts on MQGET WAITs
  • Batch jobs suspended
  • TSO session suspended
  • CICS task suspended
  • Transactions not being started because of resource constraints, for example CICS MAX task
  • Queues becoming full, and not being processed
  • System commands not accepted, or producing no response

Parent topic: Dealing with applications that are running slowly or have stopped on z/OS


Related concepts