0175
Explanation
Unrecoverable errors have been encountered while processing the input log during restart. Refer to messages DFS0739A and DFS0739X, which you might receive before this abend.
This abend is related to abend 0176.
Analysis
For DFSFDLY0:
This abend is issued in module DFSFDLY0 in response to errors detected by the following modules:
- DFSFDLN0
- Allocate an OLDS or SLDS
- DFSFDLO0
- Subroutines used by DFSFDLQ0
- DFSFDLP0
- SLDS read
- DFSFDLQ0
- STATE routines used by DFSFDLX0
- DFSFDLR0
- Restart-read driver
- DFSFDLT0
- Format WADS
- DFSFDLU0
- Terminate OLDS from WADS
- DFSFDLV0
- OLDS read STATE transition table used by DFSFDLX0 contains no executable code, yet this is the heart of the OLDS read logic.
- DFSFDLX0
- OLDS read driver
- DFSFDLY0
- Subroutines used by all restart-read
- DFSFDLZ0
- Used in emergency restart to switch between OLDS read and SLDS read
During restart, either the input log data set encountered an unrecoverable error or log data set processing encountered a should-never-occur logic error. Message DFS0739I or DFS0739X is issued.
0175 is a standard abends that can be issued from the modules listed for this abend. The program status word (PSW) at entry-to-abend points to the instruction from which ABEND (SVC 13) is issued.
Regardless of which of the two modules actually encounters an error, all 0175 abends are accomplished by calling the common ABEND subroutine in csect DFSFDLY2 in module DFSFDLY0. Register 14 contains the return address of the caller, which should be very close to the actual point of failure. The low halfword of register 15 contains a return code that identifies the reason for the abend.
If a DBRC error is involved, the high halfword of register 15 contains the DBRC return code.
If a DFSMDA error is involved, the high halfword of register 15 contains the DFSMDA return code. (Equate statements defining the abend return codes can be found in macro DFSFRLWA.) The remaining abend registers have been saved at RLWAREGS in the restart-read work area, RLWWORK. RLWWORK is located using register 9 (or using LRESTWK in the LCD) and is mapped by macro DFSFRLWA.
If working from a formatted dump, the registers at entry to DFSFDLY2 will be close, but not necessarily identical, to the registers stored at RLWAREGS.
The following abend registers have the same meanings for all occurrences of 0175:
- Reg8
- Second base register for module (if needed)
- Reg9
- RLWWORK - restart-read work area
- Reg10
- LCD
- Reg11
- SCD
- Reg12
- First base register for module
- Reg13
- IMS pre-chained save area
- Reg14
- BALR return address - where the error actually occurred
- Reg15
- Return codes
RLWWORK is the key data area for all the logger restart-read modules and is mapped by DSECT macro DFSFRLWA. The following fields within RLWWORK are especially useful:
- RLWQDECB
- A copy of the parameter list passed to restart-read
- RLWOLTFE
- Pointer to the first entry in a table of OLDS DECB and buffer addresses. These entries are mapped by DSECT OLAT within DFSFRLWA.
- RLWGLOBL
- Restart-read global status flags
- RLWAREQ
- Last log allocation request (type) passed to DBRC
- RLWALLOC
- Type of log allocated
- RLWDBRET
- DBRC work area address
- RLWDSETE
- DSET entry for OLDS currently being read
- RLWEN
- Allocation information for log currently being read
- RLWESTAT
- Log status flags
- RLWEEXCP
- Log exception flags
- RLWEAVL
- Log availability flags
- RLWEOPN
- Log open flags
- RLWEMODE
- Log mode flags
- RLWEOFOK
- Log end-of-file (EOF) written flags
- RLWECNT
- Number of good blocks read on current log
- RLWOSUFF
- OLDS block suffix for last good block read. The OLDS suffix is mapped by DSECT SUFFIX within DFSFRLWA.
- RLWPCNT
- Relative block count for POINT
- RLWOPDCB
- OLDS primary DCB
- RLWOSDCB
- OLDS secondary DCB
- RLWSDCB
- SLDS DCB
- RLWWDCB
- WADS DCB
- RLWAREGS
- Copy of caller's registers at abend
- RLWTSUFF
- OLDS block suffix for first block on current OLDS. The OLDS suffix is mapped by DSECT SUFFIX within DFSFRLWA.
- RLWDSUFF
- OLDS block suffix for last duplicate block read. The OLDS suffix is mapped by DSECT SUFFIX within DFSFRLWA.
- RLWTFLG1
- OLDS error toleration flags
- RLWXSTAT
- OLDS XRF status flags
- RLWXSTT2
- OLDS XRF status flags (byte 2)
- RLWHSRRT
- OLDS restart-read transition table address. For more information about the OLDS restart-read transition table, please refer to the prolog for module DFSFDLV0. The OLDS restart-read transition table is mapped by DSECTs HSRRTT, XSTATBL, and XSTATENT within DFSFRLWA.
- RLWXDOMA
- OLDS domain mapping (prior state/event and current state/event)
- RLWPPART
- OLDS prior domain partition (within DFSFDLV0)
- RLWCPART
- OLDS current domain partition (within DFSFDLV0)
- RLWNPART
- OLDS next domain partition (within DFSFDLV0)
- RLWXTRCN
- OLDS next transition trace entry address
- RLWXTRCE
- OLDS end of transition trace table address
- RLWXTRC
- OLDS transition trace table (25 entries - 5 words each). The trace table entries are mapped by DSECT XTRCENT within DFSFRLWA. (If it becomes necessary to analyze the entries in this trace table, please contact the IBM® Support Center for assistance.)
- XSXX
- OLDS transition STATE equate statements
- XEXX
- OLDS transition EVENT equate statements
- XPTINIT
- OLDS transition PARTITION equate statements
- RLWWPARM
- WADS read parameter list passed to module DFSFDLW0
- RLWABC
- ABEND code save area. Equate statements for various restart-read abend codes and return codes follow RLWABC.
For DFSFDLN0:
Module DFSFDLN0 allocates the log data sets required by the restart-read process. A request is made to DBRC to locate a particular type of log data set. If the data set is located successfully, it is allocated. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWLLLF
RLWDBRC=DBRC return code |
LTA1430
|
DBRC could not find the latest OLDS. |
Reg15=RLWAF
RLWAREGF=RDJFCB return code |
LTA1578
|
RDJFCB failed while attempting to allocate a new OLDS for output. |
Reg15=RLWLLNF
|
LTA1585
|
A new OLDS is needed
for output to complete the log close process. A reusable OLDS was
not found. Either DBRC could not be checked for an available OLDS,
or an operator replied ABENDto message DFS0739I. |
Reg15=RLWDBRCF
RLWDBRC=DBRC return code |
LTA1590
|
The DBRC status exit routine returned a nonzero return code. |
Reg15=RLWAF
RLWMDRC=DFSMDA return code |
LTA1620
|
Allocation failed for a system log data set (SLDS). If DFSMDA failed, RLWMDRC is nonzero. Otherwise, the SLOPN subroutine in DFSFDLY0 failed to open the SLDS. |
Reg15=RLWAF
RLWMDRC=DFSMDA return code |
LTA21200
|
Allocation failed for an SLDS. If DFSMDA failed, RLWMDRC is nonzero. Otherwise, the SLOPN subroutine in DFSFDLY0 failed to open the SLDS. |
Reg15=RLWAF
RLWMDRC=DFSMDA return code |
LTA22200
|
Allocation failed for an SLDS. If DFSMDA failed, RLWMDRC is nonzero. Otherwise, the SLOPN subroutine in DFSFDLY0 failed to open the SLDS. |
Reg15=RLWAF
RLWDBRC=DBRC return code |
LTA2220
|
DBRC is unable to locate the secondary log data set. |
Reg15=RLWLGCE
|
ALOPENOL
|
Should-never-occur logic error. |
Reg15=RLWLGCE
|
ALOPENSL
|
Should-never-occur logic error. |
Reg15=RLWAF
|
LTD320
|
Final checking within the ALOPENOL subroutine determined that OLDS allocation failed. |
For DFSFDLO0:
- XREAD
- Issues a READ for the current OLAT entry and issues a CHECK for the outstanding READ against the next OLAT entry.
- XREREAD
- Resets BSAM DCB status (CHECKs unchecked READs), issues a POINT for the last good block read, issues a READ and CHECK for the last good block, and issues a READ and CHECK for the next block (the block that was in error the last time XREAD was invoked).
- XBLKCHK
- Examines the results of the last CHECK. Tests for EOF, READ errors, and sequence errors. Sets the CURRENT EVENT to indicate the relative success of the last READ/CHECK. Selects the NEXT PARTITION to be used in the restart-read transition table (DFSFDLV0).
Key | Label | Description |
---|---|---|
Reg15=RLWLGCE
RLWEOPN=open OLDS flags |
XRER0020
|
The CLROLD subroutine in DFSFDLY0 has returned a nonzero return code. It is not possible to reread the current OLDS and an alternate OLDS is not available. |
Reg15=RLWLGCE
RLWCSTAT=current state RLWTFLG1=error toleration flags |
XBLK0016
|
XBLKCHK is attempting to analyze the last BSAM CHECK. Error toleration is required for STATE XS18 and an unknown condition occurred. |
Reg15=RLWLGCE
RLWCSTAT=current state RLWTFLG1=error toleration flags |
XBLK0026
|
XBLKCHK is attempting to analyze the last BSAM CHECK. Error toleration is required for STATE XS12 and an unknown condition occurred. |
Reg15=RLWLGCE
|
XBLKEOF
|
Should-never-occur logic error. XBLKCHK is attempting to analyze the last BSAM CHECK. EOF was detected and the OLDCALC subroutine returned a bad return code while trying to determine where EOF occurred within the data set. |
Reg15=RLWLGCE
|
XBLKREAD
|
Should-never-occur logic error. XBLKCHK is attempting to analyze the last BSAM CHECK. A read error was detected and the OLDCALC subroutine returned a bad return code while trying to determine where the read error occurred within the data set. |
Reg15=RLWLGCE
RLWCSTAT=current state |
XBLK3500
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A first block read error was detected and RLWCSTAT is bad. |
Reg15=RLWLGCE
RLWCSTAT=current state |
XBLK4500
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A middle block read error was detected and RLWCSTAT is bad. |
Reg15=RLWLGCE
RLWCSTAT=current state |
XBLK5500
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A last block read error was detected and RLWCSTAT is bad. |
Reg15=RLWLSE
RLWLOGSQ=last good log record sequence number Reg6 at entry to DFSFDLY2 points to the log buffer holding the out-of- sequence log record |
XBLK6140
|
XBLKCHK successfully read the first block in an OLDS but found that the sequence number of the first record in the block is not equal to the previous OLDS/SLDS log record sequence number +1. |
Reg15=RLWLGCE
RLWCSTAT=current state |
XBLK7500
|
XBLKCHK is attempting to analyze the last BSAM CHECK. An older data sequence error was detected and RLWCSTAT is bad. |
Reg15=RLWLGCE
LWAREG2=current block suffix address RLWTSUFF=first block of last good OLDS suffix RLWTFLG1=error toleration flags RLWTSKIP=BSN of block being analyzed when the newer data sequence error was detected. |
XBLK8075
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A newer data sequence error was detected because of a skipped OLDS. However, the key fields indicate an unexpected condition. |
Reg15=RLWLGCE
RLWAREG2=current block address suffix RLWTSUFF=first block of last good OLDS suffix RLWTFLG1=error toleration flags RLWTSKIP=BSN of block being analyzed when the newer data sequence error was detected. |
XBLK8085
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A newer data sequence error was detected because of a skipped OLDS. The skipped OLDS was located. While performing a forward read of the skipped OLDS, a second newer data sequence error was encountered before returning to the skipped OLDS processing starting point, RLWTSKIP. |
Reg15=RLWLGCE
RLWCSTAT=current state |
XBLK8500
|
XBLKCHK is attempting to analyze the last BSAM CHECK. A newer data sequence error was detected and RLWCSTAT is bad. |
For DFSFDLP0:
Module DFSFDLP0 reads system log data sets (SLDS) during warm start or emergency restart. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg4=RLWSDECB
Reg15=RLWLRE |
DFSFDLP0
|
An I/O error occurred while reading an SLDS. |
Reg15=RLWLGCE
RLWEMODE |
LSA200
|
An I/O error occurred while reading the secondary SLDS. Recover the SLDSs using the Log Recovery utility and try the restart again. |
Reg15=RLWAF
RLWALLOC |
LSA210
|
DBRC was unable to locate the secondary SLDS. |
Reg15=RLWLSE
SAVELSN=last LSN read from secondary SLDS while trying to match up with the primary SLDS. (SAVELSN is located within DFSFDLP0) RLWLOGSQ=last LSN read from primary SLDS. |
LSA235
|
EOF was reached on the secondary SLDS without finding a record to match the last record read from the primary SLDS. |
Reg4=RLWSDECB
Reg15=RLWLRE |
LSA240
|
An I/O error occurred on the secondary SLDS while attempting to match the primary SLDS. |
Reg2=first LSN
in block Reg3=RLWLOGSQ+1 Reg15=RLWLSE |
LSA250
|
A sequence error occurred on the secondary SLDS while attempting to match the primary SLDS. The log sequence number (LSN) in register 2 is more than one greater than the last LSN read from the primary SLDS. |
Reg15=RLWLSE
|
LSA21R
|
A sequence error occurred on the secondary SLDS while attempting to truncate the block that would match up with the primary SLDS. |
For DFSFDLQ0:
Module DFSFDLQ0 contains all the STATE routines used to read an OLDS. There is an 8-byte eye catcher at the beginning of each STATE routine.
Module DFSFDLX0 reads the STATE table, DFSFDLV0, to determine which STATE to execute next. DFSFDLX0 calls DFSFDLQ0 with the address of the STATE routine in register 0. The STATE routine is executed and control is returned to DFSFDLX0, along with a return code. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWLRE or
RLWDRE RLWEOPN=open data set flags RLWTFLG1=error toleration flags |
XS020035
|
Routine XSTATS02 was called to analyze a read error. The CLROLD subroutine failed to reset BSAM status using CLOSE and OPEN. Since all required OLDS data sets are unavailable, restart-read abends. |
Reg15=abend code
(variable) RLWXDOMA=last STATE flags RLWCPART=last partition |
XSTATS03
|
The STATE table, DFSFDLV0, determined that a U0176 abend is required. |
Reg15=RLWLGCE
|
XS040100
|
Should-never-occur logic error. The last LSN in a good block was zero. |
Reg15=RLWLGCE
RLWDBRC=DBRC return code |
XS050300
|
Should-never-occur logic error. XSTATS05 received an unexpected response from DBRC on a LOCATE LAST request. |
Reg15=RLWLGCE
RLWDBRC=DBRC return code |
XS050700
|
Should-never-occur logic error. XSTATS05 received an unexpected response from DBRC on a LOCATE NEXT request. |
Reg15=RLWLGCE
RLWDBRC=DBRC return code |
XS070025
|
Should-never-occur logic error. XSTATS07 received an unexpected response from DFSFDLN0 on an ALLOCATE NEXT request. |
Reg15=RLWLGCE
|
XS160200
|
Should-never-occur logic error. XSTATS16 received an unexpected return code from DFSFDLU0. |
Reg15=abend code
(variable) RLWXDOMA=last STATE flags RLWCPART=last partition |
XS21EXIT
|
The STATE table, DFSFDLV0, determined that a U0175 abend is required. |
Reg15=RLWLGCE
|
XS290025
|
Should-never-occur logic error. XSTATS29 received an unexpected response from DFSFDLN0 on an ALLOCATE PRIOR request. |
Reg15=RLWLGCE
|
XS320025
|
Should-never-occur logic error. XSTATS29 received an unexpected response from DFSFDLN0 on an ALLOCATE LAST request. |
Reg15=abend code
(variable) RLWXDOMA=last STATE flags RLWCPART=last partition RLWXTRC=transition trace table |
XSTATS99
|
Should-never-occur logic error. A search of the STATE table, DFSFDLV0, did not produce a match. A U0175 or U0176 abend is forced. |
For DFSFDLR0:
Module DFSFDLR0 is the driver module for the log restart-read function. DFSFLLG0 branches to DFSFDLR0 under the restart TCB to perform one of the following functions:
- FIND
- Locate the most current type X'42' log record (checkpoint
ID table) and pass it back to restart.
The OLDS might not be terminated from the WADS during this request.
- OPEN
- OPEN the log containing the restart checkpoint and locate the start of the checkpoint.
- READ
- READ the log forward, beginning with the restart checkpoint. Pass one block of data at a time back to restart. If necessary, terminate the OLDS from the WADS.
- CLOSE
- After EOF on the last log, merge the data set entry tables, DSETs, (initial DSET from log initialization, DSET from the latest X'4301' log record, DSET built during forward log read) and allocate all OLDS.
- FORMAT
- Format the WADS as requested by the /STA WADS, /NRE, or /ERE commands.
The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWLRE
|
LOA200
|
The OPEN function encountered a read error while attempting to read the first block from the OLDS containing the restart checkpoint. |
Reg15=RLWLNT
RLWGLOBL=global flags |
LCA10E
|
The CLOSE function was requested and RLWGLOBL does not indicate that the OLDS was terminated from the WADS. |
Reg2=log record
address Reg3=log record length Reg15=RLWLSE RLWGLOBL=global flags |
LCA21210
|
The CLOSE function was requested. While searching for a DSET (X'4301' log record) within the block, a zero length record was found. |
Reg15=RLWLGCE
|
LCA2300
|
Should-never-occur logic error. |
Reg2=log record
address Reg4=log record length Reg15=RLWLSE RLWGLOBL=global flags |
LOB110
|
The OPEN function was requested. While searching for the beginning checkpoint record (X'4001' log record) within the block, a zero length record was found. |
Reg15=RLWLRE
|
LFB010
|
The FIND (or CLOSE) function encountered a read error while attempting to read the first block from the latest OLDS. |
Reg15=RLWLLLF
RLWALLOC=allocation flags |
LFB190
|
The FIND (or CLOSE) function received an unexpected result from DFSFDLN0 on a request to allocate the latest log. |
Reg2=log record
address Reg4=log record length Reg15=RLWLSE RLWGLOBL=global flags |
LFC10R
|
The FIND (or CLOSE) function was requested. While searching a block for an X'42' (or X'4301') log record, a zero length record was found. |
For DFSFDLR0:
Module DFSFDLU0 terminates the latest OLDS from the WADS. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWLLF
RLWDBRC=DBRC return code |
LBA100
|
DFSFDLU0 is trying to verify that restart-read is correctly positioned on the latest OLDS. The locate-latest-OLDS request to DBRC failed. |
Reg15=RLWRLGB
|
LBA106
|
DFSFDLU0 failed in an attempt to reread the last good block from the data set on which it was originally found. |
Reg15=RLWRLGB
|
LBA110
|
DFSFDLU0 failed in an attempt to reread the last good block from the data set on which it was originally found. |
Reg15=RLWLGCE
RLWXSTAT=first XRF status flags byte RLWXSTT2=second XRF status flags byte |
LBA208
|
The OLDS is being terminated as part of an XRF takeover. RESERVEs of the OLDS and WADS are required, but have not been established. |
Reg15=RLWLNT
RLWEOPN=open OLDS flags |
OLDSCLR
|
An attempt to clear BSAM status (using CLOSE and OPEN) for the OLDS to terminate failed. |
Reg15=RLWLNT
RLWEOPN=open OLDS flags |
LDX0100
|
An attempt to clear BSAM status (using CLOSE and OPEN) for the OLDS to terminate failed. |
Reg15=RLWLNT
RLWEOPN=open OLDS flags |
LDX0200
|
An attempt to clear BSAM status (using CLOSE and OPEN) for the OLDS to terminate failed. |
For DFSFDLX0:
Module DFSFDLX0 is the driver for the OLDS read process. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg2=loop
counter Reg3=next entry in DFSFDLV0 address Reg15=RLWLGCE |
XTRANEXT
|
Should-never-occur logic error. DFSFDLX0 is searching transition entries in a partition of the STATE transition table, DFSFDLV0. All entries in the partition were searched without finding a match. All partitions should have as their last entry an entry that matches any condition. This entry should direct processing to STATE XS99, which abends. In addition, all partitions have a count of the number of entries in the partition. This count is used to initialize register 2. |
Reg15=RLWLGCE
|
XTRA3700
|
Should-never-occur logic error. An unexpected return code was returned by DFSFDLQ0. |
For DFSFDLY0:
Module DFSFDLY0 contains all the subroutines commonly used by the restart-read modules. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWTCF
RLWAREGF=return code from TRKCALC |
ANALEOF
|
The ANALEOF subroutine received a nonzero return code from TRKCALC. |
Reg15=RLWLGCE
RLWEOPN=open flags for OLDS |
LBN120
|
Should-never-occur logic error.
The OLSETM subroutine found no open OLDS. |
Reg2=log record address
Reg3=end of buffer address Reg4=log record length Reg15=RLWLSE |
LLC10R
|
The RCDSCH subroutine encountered a log record with an invalid length. |
Reg15=RLWTCF
|
LDG200
|
The OLDSCALC subroutine received a nonzero return code from TRKCALC. |
Reg15=RLWTCF
|
OLPNT
|
The OLPNT subroutine received a nonzero return code from TRKCALC. |
Reg15=RLWDBRCF
RLWDBRC=DBRC return code RLWAREQ=request passed to DBRC |
LTH150
|
The DBRCEXEC subroutine received an unexpected return code from DBRC. |
Reg5=DCB
Reg15=RLWLCF RLWEEXCP=exception flags |
LSC105
|
The SLCLS subroutine received an error attempting to CLOSE an SLDS. |
Reg15=RLWLGCE
|
LBP130
|
Should-never-occur logic error. |
Reg2=temporary
DSET entry Reg15=RLWLGCE RLWDSETE=DSET entry |
LBP130
|
Should-never-occur logic error. Either RLWDSETE or the temporary DSET is bad. |
For DFSFDLZ0:
Module DFSFDLZ0, during warm start or emergency restart, performs either OLDS read or SLDS read. The following table shows the codes and an explanation for the registers:
Key | Label | Description |
---|---|---|
Reg15=RLWLLFF
RLWALLOC=allocation flags |
LLA330
|
EOF occurred on a nonlast log data set. A request to DFSFDLN0 to allocate the next log data set failed. |
Reg15=RLWLSE
|
LLA440
|
EOF occurred on a nonlast log data set. A sequence error occurred while trying to locate the next record. |
Reg15=RLWLSE
|
LLA500
|
EOF occurred on a nonlast log data set. A sequence error occurred while trying to locate the next record. |
Reg15=RLWLSE
|
LLA600
|
EOF occurred on a nonlast log data set. A sequence error occurred while trying to locate the next record. |
System action
IMS terminates abnormally.
Problem determination
1, 5, 8, 11, 35
Save a copy of the OLDSs and WADSs.
List the DBRC RECON data set.