Simple Mainframe Universe
Home Tutorials Interview Q&A Quiz Mainframe Memes Contact us About us

IMS Operations


IMS transaction returns unexpected status

When IMS transaction returns unexpected status, remember that IMS batch and online share databases through DBRC, which serializes access — contention or a missed authorization stops work fast.

What it means

  • The message queue is the shock absorber: when it grows, the bottleneck is downstream, not in the queue itself.
  • Checkpoint restart replays from the last checkpoint — anything not checkpointed gets reprocessed, so restart logic must be idempotent.
  • A PSB change means nothing until ACBGEN runs and the region picks up the new ACB.

Common causes

  • PSB or PCB in the program does not match the ACB in the IMS system (PSBGEN/ACBGEN out of sync).
  • A batch job holds the database through DBRC while an online region needs it.
  • A dependent region (MPP/BMP) fails to start because its PSB is not defined to the region.
  • IMS log data sets (OLDS) fill up, stalling the whole IMS system.
  • A slow or stopped transaction lets the message queue backlog grow.

How to diagnose

  • Use /DIS DB to see database status and which job or region holds it.
  • Check the IMS master terminal output and the failing region JES log for the first error.
  • Verify the PSB was generated into the ACB library that the failing region actually uses.
  • For queue backlog, watch the queue depth trend with /DIS Q — steady growth means the consumer is the problem.

How to fix it

  • Run ACBGEN after any PSB or DBD change, then restart the region so it picks up the new ACB.
  • Coordinate batch windows with DBRC so online regions are not starved of the database.
  • Switch or add OLDS data sets when the log fills; never let IMS stall on logging.
  • Restart the transaction (/STA TRAN) only after fixing the underlying cause.

Example: IMS operator checks

/DIS DB dbdname /DIS TRAN tranname /DBR DB dbdname -- quiesce before batch work /STA DB dbdname -- bring it back when done

Always /DBR a database before batch update work, then /STA it when done.

Interview tip

  • Q: An IMS transaction works in test but fails in production with a PCB status error, like IMS transaction returns unexpected status. Where do you look?
  • A: At the ACB library the production region uses — the PSB or DBD was likely changed and ACBGEN ran for test but not production. I compare the ACB members, regenerate for production, and restart the region.

Prevention checklist

  • Make ACBGEN part of every IMS change deployment, for every region.
  • Monitor OLDS usage and queue depths with alerts before they fill.
  • Keep a batch-versus-online database schedule so DBRC contention is planned, not discovered.




© copyright mainframebug.com
Privacy Policy
MainframeBug Assistant