Hi all, I'm trying to setup a XA Datasource configuration in Tomcat 7 with an Oracle database.
I have spent a long time trying to set that configuration up without any success. I have read the following blog entry which is i think the only ressource that deals with this subject : http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency with the "Pooling connections from other data sources" paragraph. Here is the configuration i have done in my context.xml file : <Resource > factory="org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory" > name="jdbc/mydatasource-xa" password="password" > type="oracle.jdbc.xa.client.OracleXADataSource" user="userName" > databaseName="databaseName" serverName="myDatabaseHost" portNumber="1522" /> > > <Resource abandonWhenPercentageFull="50" auth="Container" > dataSourceJNDI="mydatasource-xa" > factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" initialSize="5" > jdbcInterceptors="ResetAbandonedTimer" logAbandoned="true" maxActive="20" > maxAge="0" maxIdle="10" maxWait="0" minEvictableIdleTimeMillis="120000" > minIdle="5" name="jdbc/mydatasource" removeAbandoned="true" > removeAbandonedTimeout="600" testOnBorrow="true" > timeBetweenEvictionRunsMillis="30000" type="javax.sql.XADataSource" > validationInterval="30000" validationQuery="select 1 from dual" /> and here is the exception i have when the application starts : 2014-08-27 08:25:49,748 [default-startStop-1] ERROR > org.apache.tomcat.jdbc.pool.ConnectionPool- Unable to create initial > connections of pool. > java.sql.SQLException: Invalid Oracle URL specified: > OracleDataSource.makeURL > at oracle.jdbc.pool.OracleDataSource.makeURL(OracleDataSource.java:1277) > at oracle.jdbc.pool.OracleDataSource.getURL(OracleDataSource.java:1025) > at > oracle.jdbc.xa.client.OracleXADataSource.getPooledConnection(OracleXADataSource.java:205) > at > oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:156) > at > oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:101) > at > org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDataSource(PooledConnection.java:218) > at > org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:180) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) > at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486) > at > org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144) > at > org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) > at > org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) > at > org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:554) > at > org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:242) > at > org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141) > at > javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) > at org.apache.naming.NamingContext.lookup(NamingContext.java:842) Any help would be greatly appreciated. Regards. Sylvain