powered by Jive Software

Openfire with cluster?


I have an IM environment using Openfire, and it is quite neccessary for us to add a clustering system. The server is 3.5.2, but we will update it to 3.6.2 soon.

Is the clustering plugin available for Openfire nowadays? If there is only a commercial option, we would be interested in more information about it.

Is there any other possiblility to implement a clustering system with Openfire? Any suggest or idea?

Thanks in advance.


I have the same need\issue at our company. We are looking into setting up 2 systems using heartbeat on linux and replicating the database with mysql replication.

I’d love to know if anyone has done this before or if other people have configured clustering in another manner that works better.


Hi Diego,

please read http://www.igniterealtime.org/community/thread/33762 or any other Clustering thread.


thanks for the response

In short I’m not looking to write code that will utilize the written clustering plugins. If there is not an official clustering solution I would like to find out if anyone has implemented an out of the box clustering solution, such as heartbeat, mon, and database replication. If not I’ll work on testing this in my lab and I’ll share the results with everyone. I’m not really worried about the amount of users on my systems, load balancing. But I do have the need to make sure IM is up as close to 5 days as possible.

thanks again.


Hi Jason,

unless you install the monitoring (RRD) plugin Openfire does not write too much to the database. If you can accept that roster changes and offline messages within the last 0-24h are lost in case of a failure you can even use a daily database backup for a standby server.

If you have an application layer switch available you can even automate the take-over task, or you may want to use something like http://siag.nu/pen/


I have started testing this but its not something we need and I haven’t had time to revisit. But my plan was to use either master/slave syncronization on mysql to keep the db in sync, or drbd to use a network raid fs so mysql will always have the most current db. I started with master/slave sync and was going that route. Then I use heartbeat to handle the shared ip and failover. I am guessing you mention mon so you can monitor the process to make sure its up. That wasn’t in my plans. but doing the above should give a nice active/passive setup and be good for high availability. The mysql sync was my first stab at it which is why I didn’t finish quickly. heartbeat and mon will have no trouble with this. and for the shared ip you would want that to have your jabber server name space, this should (hopefully) take care of any issues that might come up if using sso. I really want to finish this up if I have time so its still on my mind and I will post results. as to LG above, pen is a great load balancer but much better at handling http traffic. I say that because it doesn’t correctly pass the originating ip and web servers can be modified to get the originating ip, but nothing else. so as far as openfire it would look like everyone was connecting from the same place. and that would be load balanced and not HA

Thanks for the response and thats exactly what we are looking to do. I look forward to hearing how that worked out for you. I’ll also be doing the same on my side and I’ll post my results when were done as well.

thanks, have a great weekend


Hi Jason,

load balanced and not HA” is one option of Pen, but one can also use the emergency option to make sure that server2 is only accessed when server1 is not reachable.


I’ve been searching these forums for awhile and I’m still unclear. Forgive me if this has been answered already.

I get that the clustering plugin requires a license and is not open source. However, I’m not able to find it. Is it available for download/evaluation anywhere?

Does anyone have any personal experience regarding the ‘auto-switch-after-failure’ setup? Is this really a reasonable replacement for clustering?

It is not available at all anymore. It is no longer supported.