public boolean volunteerForPrimary() { if (logger.isDebugEnabled()) { logger.debug("Sender : {} is volunteering for Primary ", this.sender.getId()); } if (advisePrimaryGatewaySender() == null) { if (!adviseEldestGatewaySender()) { if (logger.isDebugEnabled()) { logger.debug("Sender {} is not the eldest in the system. Giving preference to eldest sender to become primary...", this.sender); } return false; } if (logger.isDebugEnabled()) { logger.debug("Sender : {} no Primary available. So going to acquire distributed lock", this.sender); } this.lockService.lock(this.lockToken, 10000, -1); return this.lockService.isHeldByCurrentThread(this.lockToken); } return false; }
/** * When the sender profile is removed, * then check for the primary members if they are not available then this secondary sender should volunteer for primary */ @Override protected void profileRemoved(Profile profile) { if (profile instanceof GatewaySenderProfile) { GatewaySenderProfile sp = (GatewaySenderProfile)profile; if (!sp.isParallel) {// SerialGatewaySender //if there is a primary sender, then don't volunteer for primary if (advisePrimaryGatewaySender() != null) { return; } if (!this.sender.isPrimary()) {//IF this sender is not primary if (!adviseEldestGatewaySender()) {//AND this is not the eldest sender if (logger.isDebugEnabled()) { logger.debug("Sender {} is not the eldest in the system. Giving preference to eldest sender to become primary...", this.sender); } return; } launchLockObtainingVolunteerThread(); } } } }
if (!adviseEldestGatewaySender()) {// AND this is not the eldest
/** * When the sender profile is removed, * then check for the primary members if they are not available then this secondary sender should volunteer for primary */ @Override protected void profileRemoved(Profile profile) { if (profile instanceof GatewaySenderProfile) { GatewaySenderProfile sp = (GatewaySenderProfile)profile; if (!sp.isParallel) {// SerialGatewaySender //if there is a primary sender, then don't volunteer for primary if (advisePrimaryGatewaySender() != null) { return; } if (!((SerialGatewaySenderImpl)this.sender).isPrimary()) {//IF this sender is not primary if (!adviseEldestGatewaySender()) {//AND this is not the eldest sender logger.fine("Sender " + this.sender + " is not the eldest in the system. Giving preference to eldest sender to become primary..."); return; } launchLockObtainingVolunteerThread(); } } } }
if (!adviseEldestGatewaySender()) {// AND this is not the eldest
public boolean volunteerForPrimary() { if (logger.fineEnabled()) { logger.fine("Sender : " + this.sender.getId() + " is volunteering for Primary "); } if (advisePrimaryGatewaySender() == null) { if (!adviseEldestGatewaySender()) { logger.fine("Sender " + this.sender + " is not the eldest in the system. Giving preference to eldest sender to become primary..."); return false; } if (logger.fineEnabled()) { logger.fine("Sender : " + this.sender + " no Primary available. So going to acquire distributed lock"); } this.lockService.lock(this.lockToken, 10000, -1); return this.lockService.isHeldByCurrentThread(this.lockToken); } return false; }