public void startRecovery ( RecoveryLogFactory fac ) { if ( tc . isEntryEnabled ( ) ) Tr . entry ( tc , "startRecovery" , fac ) ; // This is a stand alone server. HA can never effect this server so direct local recovery now. RecoveryDirector director = null ; try { director = RecoveryDirectorFactory . recoveryDirector ( ) ; /* @LI1578-22A */ director . setRecoveryLogFactory ( fac ) ; ( ( RecoveryDirectorImpl ) director ) . driveLocalRecovery ( ) ; /* @LI1578-22C */ } catch ( RecoveryFailedException exc ) { FFDCFilter . processException ( exc , "com.ibm.ws.recoverylog.spi.RecLogServiceImpl.startRecovery" , "421" , this ) ; if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "Local recovery failed." ) ; // if (tc.isEntryEnabled()) Tr.exit(tc, "start", "RuntimeError"); // throw new RuntimeError("Unable to complete local recovery processing", exc); } catch ( InternalLogException ile ) { FFDCFilter . processException ( ile , "com.ibm.ws.recoverylog.spi.RecLogServiceImpl.startRecovery" , "478" , this ) ; if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "Local recovery not attempted." , ile ) ; // if (tc.isEntryEnabled()) Tr.exit(tc, "start", "RuntimeError"); // throw new RuntimeError("Unable to complete local recovery processing", ile); } if ( director != null && _isPeerRecoverySupported ) // used to test _recoveryGroup != null { if ( checkPeersAtStartup ( ) ) { try { if ( director instanceof LibertyRecoveryDirectorImpl ) { ( ( LibertyRecoveryDirectorImpl ) director ) . drivePeerRecovery ( ) ; } } catch ( RecoveryFailedException exc ) { FFDCFilter . processException ( exc , "com.ibm.ws.recoverylog.spi.RecLogServiceImpl.startRecovery" , "421" , this ) ; if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "Local peer failed." ) ; } } } if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "startRecovery" ) ; }
Driven by the runtime during server startup . This hook is used to perform recovery log service initialization .