When setting up the 7.6 and higher TIBCO Spotfire Server for clustering with Hazelcast you may see an issue where the first TIBCO Spotfire Server starts, but subsequent servers in the cluster fail to start. You will see the following in the server.log:
INFO 2017-03-02T22:27:39,685-0600 [*Initialization*] server.cluster.HazelcastClusterBase: Cluster instance 'spotfire' is created.
WARN 2017-03-02T22:27:39,685-0600 [*Initialization*] server.cluster.HazelcastInstanceHolder: Cluster members count is not equal online servers count./nCurrent cluster members: Member [TSSname1]:5701 this ||
Current online servers: [TSSname2, Version=7.7.0 , isPrimus=true, ServerId=b5a7dc52-770b-4b52-8c24-2fde78c78f15, Addresses=[TSSname2, 192.168.0.93, 10.20.64.85]] [TSSname1, Version=7.7.0 HF-002, isPrimus=false, ServerId=6a5ae436-d62d-409b-b979-b322d7492999, Addresses=[TSSname1, 192.168.0.92, 10.20.64.83]]
ERROR 2017-03-02T22:27:39,685-0600 [*Initialization*] server.cluster.RetryHelper: Function execution failed. Retry count: 1
java.lang.IllegalStateException: failed to validate cluster consistency
at com.spotfire.server.cluster.HazelcastInstanceHolder.lambda$init$8(HazelcastInstanceHolder.java:112)
at com.spotfire.server.cluster.RetryHelper.doWithRetry(RetryHelper.java:59)
at com.spotfire.server.cluster.HazelcastInstanceHolder.init(HazelcastInstanceHolder.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
...