У меня есть конфигурация в моем конфигурационном файле весны. Я использую Spring3, Hibernate4 и Tomcat7.настроить менеджер транзакций jta с помощью весны?
<jee:jndi-lookup id="wcDataSource" jndi-name="java:comp/UserTransaction" resource-ref="false" environment-ref="remoteEnv" />
<util:properties id="remoteEnv">
<prop key="java.naming.provider.url">jnp://jndi.myURL.me:1099</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="jnp.disableDiscovery">true</prop>
</util:properties>
<bean id="dataSourceKS" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClassName}" />
<property name="jdbcUrl" value="${url}" />
<property name="user" value="${username}" />
<property name="password" value="${password}" />
<!-- pool sizing -->
<property name="initialPoolSize" value="15" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="20" />
<property name="acquireIncrement" value="3" />
<property name="maxStatements" value="6000" />
<property name="maxStatementsPerConnection" value="300" />
</bean>
<bean name="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSourceKS"/>
<property name="annotatedClasses">
<list>
<value>com.sample.MyBean</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>
</bean>
Теперь, как я могу настроить JTATransactionManager
здесь, чтобы использовать @Transactional? Здесь у меня есть wcDataSource
и dataSourceKS
. Благодаря!
Спасибо!
JTA сложно, в лучшем случае, чтобы работать, особенно при работе с удаленными ресурсами. Ваш источник данных также должен быть удаленным поиском, вероятно, с того же сервера, он должен быть по крайней мере XA-совместимым и должен/должен быть известен базовой реализации JTA tx. Затем вам также нужно будет настроить hibernate соответствующим образом (для стартеров вместо 'datasource' установите' jtaDataSource' в 'LocalSessionFactoryBean'). –
Вы должны взглянуть на эту [ссылку] (http://www.byteslounge.com/tutorials/spring-jta-multiple-resource-transactions-in-tomcat-with-atomikos-example), вот что пытаются делать. (Atomikos является их собственной реализацией jta-менеджера, но весенняя конфигурация будет такой же) –
Arnaud, пожалуйста, укажите ссылку ... – user755806