事务 #
语法 | 描述 | 类型 |
---|---|---|
ALTER TRANSACTION RULE | 更新事务规则配置 | RAL |
SHOW TRANSACTION RULE | 查询事务规则配置 | RAL |
1. 更新事务规则配置 #
alterTransactionRule
: ALTER TRANSACTION RULE transactionRuleDefinition
;
transactionRuleDefinition
: ( DEFAULT = defaultType (, providerDefinition)? )
;
providerDefinition
: TYPE ( NAME = providerName (, propertiesDefinition)? )
;
参数说明
DEFAULT
:默认事务类型,支持 LOCAL、XA、BASE;NAME
:事务管理器名称,支持 Atomikos、Narayana
示例
-- 修改事务类型为 LOCAL
ALTER TRANSACTION RULE (DEFAULT='LOCAL');
-- 修改事务类型为 XA,事务管理器名称为 Narayana,指定 JDBC 方式存储事务恢复日志。需要提前建立好对应的数据库,比如下面的 jbossts 数据库。
ALTER TRANSACTION RULE(DEFAULT='XA', TYPE(NAME='Narayana', PROPERTIES("recoveryStoreUser"="root","recoveryStoreDataSource"="com.mysql.jdbc.jdbc2.optional.MysqlDataSource","recoveryStoreUrl"="jdbc:mysql://localhost:3306/jbossts","recoveryStorePassword"="root")));
-- MySQL8 作为事务恢复日志存储,指定 "recoveryStoreDataSource"="com.mysql.cj.jdbc.MysqlDataSource"
ALTER TRANSACTION RULE(DEFAULT='XA', TYPE(NAME='Narayana', PROPERTIES("recoveryStoreUser"="root","recoveryStoreDataSource"="com.mysql.cj.jdbc.MysqlDataSource","recoveryStoreUrl"="jdbc:mysql://localhost:3306/jbossts","recoveryStorePassword"="root")));
-- 修改事务类型为 XA,事务管理器名称为 Narayana,使用文件方式存储事务恢复日志,在集群模式下,使用文件方式存储 XA Recovery 信息会导致 Proxy 实例之间无法共享事务恢复日志,因此不推荐使用文件方式存储 XA Recovery 信息。
ALTER TRANSACTION RULE(DEFAULT='XA', TYPE(NAME='Narayana', PROPERTIES("recoveryStoreType"="File")));
-- 修改 Narayana XA 事务的事务超时时间(单位秒),默认不配置为 180 秒。
ALTER TRANSACTION RULE(DEFAULT='XA', TYPE(NAME='Narayana', PROPERTIES("defaultTimeout"="60")));
2. 查询事务规则配置 #
SHOW TRANSACTION RULE
输出说明
列 | 说明 |
---|---|
default_type | 默认事务类型 |
provider_type | 事务管理器类型 |
props | 事务管理器参数 |
示例
mysql> SHOW TRANSACTION RULE;
+--------------+---------------+-------+
| default_type | provider_type | props |
+--------------+---------------+-------+
| LOCAL | | |
+--------------+---------------+-------+
1 row in set (0.07 sec)