OpenFire with Hazelcast clustering plugin: Session is not shared, Candy chat not working

We have Candy JS chat with two OpenFire 4.1.7 nodes sitting on LAN with Hazelcast clustering plugins 2.3.0. Plugins are set up to connect using tcp-ip and see each other just fine. Both OpenFire nodes are set to use the same SQL Server database.

Now, in case an initial binding request from C# code came to OpenFire server 1, and a subsequent JavaScript /http-bind/ request from Candy chat happened to come to OpenFire server 2, we’re getting “Root element ‘body’ does not contain a SID attribute value in parsed request data from [xx.x.x.xxx]” error and chat does not work.

I searched for that error and found it in OpenFire source code at https://github.com/igniterealtime/Openfire/blob/master/src/java/org/jivesoftware/openfire/http/HttpBindServlet.java. From comments there it looks like that error means Sessions are not shared between OpenFire servers.

Is such setup supposed to work? Any ideas of what is wrong?

Someone suggested it cannot work without sticky sessions. If so, then what is “clustering” Hazelcast plugin provides?

@akrherz

Hi @vkelman - We chatted on our site today, and after some digging, I don’t believe this is directly related to our software. It appears as though the “hazelcast clustering plugin” being referenced is from openfire, not Hazelcast. If I can help any further, you can reach me at vincent.blair@hazelcast.com.