Hi, I am using Jencks 1.2 + tranql with oracle adapter 1.0 to do local tests
of a JTA environment, using Geronimo Transaction Manager 1.0. 

When I deal with only plain jdbc and jms everything works fine, I can make
distributed transactions (commit and rollback) but when I try to use
Hibernate Session Factory(created thru Spring), I have this strange errors:

WARN Transaction - Unable to enlist XAResource
org.apache.geronimo.transaction.manager.WrapperNam [EMAIL PROTECTED],
errorCode: -3
oracle.jdbc.xa.OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleX AResource.java:1190)
at oracle.jdbc.xa.client.OracleXAResource.start(Oracl eXAResource.java:311)
at org.apache.geronimo.transaction.manager.WrapperNam
edXAResource.start(WrapperNamedXAResource.java:86)
at org.apache.geronimo.transaction.manager.Transactio
nImpl.enlistResource(TransactionImpl.java:173)
at org.apache.geronimo.transaction.context.Inheritabl
eTransactionContext.enlistResource(InheritableTran sactionContext.java:92)
at org.apache.geronimo.connector.outbound.Transaction
EnlistingInterceptor.getConnection(TransactionEnli stingInterceptor.java:53)
at org.apache.geronimo.connector.outbound.Transaction
CachingInterceptor.getConnection(TransactionCachin gInterceptor.java:81)
at org.apache.geronimo.connector.outbound.ConnectionH
andleInterceptor.getConnection(ConnectionHandleInt erceptor.java:43)
at org.apache.geronimo.connector.outbound.TCCLInterce
ptor.getConnection(TCCLInterceptor.java:39)
at org.apache.geronimo.connector.outbound.AbstractCon
nectionManager.allocateConnection(AbstractConnecti onManager.java:61)
at org.tranql.connector.jdbc.DataSource.getConnection (DataSource.java:56)
at org.springframework.orm.hibernate3.LocalDataSource
ConnectionProvider.getConnection(LocalDataSourceCo nnectionProvider.java:81)



and then:



Caused by: java.sql.SQLException: ORA-02089: COMMIT is not allowed in a
subordinate session

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBE rror.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:2 89)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol .java:1986)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe
(TTC7Protocol.java:880)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(
OracleStatement.java:2516)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTi
meout(OracleStatement.java:2850)
at oracle.jdbc.driver.OraclePreparedStatement.execute
Update(OraclePreparedStatement.java:609)
at oracle.jdbc.driver.OraclePreparedStatement.execute
Query(OraclePreparedStatement.java:537)
at org.tranql.connector.jdbc.PreparedStatementHandle.
executeQuery(PreparedStatementHandle.java:49)




I suspect the enlist error causes the second error. Any clues?






Here is my Spring configuration:

--------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd";>
<beans>
        <bean id="transactionContextManager"
class="org.jencks.factory.TransactionContextManagerFactoryBean"/>
        <bean id="userTransaction"
class="org.jencks.factory.GeronimoTransactionManag erFactoryBean"/>
        <bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTran sactionManager">
                <property name="userTransaction" ref="userTransaction"/>
        </bean>
        <bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSes sionFactoryBean"
lazy-init="true">
                <property name="mappingResources">
                        <list>
                                <value>queries.hbm.xml</value>
                        </list>
                </property>
                <property name="hibernateProperties">
                        <props>
                                <prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
                                <prop key="hibernate.show_sql">true</prop>
                                <prop
key="hibernate.cache.use_query_cache">true</prop>
                                <prop
key="hibernate.jdbc.fetch_size">200</prop>
                                <prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
                                <prop
key="hibernate.cglib.use_reflection_optimizer">
true
</prop>
                        </props>
                </property>
                <property name="dataSource">
                        <ref bean="dataSource"/>
                </property>
        </bean>
        <bean id="transactionSupport"
class="org.jencks.factory.XATransactionFactoryBean ">
                <property name="useTransactionCaching">
                        <value>true</value>
                </property>
                <property name="useThreadCaching">
                        <value>false</value>
                </property>
        </bean>
        <bean id="poolingSupport"
class="org.jencks.factory.SinglePoolFactoryBean">
                <property name="maxSize">
                        <value>2</value>
                </property>
                <property name="minSize">
                        <value>1</value>
                </property>
                <property name="blockingTimeoutMilliseconds">
                        <value>60</value>
                </property>
                <property name="idleTimeoutMinutes">
                        <value>60</value>
                </property>
                <property name="matchOne">
                        <value>true</value>
                </property>
                <property name="matchAll">
                        <value>true</value>
                </property>
                <property name="selectOneAssumeMatch">
                        <value>true</value>
                </property>
        </bean>
        <bean id="connectionManager"
class="org.jencks.factory.ConnectionManagerFactory Bean">
                <property name="transactionSupport">
                        <ref local="transactionSupport"/>
                </property>
                <property name="poolingSupport">
                        <ref local="poolingSupport"/>
                </property>
        </bean>
        <!-- Interceptor de transacao -->
        <bean id="transIntercept"
class="org.springframework.transaction.interceptor .TransactionInterceptor">
                <property name="transactionManager">
                        <ref bean="transactionManager"/>
                </property>
                <property name="transactionAttributes">
                        <props>
                                <prop
key="*">PROPAGATION_REQUIRES_NEW,-Exception</prop>
                        </props>
                </property>
        </bean>
        <bean id="dataSource"
class="org.springframework.jca.support.LocalConnec tionFactoryBean">
                <property name="managedConnectionFactory">
                        <ref bean="tranqlManagedConnectionFactory"/>
                </property>
                <property name="connectionManager">
                        <ref bean="connectionManager"/>
                </property>
        </bean>
        <bean id="tranqlManagedConnectionFactory"
class="org.tranql.connector.oracle.XAMCF">
                <property name="driverType" value="thin"/>
                <property name="serverName" value="host"/>
                <property name="portNumber" value="port"/>
                <property name="serviceName" value="int"/>
                <property name="userName" value="user"/>
                <property name="password" value="pas"/>
        </bean>
        <bean id="connectionFactory"
class="org.springframework.jca.support.LocalConnec tionFactoryBean">
                <property name="managedConnectionFactory">
                        <ref local="jmsManagedConnectionFactory"/>
                </property>
                <property name="connectionManager">
                        <ref local="connectionManager"/>
                </property>
        </bean>
</beans>

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.5/425 - Release Date: 22/8/2006
 

Reply via email to