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.