IBM®
Skip to main content
    United States [change]      Terms of use
 
 
   
     Home      Products      Services & solutions      Support & downloads      My account     
     
  TPF : Support : Maintenance : TPFDF
SUBJECT:         APAR  NUMBER: PQ48551
 
REFERENCE:  AREA:     TPFDF CENTRAL DATABASE ROUTINES
            SEGMENT:  C$IBTREE13 - RELEASE:  TPFDF (C-Header)
            SEGMENT:  IFL0DF13   - RELEASE:  TPFDF (Dsect)
            SEGMENT:  SW00SR13   - RELEASE:  TPFDF (Macro)
            SEGMENT:  UFTB13     - RELEASE:  TPFDF (C)
            SEGMENT:  UFTH13     - RELEASE:  TPFDF (C)
            SEGMENT:  UFT613     - RELEASE:  TPFDF (C)
            SEGMENT:  UWAA13     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWAG13     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWAP13     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWBC13     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWB413     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWB713     - RELEASE:  TPFDF (Assembler)
            SEGMENT:  UWB913     - RELEASE:  TPFDF (Assembler)
 
 
Pre-requisite APARs are (TPF only) :
FOR SEGMENT C$IBTREE13 (C-Header)  - REL TPFDF
      PN73989 PN76765 PN76852 PN84101 PQ32210
FOR SEGMENT IFL0DF13   (Dsect)     - REL TPFDF
 PQ32210  PQ46459  
FOR SEGMENT SW00SR13   (Macro)     - REL TPFDF
      AN31299 PN05393 PN37569 PN38613 PN43714 PN46560 PN57526
      PN61834 PN64313 PN71161 PN71348 PN73989 PN77016 PN76852
      PN80488 PN83423 PN84757 PN87917 PN92097 PQ00790 PQ02145
 PQ04911  PQ05189  PQ07995  PQ10797  
 PQ10084  PQ15475  PQ16897  
 PQ21506  PQ24625  PQ23091  PQ25824  
 PQ25825  PQ32209  PQ36911  
 PQ37963  PQ32210  PQ50275  
FOR SEGMENT UFTB13     (C)         - REL TPFDF
      PN73989 PN80446
FOR SEGMENT UFTH13     (C)         - REL TPFDF
      PN73989 PN76765 PN76852 PN80446 PQ02782 PQ05367 PQ07440
 PQ27182  
FOR SEGMENT UFT613     (C)         - REL TPFDF
      PN73989 PN80446 PQ18933
FOR SEGMENT UWAA13     (Assembler) - REL TPFDF
 PQ32210  PQ47099  
FOR SEGMENT UWAG13     (Assembler) - REL TPFDF
 PQ32210  PQ46459  PQ50275  
FOR SEGMENT UWAP13     (Assembler) - REL TPFDF
 PQ32210  
FOR SEGMENT UWBC13     (Assembler) - REL TPFDF
 PQ32210  PQ48582  
FOR SEGMENT UWB413     (Assembler) - REL TPFDF
 PQ32210  
FOR SEGMENT UWB713     (Assembler) - REL TPFDF
 PQ32210  PQ42198  
FOR SEGMENT UWB913     (Assembler) - REL TPFDF
 PQ32210  PQ46459  
To be applied in the order listed for each segment.
 
ABSTRACT OF PROBLEM
___________________
B+Tree  problems  including  the  B+Tree not being used when the
prime data block becomes empty,  a  DB0100  system  error  being
issued  instead of a DBB100, and primary key up organized causes
an invalid backward chain address.
 
COMMENTS ON PROBLEM
___________________
1 - B+Tree processing maintains the reference of the  root  node
in  the  prime  data  block.    If the prime block becomes empty
(except in the case of DBDEL ALL), LRECs are never added to  the
prime  data  block again.  The B+Tree index is not used when the
prime block is empty. As a result, the B+Tree index is not  used
on subsequent accesses of the subfile.
 
2  -  Currently,  when B+Tree processing returns an invalid file
address, TPFDF issues a DB0100 system error. Instead,  a  DBB100
system error should occur since it is a B+Tree processing error.
 
3  - A situation might arise where a B+Tree file is created that
uses full backward chaining and LRECs are added in reverse order
so that each new LREC added  precedes  all  existing  LRECs,  as
determined  by the primary key.  In such a situation, when a new
data block is required, the data  block  before  the  last  data
block  in  the  chain  always  has  an  incorrect backward chain
address.   Instead of containing the  address  of  the  previous
block  on the chain, it contains the address of the prime block.
The block contains an incorrect backward chain  address  because
the  block  containing  the  correct  backward chain address was
never filed to DASD.
 
SOLUTION
________
1 - Segments C$IBTREE, SW00SR, UFTH, UFT6, UWAA, UWAG, and  UWAP
have been updated so that B+Tree indexing will be used to locate
LRECs when the prime block is empty but a node block exists.  If
the  prime  block is empty, a node block exists, and the node is
empty, B+Tree processing in  segment  UFTB  returns  a  -1  file
address  to  the central database routines.  It will then follow
the same code path as if B+Tree  processing  did  not  find  the
target data block, meaning that a sequential search will be per-
formed  in  an  attempt  to locate the LREC.   Also, the node is
deleted when the B+TREE file is empty.
 
 
2 - Segments UWB9 and IFL0DF have been updated  so  that  if  an
error  is  returned  during  the B+Tree search for a data block,
system error DBB100 is issued instead of system error DB0100.
 
3 - In segments UWBC, UWB4 and UWB7 whenever the backward  chain
field  of  a  block is updated, the  block  will  be filled with
zeros in the first byte of the program stamp field.   This  will
force the block update to be written to DASD.
 
DEPENDENCIES
____________
 
Related Segments Affected By This APAR.
_______________________________________
 
Segments to be assembled or compiled:
None.
 
Segments to be link edited:
On ALCS: TPFDFH3
On TPF : UFTH
 
Migration Considerations
========================
None
 
-- END APAR PQ48551
 
 


Download file(s) using new Server: Login once to access server, leave window open, then click on link(s) below.
Package
 

    About IBM Privacy Contact