Ok, so basically i would like to know how to cluster servers. Now before anyone recommends me the plugin that is official in Openfire and uses Oracle Coherence or the other “open-clustering” plugin, i’ll say that i have tried them out and they are not working for me (i am using Openfire 3.7.0).
Basically i would like to achive a goal if one machine drops offline, then another machine can still keep going and users in the server won’t notice the difference. I understand that there is a load balancer needed and most likely a separate database, but could it also be possible to have the same database on each of the cluster servers and the databases would be kept in sync? If thats possible, how to do that?
But first of all i guess a working clustering plugin is needed.
If any of you has another idea about how to achive a goal on how to avoid downtime by having multiple Openfire servers with the same databases etc, then please do tell.
If you dig around the discussions a little someone posted an updated clustering plugin for 3.7.0, as well as the jar files for Coherence 3.3.1 (3.4 and above are not supported with Openfire). You can get the clustering working with 3.7.0 without too many headaches.
I backend Openfire with Oracle RAC, which has multiple front-end database servers with shared backend storage. You can probably setup an active/passive database configuration with shared storage using most database platforms.
Even with the clustering plugin and a redundant database, when the Openfire server goes down any users on it will have to reconnect to other servers available in the cluster. Depending what your SLA is, you can probably get away with running a service clustering environment and just restarting Openfire on another box when it goes down. Everyone will have to reconnect, but it’s less work than clustering the whole app and running a load balancer.
Thank you for the information. Although i did find the Oracle Coherence 3.3.1, 3 jar files which were updated and i used them. Also i tried several different clustering plugins i found. All options failed. If you would be so kind and actually provide links to your claims, it would help me out a lot. For example a link to the clustering plugin you used and to Oracle Coherence files, i used these here and it still did not work.
You replaced the clustering.jar with the one I attached earlier, and deleted the ‘clustering’ directory from ‘plugins’ so it will unpack the new jar next time it is restarted?
Shoot me a private message and I’ll send you a zip of my openfire installation. I seem to recall the backtrace you are seeing when I was originally working on the clustering configuration, but don’t recall specifically what I did to work around it.
Then get the updated clustering plugin from this location http://community.igniterealtime.org/message/211434#211434 upload the “clustering.jar” to plugins folder, start openfire and then stop openfire. Get files from “clustering_src.zip” and extract-overwrite them to the plugins folder “clustering”.
Start Openfire again and it should work. You will see some errors, but it seems they wont disturb anything.
I’m afraid in 3.7.1 the clustering plugin does not work anymore. At least i haven’t found a way to make it work. I would recommend you to try eJabbered XMPP server, they have more developers etc. I love Openfire, but unfortunently i can’t contribute any developing support to it. Hopefully something happens and it gets better over time. Altho it has only 1 developer so things don’t look good, better to try or look more alternatives if you are using XMPP in your buisness and it’s very important there. (Yes i know that plugins have different developers etc, just saying)
I have problem to open the link http://community.igniterealtime.org/message/213130#213130 to get the Oracle coherence 3.3 jar files to support OpenFire 3.7.1 Clustering. I cannot download Coherence 3.3 from Oracle site, they don’t support it anymore.
I go the “Unauthorized” page when I clicked this link.
I am pretty sure that it is blocked because coherence is not open source so ignite should not be distributing it. It was posted to the forum by a user, and probably never should have been.
You could also try using Hazelcast (OSS) with a nightly build. It was just added in recently and will give a completely free solution (with regards to clustering).