This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 2956201 xa transaction doc (#8630)
2956201 is described below
commit 295620120f5a1dc2a5836b126d7a1f7fcb64e179
Author: xiaoyu <[email protected]>
AuthorDate: Tue Dec 15 23:14:55 2020 +0800
xa transaction doc (#8630)
---
.../shardingsphere-jdbc/configuration/props.cn.md | 1 +
.../shardingsphere-jdbc/configuration/props.en.md | 1 +
.../usage/transaction/narayana.cn.md | 88 +++++++++++++++++++++
.../usage/transaction/narayana.en.md | 89 ++++++++++++++++++++++
.../usage/transaction/seata.cn.md | 2 +-
.../usage/transaction/seata.en.md | 2 +-
.../shardingsphere-proxy/configuration/props.cn.md | 1 +
.../shardingsphere-proxy/configuration/props.en.md | 1 +
.../shardingsphere-proxy/usage/transaction.cn.md | 45 ++++++++++-
.../shardingsphere-proxy/usage/transaction.en.md | 50 ++++++++++++
10 files changed, 277 insertions(+), 3 deletions(-)
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
index e3d18f4..ee9ba9b 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.cn.md
@@ -18,3 +18,4 @@ Apache ShardingSphere 提供属性配置的方式配置系统级配置。
| max-connections-size-per-query (?) | int |
一次查询请求在每个数据库实例中所能使用的最大连接数。
| 1 |
| check-table-metadata-enabled (?) | boolean | 是否在程序启动和更新时检查分片元数据的结构一致性。
| false |
| query-with-cipher-column (?) | boolean |
是否使用加密列进行查询。在有原文列的情况下,可以使用原文列进行查询。
|
true |
+| transaction-manager-type (?) | String |
事务管理器类型。列如:atomikos,narayana
| atomikos |
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
index 485e293..d7fbe30 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/props.en.md
@@ -18,3 +18,4 @@ Apache ShardingSphere provides the way of property
configuration to configure sy
| max-connections-size-per-query (?) | int | Max opened connection
size for each query.
| 1
|
| check-table-metadata-enabled (?) | boolean | Whether validate table
meta data consistency when application startup or updated.
| false
|
| query-with-cipher-column (?) | boolean | Whether query with cipher
column for data encrypt. User you can use plaintext to query if have.
| true
|
+| transaction-manager-type (?) | String | ShardingSphere
transaction manager type. Include: atomikos, narayana.
|
atomikos |
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.cn.md
new file mode 100644
index 0000000..0cff74d
--- /dev/null
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.cn.md
@@ -0,0 +1,88 @@
++++
+title = "Narayana 事务"
+weight = 5
++++
+
+## 引入 Maven 依赖
+
+```xml
+<propeties>
+ <narayana.version>5.9.1.Final</narayana.version>
+
<jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
+ <jboss-logging.version>3.2.1.Final</jboss-logging.version>
+</propeties>
+
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-jdbc-core</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+
+<!-- 使用 XA 事务时,需要引入此模块 -->
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-transaction-xa-core</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-transaction-xa-narayana</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jta</groupId>
+ <artifactId>jta</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jts</groupId>
+ <artifactId>narayana-jts-integration</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-transaction-spi</artifactId>
+ <version>${jboss-transaction-spi.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>${jboss-logging.version}</version>
+</dependency>
+```
+
+## 修改配置
+
+可以通过在项目的 classpath 中添加 `jbossts-properties.xml` 来定制化 Narayana 配置项。
+
+详情请参见[Narayana官方文档](https://narayana.io/documentation/index.html)。
+
+## 设置XA事务管理类型
+
+在Apache ShardingSphere 配置系统级配置中设置XA事务管理器类型。
+
+Yaml:
+```yaml
+props:
+ transaction-manager-type: narayana
+```
+
+Spring-Boot:
+
+```yaml
+spring:
+ shardingsphere:
+ props:
+ transaction-manager-type: narayana
+```
+
+Spring-Namespace:
+
+```xml
+<shardingsphere:data-source id="xxx" data-source-names="xxx" rule-refs="xxx">
+ <props>
+ <prop key="transaction-manager-type">narayana</prop>
+ </props>
+</shardingsphere:data-source>
+```
\ No newline at end of file
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.en.md
new file mode 100644
index 0000000..8fb406f
--- /dev/null
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/narayana.en.md
@@ -0,0 +1,89 @@
++++
+title = "Narayana Transaction"
+weight = 5
++++
+
+## Import Maven Dependency
+
+```xml
+<propeties>
+ <narayana.version>5.9.1.Final</narayana.version>
+
<jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
+ <jboss-logging.version>3.2.1.Final</jboss-logging.version>
+</propeties>
+
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-jdbc-core</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+
+<!-- import if using XA transaction -->
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-transaction-xa-core</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+
+<dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-transaction-xa-narayana</artifactId>
+ <version>${shardingsphere.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jta</groupId>
+ <artifactId>jta</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jts</groupId>
+ <artifactId>narayana-jts-integration</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-transaction-spi</artifactId>
+ <version>${jboss-transaction-spi.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>${jboss-logging.version}</version>
+</dependency>
+```
+
+## Update Configuration
+
+Developer can add `jbossts-properties.xml` in classpath of the application to
customize Narayana configuration.
+For detailed configuration rules.
+
+Please refer to [Narayana official
documentation](https://narayana.io/documentation/index.html) for more details.
+
+## Config Transaction Manager Type
+
+Set the XA transaction manager type in the Apache ShardingSphere configuration
system-level configuration.
+
+Yaml:
+```yaml
+props:
+ transaction-manager-type: narayana
+```
+
+Spring-Boot:
+
+```yaml
+spring:
+ shardingsphere:
+ props:
+ transaction-manager-type: narayana
+```
+
+Spring-Namespace:
+
+```xml
+<shardingsphere:data-source id="xxx" data-source-names="xxx" rule-refs="xxx">
+ <props>
+ <prop key="transaction-manager-type">narayana</prop>
+ </props>
+</shardingsphere:data-source>
+```
\ No newline at end of file
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.cn.md
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.cn.md
index 615e974..75c9d23 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.cn.md
@@ -1,6 +1,6 @@
+++
title = "Seata 事务"
-weight = 5
+weight = 6
+++
## 启动 Seata 服务
diff --git
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.en.md
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.en.md
index a0a2e80..d6b97e4 100644
---
a/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.en.md
+++
b/docs/document/content/user-manual/shardingsphere-jdbc/usage/transaction/seata.en.md
@@ -1,6 +1,6 @@
+++
title = "Seata Transaction"
-weight = 5
+weight = 6
+++
## Startup Seata Server
diff --git
a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
index 5dacb18..e9d8dd6 100644
---
a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.cn.md
@@ -23,3 +23,4 @@ Apache ShardingSphere 提供属性配置的方式配置系统级配置。
| proxy-transaction-type (?) | String | ShardingSphere-Proxy
中使用的默认事务类型。包括:LOCAL、XA 和 BASE。
| LOCAL
|
| proxy-opentracing-enabled (?) | boolean | 是否允许在
ShardingSphere-Proxy 中使用 OpenTracing。
| false |
| proxy-hint-enabled (?) | boolean | 是否允许在
ShardingSphere-Proxy 中使用 Hint。使用 Hint 会将 Proxy 的线程处理模型由 IO
多路复用变更为每个请求一个独立的线程,会降低 Proxy 的吞吐量。
| false |
+| transaction-manager-type (?) | String |
事务管理器类型。列如:atomikos,narayana。
| atomikos |
diff --git
a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
index 7ec75eb..f5190fb 100644
---
a/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
+++
b/docs/document/content/user-manual/shardingsphere-proxy/configuration/props.en.md
@@ -23,3 +23,4 @@ Apache ShardingSphere provides the way of property
configuration to configure sy
| proxy-transaction-type (?) | String | Default transaction type
of ShardingSphere-Proxy. Include: LOCAL, XA and BASE.
| LOCAL
|
| proxy-opentracing-enabled (?) | boolean | Whether enable
opentracing for ShardingSphere-Proxy.
|
false |
| proxy-hint-enabled (?) | boolean | Whether enable hint for
ShardingSphere-Proxy. Using Hint will switch proxy thread mode from IO
multiplexing to per connection per thread, which will reduce system throughput.
|
false |
+| transaction-manager-type (?) | String | ShardingSphere
transaction manager type. Include: atomikos, narayana.
|
atomikos |
diff --git
a/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.cn.md
b/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.cn.md
index b1ef132..99accc5 100644
---
a/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.cn.md
+++
b/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.cn.md
@@ -7,10 +7,53 @@ ShardingSphere-Proxy 接入的分布式事务 API 同 ShardingSphere-JDBC 保持
## XA 事务
-ShardingSphere-Proxy 原生支持 XA 事务,默认的事务管理器为 Atomikos。
+* ShardingSphere-Proxy 原生支持 XA 事务,默认的事务管理器为 Atomikos。
可以通过在 ShardingSphere-Proxy 的 conf 目录中添加 `jta.properties` 来定制化 Atomikos 配置项。
具体的配置规则请参考 Atomikos
的[官方文档](https://www.atomikos.com/Documentation/JtaProperties)。
+* 使用 Narayana事务管理器,需要参考以下步骤。
+
+步骤一:将 Narayana所需要的Jar包拷贝到 `/lib`。参考包如下:
+
+```xml
+<propeties>
+ <narayana.version>5.9.1.Final</narayana.version>
+
<jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
+ <jboss-logging.version>3.2.1.Final</jboss-logging.version>
+</propeties>
+<dependency>
+ <groupId>org.jboss.narayana.jta</groupId>
+ <artifactId>jta</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jts</groupId>
+ <artifactId>narayana-jts-integration</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-transaction-spi</artifactId>
+ <version>${jboss-transaction-spi.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>${jboss-logging.version}</version>
+</dependency>
+```
+
+步骤二: 在`conf/server.yaml` 的属性配置中加入如下:
+
+```yaml
+props:
+ transaction-manager-type: narayana
+```
+
+步骤三: 新增 `jbossts-properties.xml`文件来定制化 Narayana 配置项,它的加载路径顺序:`user.dir (pwd)`
> `user.home` > `java.home` > `classpath`。
+详情请参见[Narayana官方文档](https://narayana.io/documentation/index.html)。
+
+
## BASE事务
BASE 目前没有集成至 ShardingSphere-Proxy 的二进制发布包中,使用时需要将实现了
`ShardingTransactionManager` SPI 的 jar 拷贝至 conf/lib 目录,然后切换事务类型为 BASE。
diff --git
a/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.en.md
b/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.en.md
index 64e3c06..ebdded5 100644
---
a/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.en.md
+++
b/docs/document/content/user-manual/shardingsphere-proxy/usage/transaction.en.md
@@ -9,6 +9,56 @@ ShardingSphere-Proxy supports LOCAL, XA, BASE transactions,
LOCAL transaction is
Default XA transaction manager of ShardingSphere is Atomikos. Users can
customize Atomikos configuration items through adding `jta.properties` in conf
catalog of ShardingSphere-Proxy. Please refer to [Official
Documents](https://www.atomikos.com/Documentation/JtaProperties) of Atomikos
for detailed configurations.
+* Use Narayana XA Transaction Manager。
+
+First:
+
+Copy the Jar package required by Narayana to '/lib'.The reference package is
as follows :
+
+```xml
+<propeties>
+ <narayana.version>5.9.1.Final</narayana.version>
+
<jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
+ <jboss-logging.version>3.2.1.Final</jboss-logging.version>
+</propeties>
+<dependency>
+ <groupId>org.jboss.narayana.jta</groupId>
+ <artifactId>jta</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.narayana.jts</groupId>
+ <artifactId>narayana-jts-integration</artifactId>
+ <version>${narayana.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-transaction-spi</artifactId>
+ <version>${jboss-transaction-spi.version}</version>
+</dependency>
+<dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>${jboss-logging.version}</version>
+</dependency>
+```
+
+Second:
+
+config `transaction-manager-type` in `conf/server.yaml`:
+
+```yaml
+props:
+ transaction-manager-type: narayana
+```
+
+Third:
+
+Developer can add `jbossts-properties.xml` of the application to customize
Narayana configuration.
+This is the point where the search path is applied - user.dir (pwd),
user.home, java.home, classpath.
+Please refer to [Narayana official
documentation](https://narayana.io/documentation/index.html) for more details.
+
+
## BASE Transaction
Since we have not packed the BASE implementation jar into
ShardingSphere-Proxy, you should copy relevant jar which implement
`ShardingTransactionManager` SPI to `conf/lib`, then switch the transaction
type to `BASE`.