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 ABEND to 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:

Module DFSFDLO0 contains several subroutines used by the OLDS read transition STATE routines in module DFSFDLQ0.
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).
The following table shows the codes and an explanation for the registers:
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.

Source

IMS abends

Module

DFSFDLY0, DFSFDLN0, DFSFDLO0, DFSFDLP0, DFSFDLQ0, DFSFDLX0, DFSFDLZ0