Atomikos Forum |
|
Hi
I am using atomikos 3.5.5 to set up distributed transaction for Oracle. I am declaring the AtomikosDataSourceBean in Spring context and using the setXaDataSource method to pass the XADataSource which is obtained from JNDI. The AtomikosDataSourceBean gets instantiated properly but when the connection pool is getting created it threw me the following error: aused by: java.lang.IllegalArgumentException: interface oracle.jdbc.internal.ClientDataSupport is not visible from class loader at java.lang.reflect.Proxy.getProxyClass(Proxy.java:353) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581) at com.atomikos.util.ClassLoadingHelper.newProxyInstance(ClassLoadingHelper.java:68) at com.atomikos.util.ClassLoadingHelper.newProxyInstance(ClassLoadingHelper.java:72) at com.atomikos.util.ClassLoadingHelper.newProxyInstance(ClassLoadingHelper.java:72) at com.atomikos.jdbc.AtomikosConnectionProxy.newInstance(AtomikosConnectionProxy.java:247) at com.atomikos.jdbc.AtomikosXAPooledConnection.doCreateConnectionProxy(AtomikosXAPooledConnection.java:109) at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:72) at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:163) at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:313) at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:365) at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) JNDI Configuration: <Resource auth="Container" name="DBJTAXA" description="MySrcDBJTAXA" factory="org.apache.naming.factory.BeanFactory" type="oracle.jdbc.xa.client.OracleXADataSource" user="user" password="pwd" URL="someURL" /> AomikosDataSourceBean: <bean id="AomikosDataSourceBean" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close" lazy-init="false" > <property name="uniqueResourceName" value="jtaDataSource" /> <property name="xaDataSource" ref="JTAXADataSource" /> <property name="maxPoolSize" value="${propertiesDataSource.maxActive}" /> <property name="borrowConnectionTimeout" value="${propertiesDataSource.maxWait}" /> <property name="testQuery" value="select 1 from dual" /> </bean> JNDI lookup for XA DataSource: <bean id="JTAXADataSource" class="org.springframework.jndi.JndiObjectFactoryBean" scope="singleton"> <property name="jndiName"> <value>DBJTAXA</value> </property> <property name="resourceRef" value="true"/> </bean> |