I have several issues trying to set up a Openfire cluster on Amazon AWS. I am running Openfire 4.0.2 with the Hazelcast 2.2.0 plugin on two ubuntu instances.
Issue #1 Clustering: My instances form seperate clusters on each server containing only one node.
I have tried calling aws ec2 describe-instances in the AWS-CLI and I discovered all instances, however hazelcast doesn't seem to find any.
hazelcast-cache-config.xml:
<join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="false"/>
<aws enabled="true">
<access-key>***************</access-key>
<secret-key>*</secret-key>
<host-header>ec2.amazonaws.com</host-header>
<tag-key>type</tag-key>
<tag-value>hz-members</tag-value>
</aws>
</join>
Logs:
2016.09.14 10:58:07 org.jivesoftware.openfire.plugin.util.cache.ClusteredCacheFactory - No cluster members selected for cluster task org.jivesoftware.openfire.session.GetSessionsCountTask
2016.09.14 10:59:16 org.jivesoftware.openfire.plugin.util.cache.ClusteredCacheFactory - No cluster members selected for cluster task org.jivesoftware.util.PropertyClusterEventTask
2016.09.14 11:21:52 com.hazelcast.cluster.impl.TcpIpJoinerOverAWS - [*.*.*.*]:5701 [openfire] [3.5.1] No EC2 instances found!
Info Logs:
2016.09.14 11:32:48 com.hazelcast.instance.DefaultAddressPicker - [LOCAL] [openfire] [3.5.1] Prefer IPv4 stack is true.
2016.09.14 11:32:48 com.hazelcast.instance.DefaultAddressPicker - [LOCAL] [openfire] [3.5.1] Picked Address[172.31.*.*]:5701, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true
2016.09.14 11:32:49 com.hazelcast.spi.OperationService - [172.31.*.*]:5701 [openfire] [3.5.1] Backpressure is disabled
2016.09.14 11:32:49 com.hazelcast.spi.impl.operationexecutor.classic.ClassicOperationExecutor - [172.31.*.*]:5701 [openfire] [3.5.1] Starting with 2 generic operation threads and 2 partition operation threads.
2016.09.14 11:32:50 com.hazelcast.system - [172.31.*.*]:5701 [openfire] [3.5.1] Hazelcast 3.5.2 (20150826 - ba8dbba) starting at Address[172.31.*.*]:5701
2016.09.14 11:32:50 com.hazelcast.system - [172.31.*.*]:5701 [openfire] [3.5.1] Copyright (c) 2008-2015, Hazelcast, Inc. All Rights Reserved.
2016.09.14 11:32:50 com.hazelcast.instance.Node - [172.31.*.*]:5701 [openfire] [3.5.1] Creating AWSJoiner
2016.09.14 11:32:50 com.hazelcast.core.LifecycleService - [172.31.*.*]:5701 [openfire] [3.5.1] Address[172.31.*.*]:5701 is STARTING
2016.09.14 11:32:51 com.hazelcast.cluster.impl.TcpIpJoinerOverAWS - [172.31.*.*]:5701 [openfire] [3.5.1]
Members [1] {
Member [172.31.*.*]:5701 this
}
2016.09.14 11:32:51 com.hazelcast.core.LifecycleService - [172.31.*.*]:5701 [openfire] [3.5.1] Address[172.31.*.*]:5701 is STARTED
2016.09.14 11:32:51 com.hazelcast.partition.InternalPartitionService - [172.31.*.*]:5701 [openfire] [3.5.1] Initializing cluster partition table first arrangement...
2016.09.14 11:32:51 org.jivesoftware.util.cache.CacheFactory - Clustering started; cache migration complete
2016.09.14 11:32:52 org.jivesoftware.openfire.plugin.util.cache.ClusterListener - Joined cluster as node: 56889eeb-5fdd-4cb2-a001-c8c3e99b0b4d. Senior Member: YES
2016.09.14 11:33:55 org.jivesoftware.util.cache.CacheFactory - Created cache [org.jivesoftware.openfire.plugin.util.cache.ClusteredCacheFactory] for Locked Out Accounts
Issue #2 Sessions: As soon as my Load Balancer register the second instance as 'InService' my Strophe JS client start getting connection issues:
I am not sure if this error can be solved by modifying the Openfire configuration or that I have to change something in my XMPP client.
strophe.js:4771 POST http://chat.*.com:7070/http-bind/ 404 (Invalid SID value.)
Logs:
2016.09.14 11:24:12 org.jivesoftware.openfire.http.HttpBindServlet - Client provided invalid session: 3x8s6wet2w. [*.*.*.*]