Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
05551682
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
05551682
编写于
12月 25, 2018
作者:
C
cherrylzhao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add getRecoveryXAResource method for XATransactionManager.
上级
bdc74608
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
32 addition
and
10 deletion
+32
-10
pom.xml
pom.xml
+1
-1
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-spi/src/main/java/io/shardingsphere/transaction/spi/xa/XATransactionManager.java
...ardingsphere/transaction/spi/xa/XATransactionManager.java
+9
-0
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandler.java
.../transaction/xa/handler/XAShardingTransactionHandler.java
+4
-9
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/manager/AtomikosTransactionManager.java
...re/transaction/xa/manager/AtomikosTransactionManager.java
+8
-0
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/test/java/io/shardingsphere/transaction/xa/fixture/FixtureXATransactionManager.java
...e/transaction/xa/fixture/FixtureXATransactionManager.java
+10
-0
未找到文件。
pom.xml
浏览文件 @
05551682
...
...
@@ -40,7 +40,7 @@
<commons-codec.version>
1.10
</commons-codec.version>
<javax.transaction.version>
1.1
</javax.transaction.version>
<atomikos.version>
4.0.
4
</atomikos.version>
<atomikos.version>
4.0.
6
</atomikos.version>
<curator.version>
2.10.0
</curator.version>
<grpc.version>
1.7.0
</grpc.version>
...
...
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-spi/src/main/java/io/shardingsphere/transaction/spi/xa/XATransactionManager.java
浏览文件 @
05551682
...
...
@@ -24,6 +24,7 @@ import io.shardingsphere.transaction.core.manager.ShardingTransactionManager;
import
javax.sql.DataSource
;
import
javax.sql.XADataSource
;
import
javax.transaction.TransactionManager
;
import
javax.transaction.xa.XAResource
;
/**
* XA transaction manager.
...
...
@@ -74,4 +75,12 @@ public interface XATransactionManager extends ShardingTransactionManager {
* @param xaDataSource XA data source
*/
void
removeRecoveryResource
(
String
dataSourceName
,
XADataSource
xaDataSource
);
/**
* Get recovery resource.
* @param dataSourceName data source name
* @return XA recovery resource
*/
XAResource
getRecoveryXAResource
(
String
dataSourceName
);
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandler.java
浏览文件 @
05551682
...
...
@@ -17,8 +17,8 @@
package
io.shardingsphere.transaction.xa.handler
;
import
com.google.common.base.Preconditions
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.core.exception.ShardingException
;
import
io.shardingsphere.core.rule.DataSourceParameter
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter
;
...
...
@@ -31,10 +31,8 @@ import io.shardingsphere.transaction.xa.manager.XATransactionManagerSPILoader;
import
lombok.extern.slf4j.Slf4j
;
import
javax.sql.DataSource
;
import
javax.sql.XAConnection
;
import
javax.transaction.Transaction
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
...
...
@@ -89,15 +87,12 @@ public final class XAShardingTransactionHandler extends ShardingTransactionHandl
}
@Override
public
synchronized
void
synchronizeTransactionResource
(
final
String
datasourceName
,
final
Connection
connection
,
final
Object
...
properties
)
throws
SQLException
{
public
synchronized
void
synchronizeTransactionResource
(
final
String
datasourceName
,
final
Connection
connection
,
final
Object
...
properties
)
{
try
{
ShardingXADataSource
shardingXADataSource
=
SHARDING_XA_DATA_SOURCE_MAP
.
get
(
datasourceName
);
Preconditions
.
checkNotNull
(
shardingXADataSource
,
"Could not find ShardingXADataSource of `%s`"
,
datasourceName
);
XAConnection
xaConnection
=
shardingXADataSource
.
wrapPhysicalConnection
(
connection
,
databaseType
);
Transaction
transaction
=
xaTransactionManager
.
getUnderlyingTransactionManager
().
getTransaction
();
transaction
.
enlistResource
(
xa
Connection
.
getXAResource
(
));
transaction
.
enlistResource
(
xa
TransactionManager
.
getRecoveryXAResource
(
datasourceName
));
}
catch
(
final
Exception
ex
)
{
throw
new
S
QLException
(
ex
.
getMessage
()
);
throw
new
S
hardingException
(
ex
);
}
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/manager/AtomikosTransactionManager.java
浏览文件 @
05551682
...
...
@@ -18,6 +18,7 @@
package
io.shardingsphere.transaction.xa.manager
;
import
com.atomikos.datasource.xa.jdbc.JdbcTransactionalResource
;
import
com.atomikos.icatch.config.Configuration
;
import
com.atomikos.icatch.config.UserTransactionService
;
import
com.atomikos.icatch.config.UserTransactionServiceImp
;
import
com.atomikos.icatch.jta.UserTransactionManager
;
...
...
@@ -35,6 +36,7 @@ import javax.transaction.RollbackException;
import
javax.transaction.Status
;
import
javax.transaction.SystemException
;
import
javax.transaction.TransactionManager
;
import
javax.transaction.xa.XAResource
;
/**
* Atomikos XA transaction manager.
...
...
@@ -118,5 +120,11 @@ public final class AtomikosTransactionManager implements XATransactionManager {
public
void
removeRecoveryResource
(
final
String
dataSourceName
,
final
XADataSource
xaDataSource
)
{
userTransactionService
.
removeResource
(
new
JdbcTransactionalResource
(
dataSourceName
,
xaDataSource
));
}
@Override
public
XAResource
getRecoveryXAResource
(
final
String
dataSourceName
)
{
JdbcTransactionalResource
jdbcTransactionalResource
=
(
JdbcTransactionalResource
)
Configuration
.
getResource
(
dataSourceName
);
return
jdbcTransactionalResource
.
getXAResource
();
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/test/java/io/shardingsphere/transaction/xa/fixture/FixtureXATransactionManager.java
浏览文件 @
05551682
...
...
@@ -25,8 +25,13 @@ import javax.sql.DataSource;
import
javax.sql.XADataSource
;
import
javax.transaction.Status
;
import
javax.transaction.TransactionManager
;
import
javax.transaction.xa.XAResource
;
public
final
class
FixtureXATransactionManager
implements
XATransactionManager
{
@Override
public
void
startup
()
{
}
@Override
public
void
destroy
()
{
}
...
...
@@ -67,4 +72,9 @@ public final class FixtureXATransactionManager implements XATransactionManager {
public
void
removeRecoveryResource
(
final
String
dataSourceName
,
final
XADataSource
xaDataSource
)
{
}
@Override
public
XAResource
getRecoveryXAResource
(
final
String
dataSourceName
)
{
return
null
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录