Transaction Processing Facility (TPF) - Online MaintenanceTPF : Support : Maintenance TPF : Support : Maintenance
SUBJECT: APAR NUMBER: PJ27874 (HIPER)
REFERENCE: AREA: RECOUP
SEGMENT: BCC140 - RELEASE: TPF4 (Assembler)
SEGMENT: BCC240 - RELEASE: TPF4 (Assembler)
SEGMENT: BJ1040 - RELEASE: TPF4 (C++)
SEGMENT: BKD740 - RELEASE: TPF4 (Assembler)
SEGMENT: CJ32240 - RELEASE: TPF4 (Copy)
Pre-requisite APARs are:
FOR SEGMENT BCC140 (Assembler) - REL TPF4
PJ23893 PJ25098PJ25182PJ27469PJ27804
FOR SEGMENT BCC240 (Assembler) - REL TPF4
PJ23893 PJ24672PJ25098PJ25182PJ25207PJ27469
FOR SEGMENT BJ1040 (C++) - REL TPF4
PJ27469PJ27274
FOR SEGMENT BKD740 (Assembler) - REL TPF4
PJ25089PJ25266PJ26957PJ27469
FOR SEGMENT CJ32240 (Copy) - REL TPF4
PJ26522PJ26662PJ27076PJ27393PJ27380
To be applied in the order listed for each segment.
ABSTRACT OF PROBLEM
___________________
TPFCS PIDs stored in TPF files may not be recouped & database
corruption may occur, an OPR-0200FA TO2 UNABLE TO ALLOCATE
MALLOC STORAGE system error may occur running recoup, and
TO2_ACTIVE_USER is recouped twice.
COMMENTS ON PROBLEM
___________________
The persistent identifiers (PIDs) of TPF collection support
(TPFCS) collections can be stored in traditional TPF records,
such as is done with the TPF file system (POSIX). The code to
support the chasing of these PIDs in segments BCC1 and BCC2
assumes that registers R15 and R10, respectively, will be pre-
served across an invocation of the MALOC macro. This is not a
valid assumption, and as a result, the embedded PIDs may not be
recouped, which could lead to database corruption.
In addition, the file system descriptor (BKD7) has a check for a
zero PID that is not coded correctly. This check is unnecessary
because this condition is checked for by the recoup code itself.
Also, phase I of recoup is not properly releasing TPFCS environ-
ments when processing collections. As a result, malloc storage
may be depleted, and an OPR-0200FA TO2 UNABLE TO ALLOCATE MALLOC
STORAGE system error may occur.
Finally, the TO2_ACTIVE_USER collection in the TPFDB data store
is unnecessarily recouped twice and causes a misleading PIDS
COMPLETED count to be generated.
SOLUTION
________
Segments BCC1 and BCC2 have been updated to use register R6 to
contain the address of the PID across the MALOC calls.
Descriptor BKD7 has been updated to remove the unnecessary check
for a zero PID.
Segment BJ10 has been updated to release the recoup data store
environment immediately as soon as it is no longer needed, and
to release the data store environment when appropriate. Also,
all calls to the TO2_ APIs are made using the data store envi-
ronment.
Copy member CJ322 of segment CJ005 has been modified to no
longer specially add the TO2_ACTIVE_USER collection, since a
previous call to internal method recoupDS() already does that
processing.
DEPENDENCIES
____________
Related Segments Affected By This APAR.
_______________________________________
Segments to be assembled or compiled:
CJ005
Segments to be link edited:
BJ10 CJ00
Load Modules to be loaded:
BJ10 CJ00
Migration Considerations
========================
None
-- END APAR PJ27874
Download file(s):
Login once to access server, leave window open, then
click on link(s) below.