Openfire 3.7.1 with Oracle RAC


I am trying to configure Openfire 3.7.1 with Oracle RAC for achieving load balancing / fail over at Database level.

  • Does anyone configure Openfire 3.7.1 with Oracle RAC? If yes then please let me know the server url entry in openfire.xml configuration file.





select 1 from dual






Other than this database element change is there any changes are required.


We are running 11g R2 SE RAC.


Note that with RAC you have to use /servicename rather than :database

Do you have a specific error from Openfire when trying to connect to your RAC environment?

Thanks David.

By this way I am able to connect with Oracle RAC.

jdbc:oracle:thin:@(DESCRIPTION =


       address_list=(LOAD_BALANCE = on)(FAILOVER= on)

       (ADDRESS = (PROTOCOL = TCP)(HOST = ip1)(PORT = 1521))

       (ADDRESS = (PROTOCOL = TCP)(HOST = ip2)(PORT = 1521))




        (SERVICE_NAME = myservicename)



I am new to Oracle RAC and as per my assumption Oracle RAC provides database level clustering and Oralce Coherence provides XMPP Server level clustering.

Can Someone elaborate the exact purpose of Oracle Coherence and Oracle RAC against Openfire.

In case if am not using Openfire clustering(Oracle Coherence) but I enable only Oracle RAC, can we get the same behaviour / benefits.

Just I would like to confirm whether both purposes are different or not.


Coherence provides application clustering - This allows you to run multiple instances of Openfire which behave as a single environment. This can be used for load sharing and/or high availability.

RAC provides database clustering - It offers high availability to the backend database for Openfire.

You can run one, the other, or both, but they provide totally different functionality.

Thanks David.

Most probably in production environment planned to use Hardware Load balancer in front of all XMPP Servers and Oracle RAC. So this H/w Load balancer will share the load among all XMPP Servers and cover fail over (HA). Oracle RAC will provide database level clustering with HA. All XMPP Servers will access the same DB(Oracle RAC).

a) Without using Openfire Clustering :

Incase if anyone of XMPPserver is down then H/w load balancer will divert the traffic to other XMPP Server, due to accessing the same DB the other XMPP Server can manager to process the request. As per this article Hardware Load Balacer will support Server affinity.

b) Using Openfire Clustering:

My question is what additional behavior /benefits can we achieve using Openfire Clustering with Oracle Coherence.


After replacing with Oracle RAC Server details in openfire.xml configuration file I am getting RSA Certificate related error.

In Openfire Admin Console:

Under Server Properties section I am getting warning icon on Server name with tool tip as “Found RSA certificate that is not valid for the server domain”.

Its working fine If I turn back with previous server url.



please create a new thread for your RSA question.

The client and server send both an XML stream, if this stream breaks somewhere in the middle than it’s impossible for another server to continue using this socket and stream, even when you use Coherence.

If you have two active servers which use the same database and no clustering plugin then you will likely see 50% of the users on server1 and 50% of the users on server2. Anyhow the users an server1 can not see the users on server2 and vice versa. So you really want to use the clustering plugin to make sure that the users will stay happy.


Did you export your old database into the RAC environment. Start by reviewing the system properties - It’s nothing to do with RAC, but your databases are different.

Just I imported /opt/openfire/resources/database/openfire_oracle.sql into the RAC environment and changed the in openfire.xml configuration file and restarted the Openfire Server.

You will need to go through the Openfire setup again, or import your existing database into the RAC database. The SQL file just gives enough to build the tables and stuff - It certainly is not going to have your correct domain configured just by loading that.