MainframeKit

2024

MQRC_SYNCPOINT_LIMIT_REACHED (X'07E8')MQ REASON CODE

A put or get under syncpoint failed because the unit of work would hold more uncommitted messages than the queue manager allows.

MOST LIKELY

A batch program processes a very large number of messages before it issues MQCMIT.

FIRST CHECK

Check whether the program is looping.

TRY IT ▸

MainframeKit assistant

What it means

Each queue manager has a limit on how many messages one unit of work may hold before it commits (the MAXUMSGS attribute). Messages put and got under syncpoint count, and so do some report and trigger messages the queue manager makes on the program's behalf. When the next call would go over the limit, it fails with 2024.

Typical causes

  • A batch program processes a very large number of messages before it issues MQCMIT.
  • A loop in the program keeps putting or getting without committing.
  • MAXUMSGS is set lower than the application design needs.
  • Report or trigger messages add to the count and push a large unit of work over the limit.

How to fix it

  1. Check whether the program is looping.
  2. Commit more often, for example every few hundred or thousand messages, so units of work stay small.
  3. If large units of work are truly needed, ask the MQ administrator to raise MAXUMSGS (ALTER QMGR on z/OS and distributed, CHGMQM on IBM i).
  4. Back out or commit the current unit of work before retrying, so the program does not leave work in doubt.

Example

Illustrative only; names and values are invented.

MQPUT failed  CompCode=2  Reason=2024  Queue=APP.BATCH.OUT
DISPLAY QMGR MAXUMSGS