Clustering plugin for Openfire is now open source

Greetings every one,

Thank you for step by step, very helpful. I have some question, where can I find coherence 3.3.1? I cannot find any where, could anybody point where to find?

And second, Do the DNS need to configure VM1 and VM2 with same host-name but different IP?

Thanks Gaston and Xenz!

BTW, it looks like oracle replaced the version at their korean web and they put up 3.5.2, like in the rest of the pages.

I have a quick question regarding the automatic DR functionality that cluster plugin provides. Let’s say we have two nodes in a cluster and we announce both of them using DNS round robin. When the clients try to connect, first they resolve using DNS and then will try to connect of the servers randomly. What will happen if one of the nodes goes down? Can the client automatically connect to the other node?

Thanks in advance.

If you’re using round robin, try setting a low TTL value. It works more or less fine.

Thanks Sergio. But, I did not completely understand how the cluster plugin works for DR. My question is: What will happen if one of the nodes goes down? Can the client automatically connect to the other node?

Are there any other ways of using cluster feature (multiple nodes in a cluster running openfire) with out using DNS round robin and with out service interruption to the users?

Thanks

A long long long time ago in a distant world…I wrote a document about clustering and XMPP. In that doc I covered your question and the short answer is: In XMPP client to server connections are TCP long lived statefull connections (unless you are using http binding which are still statefull) so if your connection was lost for whatever reason then the client will need to reconnect and relogin and redo all the login stuff again. A year or so ago we were talking in the XMPP community about having a somewhat instantaneous reconnect that will avoid you from having to do a lot of the relogin stuff (e.g. ask for roster, send presence, etc.) but since then I lost track of it and don’t know what happened.

– Gato

Thanks Gato. But, I am still not clear about how cluster feature will help in terms of DR. Let’s consider something like this:

2 nodes in the cluster setup with a single DB and both the nodes announced in DNS SRV records for jabber. When clients connect, all the clients randomly get connected to either of the nodes. Now, let’s say at some point, one node goes down (not responding on 5222 port due to some reason): When a new client is trying to connect, DNS resolves both the nodes, in case client tries to connect to the server that went down, will the client attempt to connect to the other available node after a time-out for it’s connection attempt??

We would like to test this plugin in our setup, but just trying to understand the exact operation. In case, DNS round robin is not a proper way of announcing the available nodes, what are the other recommended ways??

Thanks in advance.

Did you consider using a couple of load balancers sharing the same virtual ip address and exchanging heartbeats to each other?

Hey Juesee,

This thread became too long so you might have overlooked the comments saying that you can download Coherence 3.5.2 (latest version) and following some simple steps you can use it with the plugin. There is no more need to use Coherence 3.3.1/389.

gmathias, I’m in the same place as you. I took a look at the coherence zip file from oracle…tangosol.jar (and coherence-loadbalancer.jar) are empty. It seems that every time I interact with oracle software I find myself dealing with stupid issues like this. Where in the world are we supposed to get the proper build of these jars? Can anyone share a valid build of coherence?

Pankaj, I’m seeing simular results.

Two systems :

System1 is running 2 VMs and clustering works great. Both nodes see each other.

System2 is running 1 VM and clustering appears to be enabled, howere is cannot see the other nodes.

I started a third VM on system1 and set it up the same as the VM on system2, all 3 openfire servers can see each other and are clustered on system1 but still nothing on system2.

I konw we are just missing somthing simple here but I cannot see it. :slight_smile:

Anyone know how the cluster plugin discovers the other nodes?

UPDATE

System1 - clustering appears to work for the 3 VMs installed on system1 but cannot see and of the openfire servers on system2

System2 - clustering appears to work for the 2 VMs installed on system2 but cannot see and of the openfire servers on system3

I’m confused here becuse the VMs should not know/care which host they are on. So how does the openfire cluster know that these are on the same host machine?

A bit more info:

I installed Openfre in the host OS on both system1 and system2.

Cluster is enabled but they can only see the local node. One physical computer cannot cluster with the other only VMs can so far.

I will next try to cluster a vm and a host server on the same machine.

I’ll post the results

Found the problem.

Server1 and Server2 were seperated by a switch. I move server2 to the same switch as server1 and after restarting OF all nodes are visible. :smiley:

But does this mean I’ll run into this same issue in the data center?

I plan on deploying nodes on different subnets for failover protection.

Anyone konw how the nodes discover each other? Can they be manually specified?

I’ve read this “http://www.igniterealtime.org/community/docs/DOC-1260” and I believe this is what I want, but I have not tested it yet.

Has anyone using MySQL Cluster NDB with OpenFire?

Anyone see a problme with using instead of replication?

Maybe I’ve missed something in all of this, but I’m having a similar problem. My clients authenticate when the server’s aren’t clustered, but when they are, they don’t authenticate. On top of it, I have the same afforementioned session monitoring issues.

Is this actually working for anyone, using coherence 3.5.4?

I’m not sure that anyone has. I was using the latest coherence versions with no luck. I can’t find 3.3.1 either to test before putting a purchase order in. I have to prove it works before getting the licenses, but I can’t find the correct version.

is anyone going to update clustering.jar so that it is compatible with the newer API of 3.5.x?

ramachandraraju,

Thanks for the offer, actually another user already provided me with the right coherence version, and tests show that the custer is operating wonderfully stable. I now have questions about the licensing more so… i.e. what my expected costs are for my 2-node cluster using this software would be. I have a call with Oracle scheduled. If you know that would be helpful too!

As for the load that a single server can handle, I don’t have that exact data, but I can tell you that my test results from my cluster showed some awesome results!

2-node cluster; each system 256M dedicated to java

Achieved 89k unique messages (offline/online) @ 1msg/5sec

800 unique users logged in

Each machine was using roughly 60-90% RAM allocated to Java

Processor was between 75-95%

Packet traffic was about 35k/min I believe, though don’t quote me on that one.

After that load point, increasing the traffic caused the cluster to tank. I had so many offline messages queued that it broke communication and they went nuts. Now this certainly wasn’t any emulation of real-world given the frequency of messaging to both online and offline users, but it does show that offline messages waiting in queue hurt more than online user communication… because after I brought the cluster back online the systems were pegged at full utilization until the queue died down (ran a script to log all 1200 users I had into the system to deliver the queued messages)… the queue cleared after about 6m.

I believe it was estimated that a single server could handle 1700 users… Others may have gotten this high… I personally wouldn’t want to run a java process that hot on a single server especially for a corporate deployment.

Hope this provides some insight. I’d recommend tuning the java process in the default launch items to specify both RAM and parallel garbage collectors!

Hi guys,

Can anyone help me on coherence-3.3.1 as I really having problem on finding and downloading it.

Really appreciate on the help …