JAva分散トランザクション
19825 ワード
1.既存のシナリオ
a.atomikos
b.jotm
説明:spring 3.0 jotmのサポートを蹴り落としました
2.atomikos使用時のpom.xmlコンテンツ
3.atomikosを使用する場合、jtaをサポートしていない接続プール、例えばc 3 p 0を使用することはできません.
4.springの配合は以下の通りである.
5.サービスでは、次のようにラベルを使用してトランザクションを実現します.
6.詳細:
springのエージェントdatasourceを使用してspringにトランザクションを管理し、パフォーマンスの問題を解決し、8倍に向上させることを提案しています.次の接続を参照してください.
http://blog.sina.com.cn/s/blog_53765cf9010176zx.html
まだ確認していないので、時間を見つけて見てみましょう.
a.atomikos
b.jotm
説明:spring 3.0 jotmのサポートを蹴り落としました
2.atomikos使用時のpom.xmlコンテンツ
<!-- -atomikos-begin -->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-api</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jta</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-jdbc</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>atomikos-util</artifactId>
<version>3.9.1</version>
</dependency>
<!-- -atomikos-end -->
3.atomikosを使用する場合、jtaをサポートしていない接続プール、例えばc 3 p 0を使用することはできません.
4.springの配合は以下の通りである.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:db.properties"/>
</bean>
<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close" lazy-init="true">
<property name="uniqueResourceName" value="dataSource" />
<property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
<property name="xaProperties">
<props>
<prop key="url">${db.url}</prop>
<prop key="user">${db.username}</prop>
<prop key="password">${db.password}</prop>
</props>
</property>
<property name="poolSize" value="10"/>
<property name="maxPoolSize" value="100"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="userTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" init-method="init" destroy-method="shutdownForce">
<constructor-arg>
<props>
<prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory</prop>
</props>
</constructor-arg>
</bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" depends-on="userTransactionService">
<property name="forceShutdown" value="false" />
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp" depends-on="userTransactionService">
<property name="transactionTimeout" value="300" />
</bean>
<bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" depends-on="userTransactionService">
<property name="transactionManager" ref="atomikosTransactionManager" />
<property name="userTransaction" ref="atomikosUserTransaction" />
</bean>
<tx:annotation-driven transaction-manager="jtaTransactionManager" />
5.サービスでは、次のようにラベルを使用してトランザクションを実現します.
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
public void TestTransaction() throws Exception{
}
6.詳細:
springのエージェントdatasourceを使用してspringにトランザクションを管理し、パフォーマンスの問題を解決し、8倍に向上させることを提案しています.次の接続を参照してください.
http://blog.sina.com.cn/s/blog_53765cf9010176zx.html
まだ確認していないので、時間を見つけて見てみましょう.