Dashboard > Cookbook > Home > JTA - Jencks TranQL-Connector OracleXA
  Cookbook Log In View a printable version of the current page.  
  JTA - Jencks TranQL-Connector OracleXA
Added by Robert Varga, last edited by Robert Varga on Feb 17, 2006  (view change)
Labels: 
(None)

The following is what I pieced together from certain sources of how Jencks could be configured for JTA using the Oracle-XA driver to connect to Oracle.

<beans>
  <!--
         ###### Transaction manager ######
   -->


  <bean id="transactionContextManager" class="org.jencks.factory.TransactionContextManagerFactoryBean"/>
  <bean id="userTransaction" class="org.jencks.factory.GeronimoTransactionManagerFactoryBean"/>
  <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="userTransaction" ref="userTransaction"/>
  </bean>

  <!--
         ###### JCA ######
   -->

  <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.ConnectionManagerFactoryBean">
    <property name="transactionSupport">
      <ref local="transactionSupport"/>
    </property>
    <property name="poolingSupport">
      <ref local="poolingSupport"/>
    </property>
  </bean>

  <!--
         ###### Tranql ######
   -->

  <bean id="tranqlManagedConnectionFactory" class="org.tranql.connector.oracle.XAMCF">
    <property name="driverType" value="thin" />
    <property name="serverName" value="oracle.server.ip.address" />
    <property name="portNumber" value="1521" />
    <property name="serviceName" value="databasename" />
    <property name="userName" value="username" />
    <property name="password" value="password" />
  </bean>

  <bean id="dataSource" class="org.springframework.jca.support.LocalConnectionFactoryBean">
    <property name="managedConnectionFactory"><ref local="tranqlManagedConnectionFactory"/></property>
    <property name="connectionManager"><ref local="connectionManager"/></property>
  </bean>

</beans>

Note, however, that I have not tried it. I only adapted the DB-specific parts of the original example found in Tranql homepage to use the Oracle-specific version of TranQL-Connector, because XAPool and JOTM were not behaving properly. The original example is here: http://jencks.codehaus.org/Outbound+JDBC

 Unfortunately tranql-connector-oracle is not really in a tip-top shape, it was even hard to get by a distribution of it, not to mention building it. Therefore I do not put up the tranql-connector-oracle.jar because I am absolutely unsure if I would have built it correctly. If someone knows a place from where it can be obtained and built successfully, please, extend this post, so I can do some testing.

Site running on a free Atlassian Confluence Open Source Project License granted to Spring Framework. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) - Bug/feature request - Contact Administrators