This example shows how to investigate a unit of work (UOW) that has failed in-doubt. For the purposes of the example, the CICS-supplied transaction CIND has been used to create the failure--one of the FILEA sample application transactions, UPDT, has been made to fail in-doubt. For more information about CIND, see the CICS® Supplied Transactions manual.
To retrieve information about a unit of work (UOW), you can use either the CEMT, or EXEC CICS, INQUIRE UOW command. For the purposes of this illustration, the CEMT method is used. You can filter the command to show only UOWs that are associated with a particular transaction. For example, Figure 4 shows one UOW (AC0CD65E5D990800) associated with transaction UPDT.
INQUIRE UOW TRANS(UPDT) STATUS: RESULTS - OVERTYPE TO MODIFY Uow(AC0CD65E5D990800) Ind Shu Tra(UPDT) Tas(0003155) Age(00000680) Ter(S233) Netn(IGBS233 ) Use(CICSUSER) Con Lin(DFHINDSP)
Each UOW identifier is unique within the local CICS system. To see more information about the UOW, move the cursor to the UOW row and press ENTER. This display the following screen:
INQUIRE UOW TRA(UPDT) RESULT - OVERTYPE TO MODIFY Uow(AC0CD65E5D990800) Uowstate( Indoubt ) Waitstate(Shunted) Transid(UPDT) Taskid(0003155) Age(00000826) Termid(S233) Netname(IGBS233) Userid(CICSUSER) Waitcause(Connection) Link(DFHINDSP) Sysid() Netuowid(..GBIBMIYA.IGBS233 .O;)r...)
The UOWSTATE for this UOW is Indoubt. The TRANSACTION definition attribute WAIT(YES|NO) controls the action that CICS takes when a UOW fails in-doubt. CICS does one of two things:
The WAITSTATE of Shunted shows that this UOW has been suspended.
Figure 5 reveals other information about the UOW:
When a UOW has been shunted in-doubt, CICS retains locks on the recoverable resources that the UOW has updated. This prevents further tasks from changing the resource updates while they are in-doubt. To display CICS locks held by a UOW that has been shunted in-doubt, use the CEMT INQUIRE UOWENQ command. You can filter the command to show only locks that are associated with a particular UOW. (Note that the INQUIRE UOWENQ command operates only on non-RLS resources on which CICS has enqueued, and for RLS-accessed resources you should use the INQUIRE UOWDSNFAIL command.) For example:
INQUIRE UOWENQ UOW(*0800) STATUS: RESULTS Uow(AC0CD65E5D990800) Tra(UPDT) Tas(0003155) Ret Dat Own Res(DCXISCG.IYLX.FILEA ) Rle(018) Enq(00000003)
To see more information about this UOWENQ, put the cursor alongside it and press ENTER:
INQUIRE UOWENQ UOW(*0800) RESULT Uowenq Uow(AC0CD65E5D990800) Transid(UPDT) Taskid(0003155) State(Retained) Type(Dataset) Relation(Owner) Resource(DCXISCG.IYLX.FILEA) Rlen(018) Enqfails(00000003) Netuowid(..GBIBMIYA.IGBS233 .O;)r...) Qualifier(000001) Qlen(006)
We can now see that:
Because CIND was used to create this in-doubt failure, it can also be used to resolve the in-doubt UOW. For an example of how to resolve a real in-doubt failure, see the CICS Intercommunication Guide.
[[ Contents Previous Page | Next Page Index ]]