public boolean recover ( RecoveryManager recoveryManager , ClassLoader cl , Xid [ ] xids ) { boolean success = true ; // flag to indicate that we recovered all RMs if ( tc . isEntryEnabled ( ) ) Tr . entry ( tc , "recover" , new Object [ ] { this , _failureScopeController . serverName ( ) } ) ; final int restartEpoch = recoveryManager . getCurrentEpoch ( ) ; final byte [ ] cruuid = recoveryManager . getApplId ( ) ; for ( PartnerLogData pld : _partnerLogTable ) { if ( ! pld . recover ( cl , xids , null , cruuid , restartEpoch ) ) { success = false ; } // Determine if shutdown processing started on another thread. // If it has, no further action can be taken. if ( recoveryManager . shutdownInProgress ( ) ) { success = false ; break ; } } if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "recover" , success ) ; return success ; }
Determine XA RMs needing recovery .