| <?xml version="1.0" encoding="utf-8" standalone="yes"?> |
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> |
| <channel> |
| <title>Transaction on ShardingSphere</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/</link> |
| <description>Recent content in Transaction on ShardingSphere</description> |
| <generator>Hugo -- gohugo.io</generator> |
| <language>en-us</language> |
| |
| <atom:link href="https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/index.xml" rel="self" type="application/rss+xml" /> |
| |
| |
| <item> |
| <title>Use Java API</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/java-api/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/java-api/</guid> |
| <description>Import Maven Dependency &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-jdbc-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using XA transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using BASE transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-base-seata-at&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; Use Distributed Transaction TransactionTypeHolder.set(TransactionType.XA); // Support TransactionType.LOCAL, TransactionType.XA, TransactionType.BASE try (Connection conn = dataSource.getConnection()) { // Use ShardingSphereDataSource conn.setAutoCommit(false); PreparedStatement ps = conn.prepareStatement(&#34;INSERT INTO t_order (user_id, status) VALUES (?, ?)&#34;); ps.setObject(1, 1000); ps.setObject(2, &#34;init&#34;); ps.executeUpdate(); conn.commit(); } </description> |
| </item> |
| |
| <item> |
| <title>Use Spring Boot Starter</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/spring-boot-starter/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/spring-boot-starter/</guid> |
| <description>Import Maven Dependency &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-jdbc-core-spring-boot-starter&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using XA transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using BASE transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-base-seata-at&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; Configure Transaction Manager @Configuration @EnableTransactionManagement public class TransactionConfiguration { @Bean public PlatformTransactionManager txManager(final DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean public JdbcTemplate jdbcTemplate(final DataSource dataSource) { return new JdbcTemplate(dataSource); } } Use Distributed Transaction @Transactional @ShardingTransactionType(TransactionType.XA) // Support TransactionType.</description> |
| </item> |
| |
| <item> |
| <title>Use Spring Namespace</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/spring-namespace/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/spring-namespace/</guid> |
| <description>Import Maven Dependency &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-jdbc-core-spring-namespace&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using XA transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- import if using BASE transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-base-seata-at&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; Configure Transaction Manager &lt;!-- ShardingDataSource configuration --&gt; &lt;!-- ... --&gt; &lt;bean id=&#34;transactionManager&#34; class=&#34;org.springframework.jdbc.datasource.DataSourceTransactionManager&#34;&gt; &lt;property name=&#34;dataSource&#34; ref=&#34;shardingDataSource&#34; /&gt; &lt;/bean&gt; &lt;bean id=&#34;jdbcTemplate&#34; class=&#34;org.springframework.jdbc.core.JdbcTemplate&#34;&gt; &lt;property name=&#34;dataSource&#34; ref=&#34;shardingDataSource&#34; /&gt; &lt;/bean&gt; &lt;tx:annotation-driven /&gt; &lt;!-- Enable auto scan @ShardingTransactionType annotation to inject the transaction type before connection created --&gt; &lt;sharding:tx-type-annotation-driven /&gt; Use Distributed Transaction @Transactional @ShardingTransactionType(TransactionType.</description> |
| </item> |
| |
| <item> |
| <title>Atomikos Transaction</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/atomikos/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/atomikos/</guid> |
| <description>The default XA transaction manager of Apache ShardingSphere is Atomikos. |
| Data Recovery xa_tx.log generated in the project logs folder is necessary for the recovery when XA crashes. Please keep it. |
| Update Configuration Developer can add jta.properties in classpath of the application to customize Atomikos configuration. For detailed configuration rules. |
| Please refer to Atomikos official documentation for more details.</description> |
| </item> |
| |
| <item> |
| <title>Bitronix Transaction</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/bitronix/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/bitronix/</guid> |
| <description>Import Maven Dependency &lt;propeties&gt; &lt;btm.version&gt;2.1.3&lt;/btm.version&gt; &lt;/propeties&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-jdbc-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-bitronix&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.codehaus.btm&lt;/groupId&gt; &lt;artifactId&gt;btm&lt;/artifactId&gt; &lt;version&gt;${btm.version}&lt;/version&gt; &lt;/dependency&gt; Customize Configuration Items Please refer to Bitronix official documentation for more details. |
| Configure XA Transaction Manager Type Yaml: |
| props: xa-transaction-manager-type: Bitronix SpringBoot: |
| spring: shardingsphere: props: xa-transaction-manager-type: Bitronix Spring Namespace: |
| &lt;shardingsphere:data-source id=&#34;xxx&#34; data-source-names=&#34;xxx&#34; rule-refs=&#34;xxx&#34;&gt; &lt;props&gt; &lt;prop key=&#34;xa-transaction-manager-type&#34;&gt;Bitronix&lt;/prop&gt; &lt;/props&gt; &lt;/shardingsphere:data-source&gt; </description> |
| </item> |
| |
| <item> |
| <title>Narayana Transaction</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/narayana/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/narayana/</guid> |
| <description>Import Maven Dependency &lt;propeties&gt; &lt;narayana.version&gt;5.9.1.Final&lt;/narayana.version&gt; &lt;jboss-transaction-spi.version&gt;7.6.0.Final&lt;/jboss-transaction-spi.version&gt; &lt;jboss-logging.version&gt;3.2.1.Final&lt;/jboss-logging.version&gt; &lt;/propeties&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-jdbc-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;!-- Import if using XA transaction --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-core&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt; &lt;artifactId&gt;shardingsphere-transaction-xa-narayana&lt;/artifactId&gt; &lt;version&gt;${shardingsphere.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.jboss.narayana.jta&lt;/groupId&gt; &lt;artifactId&gt;jta&lt;/artifactId&gt; &lt;version&gt;${narayana.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.jboss.narayana.jts&lt;/groupId&gt; &lt;artifactId&gt;narayana-jts-integration&lt;/artifactId&gt; &lt;version&gt;${narayana.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.jboss&lt;/groupId&gt; &lt;artifactId&gt;jboss-transaction-spi&lt;/artifactId&gt; &lt;version&gt;${jboss-transaction-spi.version}&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.jboss.logging&lt;/groupId&gt; &lt;artifactId&gt;jboss-logging&lt;/artifactId&gt; &lt;version&gt;${jboss-logging.version}&lt;/version&gt; &lt;/dependency&gt; Customize Configuration Items Add jbossts-properties.xml in classpath of the application to customize Narayana configuration. |
| Please refer to Narayana official documentation for more details.</description> |
| </item> |
| |
| <item> |
| <title>Seata Transaction</title> |
| <link>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/seata/</link> |
| <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> |
| |
| <guid>https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/usage/transaction/seata/</guid> |
| <description>Startup Seata Server Download seata server according to seata-work-shop. |
| Create Undo Log Table Create undo_log table in each physical database (sample for MySQL). |
| CREATE TABLE IF NOT EXISTS `undo_log` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT &#39;increment id&#39;, `branch_id` BIGINT(20) NOT NULL COMMENT &#39;branch transaction id&#39;, `xid` VARCHAR(100) NOT NULL COMMENT &#39;global transaction id&#39;, `context` VARCHAR(128) NOT NULL COMMENT &#39;undo_log context,such as serialization&#39;, `rollback_info` LONGBLOB NOT NULL COMMENT &#39;rollback info&#39;, `log_status` INT(11) NOT NULL COMMENT &#39;0:normal status,1:defense status&#39;, `log_created` DATETIME NOT NULL COMMENT &#39;create datetime&#39;, `log_modified` DATETIME NOT NULL COMMENT &#39;modify datetime&#39;, PRIMARY KEY (`id`), UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COMMENT =&#39;AT transaction mode undo table&#39;; Update Configuration Configure seata.</description> |
| </item> |
| |
| </channel> |
| </rss> |