What does the DB00103I message mean during a CA Datacom transaction backout?

Document ID : KB000030372
Last Modified Date : 14/02/2018
Show Technical Document Details

When using a CA Datacom/DB or CA Datacom/AD database with Logging and Recovery capabilities, any failure of a maintenance transaction (add, update or delete) will cause that transaction's updates to be rolled back; that is, all updates for that unit of work will be undone. In addition, a rollback can be requested programmatically if the application has determined that there is some problem that needs to be addressed.

To understand the DB00103I message, it is important to understand the process for transaction backout or rollback in the Multi-User Facility (called MUF), as driven by the LOGTB or ROLBK commands (LOGTB is a programmatic command, and ROLBK is programmatic as well as the result of a transaction failure, like a Return Code 08 that might be experienced when filling a data or index area during a large set of record additions).

  • The backout process will deal with each log record in the transaction. Each log record is processed individually and serially, and each one will either succeed or fail. The first backout record that cannot be undone will save that Return Code (RC) and this will be displayed in the DB00103I message (RC=rr).
  • Once the rollback starts, it will flag every record with the U an A flags that you see in a report of Recovery File (RXX) details (see below).
  • Some return codes (like RC 08) are handled programmatically within the backout processing, and so the likelihood of having a problem with the backout due to this RC is very small. Nonetheless, problems can still occur.
  • There are four messages that can be produced during a backout:

DB00112I - BACKOUT JOB-jjjjjjjj NUMBER-nnnnn [ID=monitor] [CP=chkpt] RC=N
DB00113I - BACKOUT JOB-jjjjjjjj NUMBER-nnnnn [ID=monitor] [CP=chkpt] RC=Y TSN=xxxxxxxx 
These messages indicate that a transaction backout took place, and it was successful - either with no records to process (DB00112I) or with all records processed (DB00113I).

DB00103I - BACKOUT JOB-jjjjjjjj NUMBER-nnnnn [ID=monitor] [CP=chkpt] RC=rr TSN=xxxxxxxx
This message indicates that there may have been a problem with the backout, as noted by the RC=rr value.

Because there are hundreds of possible combinations of external and internal return codes, there is no way to identify which RC=rr values might need further investigation and which might be fine and could be ignored. Consequently, whenever the DB00103I message is produced with a value for RC other than RC=Y, it would be a good practice to run a DBUTLTY RXX report to show the details of this problem transaction.

To run this report, you need the name of the Recovery File (RXX) containing the transactions that were backed out. If the transaction records are still on the active Log Area (LXX) and you are not able to spill the LXX to the RXX at the time you need to run this report, the LXX can be used. Please note, though that using the LXX is not recommended because of its active and constantly updated status, and because of its special treatment by the MUF. If you must use the LXX, you should expect various warning messages to be produced.

You will also need the Transaction Sequence Number (TSN) as seen on the DB00103I message in the MUF log. For example, here is a sample message, with the TSN value of 00001A00:

DB00103I - BACKOUT JOB-JOBDC148 NUMBER-11211 ID=DBUTLTY MASSADD  CP=****1000 RC=08(008) TSN-00001A00

Here is JCL that you can use to run the DBUTLTY program to produce the report:

//DBUTLTY  EXEC PGM=DBUTLTY,REGION=0M
//STEPLIB  DD  DISP=SHR,DSN=   <<- Your Datacom CUSLIB
//         DD  DISP=SHR,DSN=   <<- Your Datacom CABDLOAD or CAAXLOAD
//CXX      DD  DISP=SHR,DSN=   <<- Your Datacom CXX filename (not needed if using SIMPLIFY Mode)
//SYSPRINT DD  SYSOUT=*              
//SYSOUT   DD  SYSOUT=*              
//SYSUDUMP DD  SYSOUT=*              
//SYSIN    DD  *                                                  
  REPORT AREA=RXX,LOGPRINT=DETAIL,RANGETSN=00001A0000001A00
/*
//RXX      DD  DISP=SHR,BUFNO=40,DSN=   <<- The relevant RXX or LXX file
//

This will produce a report of all log file records for that transaction. It might look like this excerpt showing the first and last 3 records:

                                                   LOGPRINT DETAIL REPORT                                                
CMD   TBL DBID URI      BLOCK    L# TSN      JOB NAME R-UNIT MP USER ID AREA MONITOR INFO     INPUT RECORD FPR    LXX    
      DATE       TIME     CLOCK            SEC.USER MOVE TO  LRID     PREV     LRSN     LBSN     TASK STATUS   RECL DATA
ADDIT NHA  148 000003E9 0000010C 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        35,491              
      05/08/2015 10.31.56 CEEA32E21605C65B USERID1  00000000 0002E55E 0002E55D 000003EC 000002E5    1 UAB      0133 7FA7
ADDIT NHA  148 000003EA 0000010C 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        35,492              
      05/08/2015 10.31.56 CEEA32E2161E9F5B USERID1  00000000 0002E55F 0002E55E 000003ED 000002E5    1 UAB      0133 7FA7
ADDIT NHA  148 000003EB 0000010C 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        35,493              
      05/08/2015 10.31.56 CEEA32E216ED455B USERID1  00000000 0002E560 0002E55F 000003EE 000002E5    1 UAB      0133 7FA7
. . .
ADDIT NHA  148 00000757 00000308 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        36,369              
      05/08/2015 10.31.57 CEEA32E375C89B5B USERID1  00000000 0002EA3E 0002EA3D 0000075A 000002EA    1 UAB      0133 4CC4
ADDIT NHA  148 00000758 00000308 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        36,370              
      05/08/2015 10.31.57 CEEA32E3760D035B USERID1  00000000 0002EA3F 0002EA3E 0000075B 000002EA    1 UAB      0133 4CC4
ADDIT NHA  148 00000759 00000308 00 00001A00 JOBDC148 11,211    MASSADD  NHA DBUTLTY MASSADD        36,371              
      05/08/2015 10.31.57 CEEA32E3762FB35B USERID1  00000000 0002EA40 0002EA3F 0000075C 000002EA    1 UB       0133 4CC4 

Successful backout of each record is shown by the STATUS column values U and B. The count of the UAB plus UB status values should match the total number of records in the REQUEST SUMMARY REPORT following the details.

For further information about Transaction Backout and the related DB00103I, DB00112I and DB00113I messages, please refer to the CA Datacom/DB Database and System Administration Guide, in the section "Using Transaction Backout." 

As always, please contact CA Technologies support for CA Datacom if you have further questions.