Display in-doubt units of recovery

We can display in-doubt of units of recovery and attempt to recover them.

The operational steps used to list and recover in-doubt units of recovery in this topic are for relatively simple cases only. If the queue manager ends abnormally while connected to IMS, IMS might commit or back out work without IBM MQ being aware of it. When the queue manager restarts, that work is termed in doubt. A decision must be made about the status of the work.

To display a list of in-doubt units of recovery, issue the command:

+CSQ1  DISPLAY CONN(*) WHERE(UOWSTATE EQ UNRESOLVED)

IBM MQ responds with a message like the following:

CSQM201I +CSQ1 CSQMDRTC DIS CONN DETAILS
CONN(BC0F6125F5A30001)
EXTCONN(C3E2D8C3C3E2D8F14040404040404040)
TYPE(CONN)
CONNOPTS(
MQCNO_STANDARD_BINDING
)
UOWLOGDA(2004-11-02)
UOWLOGTI(12.27.58)
UOWSTDA(2004-11-02)
UOWSTTI(12.27.58)
UOWSTATE(UNRESOLVED)
NID(CSQ1CHIN.BC0F5F1C86FC0766)
EXTURID(000000000000001F000000007472616E5F6964547565204E6F762020...)
QMURID(000000026232)
URTYPE(XA)
USERID( )
APPLTAG(CSQ1CHIN)
ASID(0000)
APPLTYPE(CHINIT)
CHANNEL( )
CONNAME( )
END CONN DETAILS
For an explanation of the attributes in this message, see the description of the DISPLAY CONN command.


Recovering in-doubt units of recovery

To recover in-doubt units of recovery, issue this command:

+CSQ1  RESOLVE INDOUBT( connection-name ) ACTION(COMMIT|BACKOUT)
NID( net-node.number )
where:

    connection-name
    The IMS system ID.

    ACTION
    Indicates whether to commit (COMMIT) or back out (BACKOUT) this unit of recovery.

    net-node.number
    The associated net-node.number.

When you have issued the RESOLVE INDOUBT command, one of the following messages is displayed:

CSQV414I +CSQ1 THREAD network-id COMMIT SCHEDULED

CSQV415I +CSQ1 THREAD network-id BACKOUT SCHEDULED


Resolving residual recovery entries

At given times, IMS builds a list of residual recovery entries (RREs). RREs are units of recovery about which IBM MQ might be in doubt. They arise in several situations:

  • If the queue manager is not active, IMS has RREs that cannot be resolved until the queue manager is active. These RREs are not a problem.
  • If the queue manager is active and connected to IMS, and if IMS backs out the work that IBM MQ has committed, the IMS adapter issues message CSQQ010E. If the data in the two systems must be consistent, there is a problem. For information about resolving this problem, see Recovering IMS units of recovery manually.
  • If the queue manager is active and connected to IMS, there might still be RREs even though no messages have informed you of this problem. After the IBM MQ connection to IMS has been established, we can issue the following IMS command to find out if there is a problem:
    /DISPLAY OASN SUBSYS sysid
    

To purge the RRE, issue one of the following IMS commands:

/CHANGE SUBSYS sysid RESET
/CHANGE SUBSYS sysid RESET OASN nnnn

where nnnn is the originating application sequence number listed in response to your +CSQ1 DISPLAY command. This is the schedule number of the program instance, giving its place in the sequence of invocations of that program since the last IMS cold start. IMS cannot have two in-doubt units of recovery with the same schedule number.

These commands reset the status of IMS ; they do not result in any communication with IBM MQ.

Parent topic: Operate the IMS adapter