* that prevents this component from being used
*/
public void start()
throws LifecycleException {
if (started)
throw new LifecycleException
(sm.getString("cluster.alreadyStarted"));
log.info("Cluster is about to start");
try {
MethodUtils.invokeMethod(getContainer(), "addValve", valve);
clusterReceiver.setIsSenderSynchronized(clusterSender.getIsSenderSynchronized());
clusterReceiver.setCatalinaCluster(this);
clusterReceiver.start();
clusterSender.start();
membershipService.setLocalMemberProperties(clusterReceiver.getHost(),clusterReceiver.getPort());
membershipService.addMembershipListener(this);
membershipService.start();
this.started = true;
} catch ( Exception x ) {
log.error("Unable to start cluster.",x);
throw new LifecycleException(x);
}
}