Skip to main content

TPF : Support : Maintenance TPF : Support : Maintenance

Skip to: Abstract | Comments | Solution | Migration | Download

APAR NUMBER:  PJ30241                           
PRODUCT:  TPF4  
FUNCTIONAL AREA:  COMMIT/ROLLBACK SUPPORT  
SHIPPED IN PUT:  20  
   

ABSTRACT:  
A DB0146 system error is incorrectly issued when TXCMC is issued from a  
TPFDF program without a preceding TXBGC.  
APAR CONTENTS:  
FEATURE   TYPE                STATUS    NAME                                
Base      Macro               New       macro/ctmcr.mac  
Base      Macro               Changed   macro/txbgc.mac  
Base      Macro               Changed   macro/txcmc.mac  
Base      Macro               Changed   macro/txrbc.mac  
Base      Macro               Changed   macro/txrsc.mac  
Base      Macro               Changed   macro/txspc.mac  
Base      C                   Changed   source/rt/base/ccomic.c  
   
PREREQUISITE APARS:  To be applied in order listed.  
Base      C                   Changed   source/rt/base/ccomic.c  
 PJ25411(09)  PJ26366(11)  PJ26746(12)  PJ27023(12)  
 PJ27785(15)  
   

COMMENTS:  
When a TXCMC API is issued to commit a global transaction, interface  
segment ccomic.c is called. This segment checks to see if a TXBGC API  
has been previously issued to begin a commit scope by checking for a  
nonzero value in CE2TMCR. If a zero value is found, a TX_PROTOCOL_ERROR  
is returned to the user. However, if a TPFDF file is open when TXCMC is  
issued, the check for CE2TMCR is not done before the TPFDF exit in  
segment CL80 is called. CL80 assumes that CE2TMCR is nonzero. As a  
result, the code incorrectly does a comparison against low core, which  
leads to unpredictable results, possibly including a DB0146 (open TPFDF  
file is detected while closing the commit scope) system error.  
   

SOLUTION:  
Check to see whether TXBGC has been issued before calling TXCMC code.  
In segment ccomic.c, move the check of field CE2TMCR to see whether  
TXBGC has been called before calling the TPFDF exit. If it has not been  
called, do not call segment CL80 to process the TXCMC command and,  
instead, return a TX_PROTOCOL_ERROR. In addition, create macro CTMCR to  
provide equates for the return values from the transaction manager  
APIs, and update those API macros to include macro CTMCR.  
   
   

DEPENDENCIES  
   
SEGMENTS TO BE ASSEMBLED OR COMPILED:  
None.  
   
SEGMENTS TO BE LINK EDITED:  
ctal40.exe (Shipped in Tar File)  
   
COREQS:  
PK03608  
   

MIGRATION CONSIDERATIONS:  
None.  
   
UPDATED INFORMATION UNITS:  
TPF General Macros  
   
See your IBM representative if you need additional information.  
   

DOWNLOAD INSTRUCTIONS:  
http://www.ibm.com/software/htp/tpf/pages/maint.htm
   
-- END APAR PJ30241 
       


Download file(s): Login once to access server, leave window open, then click on link(s) below. Source Listing Binary