/** * Re-creates/activates an AtomicAction for the specified * transaction Uid. */ public RecoverySubordinateATCoordinator( Uid rcvUid ) { super( rcvUid ) ; _activated = activate() ; }
/** * run parent activate and also make this coordinator visible if there might be a durable participant waiting * for it to commit. * @return */ public boolean activate() { boolean result = super.activate(); // if we cannot activate we want the participant which was registered on behalf of this // coordinator to produce a heuristic result for the transaction. it will do this if it // finds no entry for the coordinate in the subordinate coordinators list. in this case // the subordinate transaction record needs to left as is awaiting manual intervention. if (result) { // record that the activation worked setActivated(); int status = status(); if (status == ActionStatus.PREPARED || status == ActionStatus.COMMITTING) { // we need to install this coordinator in a global table so that the participant which // was driving it will know that it has been recovered but not yet committed SubordinateATCoordinator.addRecoveredCoordinator(this); } } return result; }
RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid); RecoverySubordinateATCoordinator rcvSubordinateCoordinator = new RecoverySubordinateATCoordinator(recoverUid); rcvSubordinateCoordinator.replayPhase2();
final int status = status(); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)}); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2( {0} ) finished", new Object[]{get_uid()}); RecoveryLogger.i18NLogger.warn_coordinator_at_RecoverySubordinateATCoordinator_4(get_uid());
/** * run parent activate and also make this coordinator visible if there might be a durable participant waiting * for it to commit. * @return */ public boolean activate() { boolean result = super.activate(); // if we cannot activate we want the participant which was registered on behalf of this // coordinator to produce a heuristic result for the transaction. it will do this if it // finds no entry for the coordinate in the subordinate coordinators list. in this case // the subordinate transaction record needs to left as is awaiting manual intervention. if (result) { // record that the activation worked setActivated(); int status = status(); if (status == ActionStatus.PREPARED || status == ActionStatus.COMMITTING) { // we need to install this coordinator in a global table so that the participant which // was driving it will know that it has been recovered but not yet committed SubordinateATCoordinator.addRecoveredCoordinator(this); } } return result; }
RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid); RecoverySubordinateATCoordinator rcvSubordinateCoordinator = new RecoverySubordinateATCoordinator(recoverUid); rcvSubordinateCoordinator.replayPhase2();
final int status = status(); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)}); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2( {0} ) finished", new Object[]{get_uid()}); RecoveryLogger.i18NLogger.warn_coordinator_at_RecoverySubordinateATCoordinator_4(get_uid());
/** * run parent activate and also make this coordinator visible if there might be a durable participant waiting * for it to commit. * @return */ public boolean activate() { boolean result = super.activate(); // if we cannot activate we want the participant which was registered on behalf of this // coordinator to produce a heuristic result for the transaction. it will do this if it // finds no entry for the coordinate in the subordinate coordinators list. in this case // the subordinate transaction record needs to left as is awaiting manual intervention. if (result) { // record that the activation worked setActivated(); int status = status(); if (status == ActionStatus.PREPARED || status == ActionStatus.COMMITTING) { // we need to install this coordinator in a global table so that the participant which // was driving it will know that it has been recovered but not yet committed SubordinateATCoordinator.addRecoveredCoordinator(this); } } return result; }
RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid); RecoverySubordinateATCoordinator rcvSubordinateCoordinator = new RecoverySubordinateATCoordinator(recoverUid); rcvSubordinateCoordinator.replayPhase2();
final int status = status(); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)}); RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2( {0} ) finished", new Object[]{get_uid()}); RecoveryLogger.i18NLogger.warn_coordinator_at_RecoverySubordinateATCoordinator_4(get_uid());
/** * Re-creates/activates an AtomicAction for the specified * transaction Uid. */ public RecoverySubordinateATCoordinator( Uid rcvUid ) { super( rcvUid ) ; _activated = activate() ; }
/** * Re-creates/activates an AtomicAction for the specified * transaction Uid. */ public RecoverySubordinateATCoordinator( Uid rcvUid ) { super( rcvUid ) ; _activated = activate() ; }