Recently I tried to create an OpenFire cluster for redundancy. I faced some problems with this:
- Postgresql database misses indexes for relpication.
As my servers would be geographically distant I tried using Bucardo for multi-master replication so each server cah have it’s own database in case of a split. Bucardo is one of the most common tools to use with Postgresql.
While setting up replication I found that two tables do miss primary keys. That’s a prerequisite for good multi-master replication. I solved this by adding two indexes:
alter table ofmucconversationlog add primary key (roomid, sender, logtime); alter table ofpubsubnodegroups add primary key (serviceid, nodeid, rostergroup);
- Cluster fails to start.
When I fully created first server (even without setting up replication) I installed Hazelcast plugin and enabled cluster. OpenFire process becomes semi-locked after this, it can’t be stopped with
service openfired stop. I had to kill it by hand.
- FastPath doesn’t work.
When I install FastPath on one single server it works correctly (meaning I installed webchat plugin from http://community.igniterealtime.org/message/221248#221248). But when I enable clustering FastPath stops working - I can’t see it in Spark and it’s pages gets garbled.
- WebChat is bound to a host name supplied.
When installing WebChat plugin it asks for the server location. I want to specify current server, not just any other server in the cluster, so I need to enter
localhost.localdomain. After this WebChat looks for the workgroups in form firstname.lastname@example.org. Would there be any possibility to supply both parameters (server host and working domain) separately?