private void printDSCContents() { if (logger.isLoggable(FINER)) { logger.log(FINER, getGMSContext().getServerIdentityToken() + ":DSC now contains ---------\n" + getDSCContents()); } }
private void printDSCContents() { if (logger.isLoggable(FINER)) { logger.log(FINER, getGMSContext().getServerIdentityToken() + ":DSC now contains ---------\n" + getDSCContents()); } }
void syncCache(final String memberToken, final boolean isCoordinator) throws GMSException { final ConcurrentHashMap<GMSCacheable, Object> temp; temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); final DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), isCoordinator); if (!memberToken.equals(getGMSContext().getServerIdentityToken())) { if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Sending sync message from DistributedStateCache to member " + memberToken); } sendMessage(memberToken, msg); } if (isCoordinator) { indicateFirstSyncDone(); } }
/** * Send <code>msg</code> to <code>member</code>. * * @param member if null, send <code>msg</code> to all members of the group * @param msg * @return boolean <code>true</code> if the message has been sent otherwise * <code>false</code>. <code>false</code>. is commonly returned for * non-error related congestion, meaning that you should be able to send * the message after waiting some amount of time. * @throws com.sun.enterprise.ee.cms.core.GMSException * */ private boolean sendMessage(final String member, final DSCMessage msg) throws GMSException { boolean sent = false; try { getGMSContext().getGroupCommunicationProvider().sendMessage(member, msg, true); sent = true; } catch (MemberNotInViewException e) { if (logger.isLoggable(Level.FINE)){ logger.log(Level.FINE, "Member " + member + " is not in the view anymore. Hence not performing sendMessage operation", e); } } catch (GMSException ge) { logger.log(Level.WARNING, "dsc.send.failed", new Object[]{member, msg}); } return sent; }
/** * Send <code>msg</code> to <code>member</code>. * * @param member if null, send <code>msg</code> to all members of the group * @param msg * @return boolean <code>true</code> if the message has been sent otherwise * <code>false</code>. <code>false</code>. is commonly returned for * non-error related congestion, meaning that you should be able to send * the message after waiting some amount of time. * @throws com.sun.enterprise.ee.cms.core.GMSException * */ private boolean sendMessage(final String member, final DSCMessage msg) throws GMSException { boolean sent = false; try { getGMSContext().getGroupCommunicationProvider().sendMessage(member, msg, true); sent = true; } catch (MemberNotInViewException e) { if (logger.isLoggable(Level.FINE)){ logger.log(Level.FINE, "Member " + member + " is not in the view anymore. Hence not performing sendMessage operation", e); } } catch (GMSException ge) { logger.log(Level.WARNING, "dsc.send.failed", new Object[]{member, msg}); } return sent; }
void syncCache(final String memberToken, final boolean isCoordinator) throws GMSException { final ConcurrentHashMap<GMSCacheable, Object> temp; temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); final DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), isCoordinator); if (!memberToken.equals(getGMSContext().getServerIdentityToken())) { if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Sending sync message from DistributedStateCache to member " + memberToken); } sendMessage(memberToken, msg); } if (isCoordinator) { indicateFirstSyncDone(); } }
void syncCache(final PeerID peerID, final boolean isCoordinator) throws GMSException { final ConcurrentHashMap<GMSCacheable, Object> temp; temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); final DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), isCoordinator); if (!peerID.getInstanceName().equals(getGMSContext().getServerIdentityToken())) { if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Sending sync message from DistributedStateCache to member " + peerID); } boolean result = ((GroupCommunicationProviderImpl)this.ctxRef.get().getGroupCommunicationProvider()).sendMessage(peerID, msg); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "synch cache sent result:" + result + " with member:" + peerID.getInstanceName() + " id:" + peerID); } } if (isCoordinator) { indicateFirstSyncDone(); } }
void syncCache(final PeerID peerID, final boolean isCoordinator) throws GMSException { final ConcurrentHashMap<GMSCacheable, Object> temp; temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); final DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), isCoordinator); if (!peerID.getInstanceName().equals(getGMSContext().getServerIdentityToken())) { if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Sending sync message from DistributedStateCache to member " + peerID); } boolean result = ((GroupCommunicationProviderImpl)this.ctxRef.get().getGroupCommunicationProvider()).sendMessage(peerID, msg); if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "synch cache sent result:" + result + " with member:" + peerID.getInstanceName() + " id:" + peerID); } } if (isCoordinator) { indicateFirstSyncDone(); } }
return retval; } else { final String thisMember = getGMSContext().getServerIdentityToken(); String remoteDSCMemberToken = memberToken; List<String> currentMembers = getGMSContext().getGroupHandle().getAllCurrentMembers(); if (!getGMSContext().isShuttingDown()) { ConcurrentHashMap<GMSCacheable, Object> temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), true); "getFromCacheForPattern(" + componentName + "," + memberToken + ")" + ": returning empty map. " + "reason: isShuttingDown()=" + getGMSContext().isShuttingDown() + " isCurrentMember=" + getGMSContext().getGroupHandle().getAllCurrentMembers().contains(memberToken));
return retval; } else { final String thisMember = getGMSContext().getServerIdentityToken(); String remoteDSCMemberToken = memberToken; List<String> currentMembers = getGMSContext().getGroupHandle().getAllCurrentMembers(); if (!getGMSContext().isShuttingDown()) { ConcurrentHashMap<GMSCacheable, Object> temp = new ConcurrentHashMap<GMSCacheable, Object>(cache); DSCMessage msg = new DSCMessage(temp, DSCMessage.OPERATION.ADDALLLOCAL.toString(), true); "getFromCacheForPattern(" + componentName + "," + memberToken + ")" + ": returning empty map. " + "reason: isShuttingDown()=" + getGMSContext().isShuttingDown() + " isCurrentMember=" + getGMSContext().getGroupHandle().getAllCurrentMembers().contains(memberToken));
private String getOldestCurrentMember(String exclude) { List<GMSMember> currentMembers = getGMSContext().getGroupHandle().getCurrentView(); GMSMember oldestMember = null; if (currentMembers != null) { for (GMSMember member : currentMembers) { if (member.getMemberToken().equals(exclude)){ continue; } if (oldestMember == null) { oldestMember = member; } if (member.getStartTime() < oldestMember.getStartTime()) { oldestMember = member; } } } return oldestMember == null ? null : oldestMember.getMemberToken(); }
private String getOldestCurrentMember(String exclude) { List<GMSMember> currentMembers = getGMSContext().getGroupHandle().getCurrentView(); GMSMember oldestMember = null; if (currentMembers != null) { for (GMSMember member : currentMembers) { if (member.getMemberToken().equals(exclude)){ continue; } if (oldestMember == null) { oldestMember = member; } if (member.getStartTime() < oldestMember.getStartTime()) { oldestMember = member; } } } return oldestMember == null ? null : oldestMember.getMemberToken(); }