import javax.transaction.UserTransaction;
import javax.transaction.TransactionManager;
public class TransactionExample {
private UserTransaction userTransaction;
public TransactionExample(UserTransaction userTransaction) {
this.userTransaction = userTransaction;
}
public void executeTransaction() {
try {
userTransaction.begin();
// ...
userTransaction.commit();
} catch (Exception e) {
try {
userTransaction.rollback();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
<bean id="userTransactionService" class="com.atomikos.icatch.service.UserTransactionServiceImp"
init-method="init" destroy-method="shutdownForce"/>
<bean id="userTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"/>
<bean id="atomikosDataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean">
<property name="uniqueResourceName" value="dataSource"/>
<property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>
<property name="xaProperties">
<props>
<prop key="databaseName">mydb</prop>
<prop key="serverName">localhost</prop>
<prop key="port">3306</prop>
<prop key="user">root</prop>
<prop key="password">password</prop>
</props>
</property>
<property name="poolSize" value="10"/>
</bean>