public synchronized boolean clearIfNotInUse ( ) { if ( tc . isEntryEnabled ( ) ) Tr . entry ( tc , "clearIfNotInUse" , new Object [ ] { _recoveryId , _recoveredInUseCount } ) ; boolean cleared = false ; if ( _loggedToDisk && _recoveredInUseCount == 0 ) { try { if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "removing recoverable unit " + _recoveryId ) ; // As it is logged to disk, we must have a _partnerLog available _partnerLog . removeRecoverableUnit ( _recoveryId ) ; _loggedToDisk = false ; _recoveryId = 0 ; cleared = true ; } catch ( Exception e ) { FFDCFilter . processException ( e , "com.ibm.ws.Transaction.JTA.PartnerLogData.clearIfNotInUse" , "218" , this ) ; if ( e instanceof WriteOperationFailedException ) { Tr . error ( tc , "WTRN0066_LOG_WRITE_ERROR" , e ) ; } else { Tr . error ( tc , "WTRN0000_ERR_INT_ERROR" , new Object [ ] { "clearIfNotInUse" , "com.ibm.ws.Transaction.JTA.PartnerLogData" , e } ) ; } // Just ignore the error and clean it up on the next server run } } if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "clearIfNotInUse" , cleared ) ; return cleared ; }
Clears the recovery log record associated with this partner from the partner log if this partner is not associated with current transactions . If this partner is re - used the logData call will allocate a new recoverable unit and re - log the information back to the partner log .