SUBJECT: APAR NUMBER: PQ47099
REFERENCE: AREA: TPFDF CENTRAL DATABASE ROUTINES
SEGMENT: C$CDFEQ13 - RELEASE: TPFDF (C-Header)
SEGMENT: TPFDB13 - RELEASE: TPFDF (Macro)
SEGMENT: UFGASO13 - RELEASE: TPFDF (Copy)
SEGMENT: UFGESO13 - RELEASE: TPFDF (Copy)
SEGMENT: UWAA13 - RELEASE: TPFDF (Assembler)
Pre-requisite APARs are (TPF only) :
FOR SEGMENT C$CDFEQ13 (C-Header) - REL TPFDF
PN57135 PN61834 PN74617 PN83423 PN91920 PN91521 PQ08645
PQ25825 PQ28550 PQ32209 PQ32210
FOR SEGMENT TPFDB13 (Macro) - REL TPFDF
PN30016 PN40034 PN41095 PN43714 PN55118 PN61834 PN64719
PN72208 PN73989 PN83423 PN86337 PN87893 PN89980 PQ06194
PQ13787 PQ27195 PQ25824 PQ25825 PQ32209 PQ36156 PQ32210
FOR SEGMENT UFGASO13 (Copy) - REL TPFDF
PN84867 PN86534 PQ00810 PQ32210
FOR SEGMENT UFGESO13 (Copy) - REL TPFDF
PN84867 PN86534 PQ00810 PQ05192 PQ10088 PQ32209 PQ32210
FOR SEGMENT UWAA13 (Assembler) - REL TPFDF
PQ32210
To be applied in the order listed for each segment.
ABSTRACT OF PROBLEM
___________________
Currently, there is no way for an application to force TPFDF to
use the B+Tree index when adding an LREC or to request a B+Tree
file to be packed when closed.
COMMENTS ON PROBLEM
___________________
1. The first access of a B+Tree file uses the B+Tree index to
locate the proper block. The index can locate the wanted
block using few I/Os. However, if an LREC is added subse-
quently, the index is not automatically used and there is no
way to force the index to be used. If this add is not
sequential, this can cause unnecessary I/O.
2. Packing a TPFDF file at close time eliminates LREC spare
slots left after LRECs have been deleted during a trans-
action.
B+Tree files can be large databases. Therefore, packing a
B+Tree file can be a resource intensive operation.
Currently, TPFDF is designed to prevent applications from
packing a B+Tree file to avoid this resource drain. The
only method to pack B+Tree files is to use ZUDFM OAP or
CRUISE.
SOLUTION
________
1. The USEBTREE parameter for DBADD has been introduced with
this APAR. Now, the application can force TPFDF to use the
B+Tree index to add an LREC.
The USEBTREE parameter will be ignored if not used on a
B+Tree file.
2. TPFDF has been updated to no longer ignore a pack request
during the close processing of a B+Tree file.
DEPENDENCIES
____________
Related Segments Affected By This APAR.
_______________________________________
Segments to be assembled or compiled:
On TPF - UFGAIC, UFGEIC
On ALCS - UFGA, UFGE
Segments to be link edited:
On TPF - CTDF
On ALCS - TPFDFC3
Migration Considerations
After this APAR has been applied, TPFDF will now:
1. Use the B+Tree index to add LRECs after the B+Tree file has
been accessed if the USEBTREE parameter with the DBADD macro
or the DFADD_USEBTREE dfadd function. See the following for
an example on how to use the USEBTREE parameter:
DBOPN REF=IR76DF,HOLD
**********************************************************
* FIRST ADD WITHOUT BTREE USES BTREE INDEX TO LOCATE BLOCK
**********************************************************
DBADD REF=IR76DF,NEWLREC=ID60K86,UNIQUE,ERROR=ERRTWICE
MVC ID60A80(15),=C'THE SECOND LREC'
**********************************************************
* THEN ADD WITH USEBTREE OPTION. THE BTREE INDEX IS USED
**********************************************************
DBADD REF=IR76DF,NEWLREC=ID60K86,UNIQUE,USEBTREE
2. If the USEBTREE parameter is coded with DBADD and the file
is not a B+Tree file the following MNOTE warning will be
issued:
4,DBADD USEBTREE PARAMETER IGNORED; ONLY VALID FOR B+TREE FILES
3. The B+Tree index can be packed during close processing.
However, B+Tree databases should be packed with care due to
resources required to pack large database. See the fol-
lowing coding example for using the PACK parameter:
DBOPN REF=IR76DF,REG=R7
DBDEL REF=IR76DF,LRECNBR=R4
**********************************************************
* THE BTREE FILE WILL BE PACKED
**********************************************************
DBCLS REF=IR76DF,PACK
-- END APAR PQ47099
Download file(s) using new Server:
Login once to access server, leave window open, then
click on link(s) below.
|