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 *
//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.