public void membershipChanged(Vector deadMembers,
Vector newMembers,
Vector allMembers) {
MDC.put("RegexEventEvaluator", "End membershipChange.*");
ArrayList removed = new ArrayList();
ArrayList added = new ArrayList();
ArrayList members = new ArrayList();
changeLog.info("Begin membershipChanged info, hostname="+hostname);
changeLog.info("DeadMembers: size="+deadMembers.size());
for(int m = 0; m < deadMembers.size(); m ++)
{
AddressPort addrInfo = getMemberAddress(deadMembers.get(m));
removed.add(addrInfo);
changeLog.info(addrInfo);
}
changeLog.info("NewMembers: size="+newMembers.size());
for(int m = 0; m < newMembers.size(); m ++)
{
AddressPort addrInfo = getMemberAddress(newMembers.get(m));
added.add(addrInfo);
changeLog.info(addrInfo);
}
changeLog.info("AllMembers: size="+allMembers.size());
for(int m = 0; m < allMembers.size(); m ++)
{
AddressPort addrInfo = getMemberAddress(allMembers.get(m));
members.add(addrInfo);
changeLog.info(addrInfo);
}
// Notify the trigger MBean
if( triggerServiceName != null )
{
changeLog.info("Invoking trigger service: "+triggerServiceName);
try
{
Object[] params = {removed, added, members, CHANGE_NAME};
String[] sig = {"java.util.ArrayList", "java.util.ArrayList",
"java.util.ArrayList", "java.lang.String"};
server.invoke(triggerServiceName, "membershipChanged", params, sig);
}
catch(Throwable t)
{
changeLog.error("Failed to notify trigger service: "+triggerServiceName, t);
log.debug("Failed to notify trigger service: "+triggerServiceName, t);
}
}
changeLog.info("End membershipChanged info, hostname="+hostname);
MDC.remove("RegexEventEvaluator");
}
Called when a new partition topology occurs. |