Skip to main content

Transaction Processing Facility (TPF) - Online Maintenance TPF : Support : Maintenance TPF : Support : Maintenance

JavaScript not Active

This page uses JavaScript. You must activate JavaScript in your browser to be sure youare able to view all of the information.

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  PJ25098  PJ25182  PJ27469  PJ27804  
FOR SEGMENT BCC240     (Assembler) - REL TPF4
 PJ23893  PJ24672  PJ25098  PJ25182  
 PJ25207  PJ27469  
FOR SEGMENT BJ1040     (C++)       - REL TPF4
 PJ27469  PJ27274  
FOR SEGMENT BKD740     (Assembler) - REL TPF4
 PJ25089  PJ25266  PJ26957  PJ27469  
FOR SEGMENT CJ32240    (Copy)      - REL TPF4
 PJ26522  PJ26662  PJ27076  PJ27393  PJ27380  
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. Source Listing Binary