Cannot connect to Oracle RAC

Hello,

I am in the process of converting our database to use an Oracle RAC with two nodes in the cluster. This will be primarily for High Availability (that is, we are not using it for load balancing). I modified the openfire.xml configuration file, specifying the server url like so:

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@(DESCRIPTION =

(

address_list=(load_balance=off)(failover=on)

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

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = my_service_name)

)

)

username

secret

5

15

1.0

When starting Openfire I get the following:

2009.03.25 08:44:06 [org.jivesoftware.database.ConnectionPool.(ConnectionPool.java:111)] Faile

d to create new connections on startup. Attempt 0 of 3

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)

at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:414)

at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)

at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at org.jivesoftware.database.ConnectionPool.createCon(ConnectionPool.java:443)

at org.jivesoftware.database.ConnectionPool.(ConnectionPool.java:88)

at org.jivesoftware.database.DefaultConnectionProvider.start(DefaultConnectionProv ider.java:

at org.jivesoftware.database.DbConnectionManager.setConnectionProvider(DbConnectio nManager.j

ava:459)

at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager .java:77)

at org.jivesoftware.util.JiveProperties.loadProperties(JiveProperties.java:330)

at org.jivesoftware.util.JiveProperties.init(JiveProperties.java:72)

at org.jivesoftware.util.JiveProperties$JivePropertyHolder.(JiveProperties .java:39)

at org.jivesoftware.util.JiveProperties.getInstance(JiveProperties.java:51)

at org.jivesoftware.util.JiveGlobals.getProperty(JiveGlobals.java:524)

at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:327)

at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:434)

at org.jivesoftware.openfire.XMPPServer.(XMPPServer.java:155)

And, of course, Openfire doesn’t start.

Has anyone successfully configured Openfire to connect to an Oracle RAC service?

Environment Notes:

Server is running CentOS 5.1

Openfire 3.4.4

Oracle 10g w/ RAC

Oracle 10 jdbc driver

Any help would be greatly appreciated!

TIA,

Mike L.

I see a lot of views, but no responses.

Does anyone know of anyone using Oracle RAC with Openfire?

Does anyone know if the Enterpise version of Openfire supports this? Is there separate support and/or information for Openfire Enterprise?

TIA,

Mike

Hi Mike,

I assume that this works fine when you use the simple JDBC connection string to connec to a single database, so there are no routing problems or hostnames which can not be resolved. Anyhow the IO Exception is thrown by the Oracle driver so I wonder if there is a connection problem.

There are only a few Openfire installations which use the Oracle RDBMS as far as I can tell, and it looks like no one uses RAC so far.

There is no enterprise version, also the former Enterprise Plugin was made open source.

LG

LG:

Thanks for your response. You are correct - when I use the simple syntax and just specify one of the nodes of the cluster (and its SID instead of the service name), then it connects just fine. I had already tried that (in fact, that is how the connection is currently setup in our test environment). But would, of course, like to be able to take advantage of failover capabilities…

I will look further into network connectivity issues, perhaps it is related to that (although I doubt it). I will post my findings here.

Thanks again,

Mike L.

DOH! Well, do I feel silly. Yesterday I asked our DBA to review the service & listener settings for the three new database instances he created a few weeks ago and, guess what? Yeah, after he made some changes to the listener everything works now - like a champ. So, in retrospect, I should have believed that it was one of the two things indicated elsewhere. I.e. either the connection string or the listener. Thanks again.

Hi Mike,

so you may also want to ask your DBA about http://forums.oracle.com/forums/ann.jspa?annID=201

You still use within your settings oracle.jdbc.driver.OracleDriver so I assume that you are using a 9i or 10g driver.

You may want to update the driver to 11g as it fixes a few driver bugs.

LG

LG:

Yes, we are using Oracle 10g w/ RAC and the 10g jdbc driver. I will look into using the 11g jdbc driver.

Thanks again,

Mike L.