AnsweredAssumed Answered

Alfresco and Oracle RAC

Question asked by joe.l3 on Jan 31, 2013
Latest reply on May 8, 2014 by mrogers
Hi,

the Alfresco Support FAQ reports Oracle RAC this is not a feature Alfresco have tested hence it is not officially supported or documented, but it is being used successfully by several customers in Alfresco Enterprise Network.
Alfresco also recommended to use OCI driver for JDBC-url. Here the example reported on alfresco support FAQ:


db.url=jdbc:oracle:oci:@(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = OFF) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP)
(HOST =HOST_1) (PORT = 1521)) (ADDRESS = (PROTOCOL = TCP) (HOST = HOST_2) (PORT = 1521)))
(CONNECT_DATA=(SERVICE_NAME = serviceName)(SERVER=DEDICATED)))


In my Test environment the OCI driver don't work!
I've configured a 2 nodes Oracle RAC 11.2.0.3 for Alfresco. Also the Oracle OCI and JDBC dirver is correctly installed on the alfresco machine, infact the sqlplus connection using alfresco user works fine:


$ env | grep LIBRARY
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib


$ sqlplus64  alfresco/alfpasswd@rac-scan-name:1521/ora-service-name
SQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 31 11:22:51 2013

Copyright © 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select * from cat;

TABLE_NAME             TABLE_TYPE
—————————— ———–
ACT_GE_BYTEARRAY          TABLE
ACT_GE_PROPERTY           TABLE
ACT_HI_ACTINST             TABLE
ACT_HI_ATTACHMENT          TABLE
ACT_HI_COMMENT             TABLE
ACT_HI_DETAIL             TABLE
[…..blablablabla….]


Using <strong>oci</strong> driver and ojdbc6.jar don't work:

### database connection properties ###
db.driver=oracle.jdbc.OracleDriver
db.username=alfresco
db.password=alfpasswd
db.url=jdbc:oracle:oci:@(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = OFF) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP) (HOST = racnode01) (PORT = 1521)) (ADDRESS = (PROTOCOL = TCP) (HOST = racnode02) (PORT = 1521))) (CONNECT_DATA=(SERVICE_NAME = ora-service-name)(SERVER=DEDICATED)))

Here the log exception:

2013-01-30 17:43:18,554  WARN  [hibernate.cfg.SettingsFactory] [main] Could not obtain connection metadata
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory….


Using <strong>thin</strong> driver works fine:

### database connection properties ###
db.driver=oracle.jdbc.OracleDriver
db.username=alfresco
db.password=alf421
db.url=jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (LOAD_BALANCE = OFF) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP) (HOST = racnode01) (PORT = 1521)) (ADDRESS = (PROTOCOL = TCP) (HOST = racnode02) (PORT = 1521))) (CONNECT_DATA=(SERVICE_NAME = ora-service-name)(SERVER=DEDICATED)))


Someone managed to properly use OCI in db.url?

Outcomes