From 178836829d633f97f0bc650ba5feff93da42b151 Mon Sep 17 00:00:00 2001
From: pigxcloud <2270033969@qq.com>
Date: Mon, 3 Jun 2019 14:09:42 +0800
Subject: [PATCH 1/2] :bookmark: Releasing / Version tags. 3.1.0
---
pigx-auth/pom.xml | 2 +-
pigx-common/pigx-common-bom/pom.xml | 6 +++---
pigx-common/pigx-common-core/pom.xml | 2 +-
pigx-common/pigx-common-data/pom.xml | 2 +-
pigx-common/pigx-common-datasource/pom.xml | 2 +-
pigx-common/pigx-common-gateway/pom.xml | 2 +-
pigx-common/pigx-common-job/pom.xml | 2 +-
pigx-common/pigx-common-log/pom.xml | 2 +-
pigx-common/pigx-common-minio/pom.xml | 2 +-
pigx-common/pigx-common-security/pom.xml | 2 +-
pigx-common/pigx-common-swagger/pom.xml | 2 +-
pigx-common/pigx-common-transaction/pom.xml | 2 +-
pigx-common/pom.xml | 2 +-
pigx-gateway/pom.xml | 2 +-
pigx-register/pom.xml | 2 +-
pigx-upms/pigx-upms-api/pom.xml | 2 +-
pigx-upms/pigx-upms-biz/pom.xml | 2 +-
pigx-upms/pom.xml | 2 +-
pigx-visual/pigx-activiti/pom.xml | 2 +-
pigx-visual/pigx-codegen/pom.xml | 2 +-
pigx-visual/pigx-daemon-elastic-job/pom.xml | 2 +-
pigx-visual/pigx-daemon-quartz/pom.xml | 2 +-
pigx-visual/pigx-monitor/pom.xml | 4 ++--
pigx-visual/pigx-mp-manager/pom.xml | 2 +-
pigx-visual/pigx-seata-server/pom.xml | 2 +-
pigx-visual/pigx-sso-client-demo/pom.xml | 2 +-
pigx-visual/pigx-tx-manager/pom.xml | 2 +-
pigx-visual/pom.xml | 2 +-
pom.xml | 8 +++-----
29 files changed, 34 insertions(+), 36 deletions(-)
diff --git a/pigx-auth/pom.xml b/pigx-auth/pom.xml
index 3181b8f46..f43211d3c 100644
--- a/pigx-auth/pom.xml
+++ b/pigx-auth/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-auth
diff --git a/pigx-common/pigx-common-bom/pom.xml b/pigx-common/pigx-common-bom/pom.xml
index a9616d960..0af3a50c6 100644
--- a/pigx-common/pigx-common-bom/pom.xml
+++ b/pigx-common/pigx-common-bom/pom.xml
@@ -16,12 +16,12 @@
pigx 公共版本控制
- 3.0.0
+ 3.1.0
3.1.0
- 1.1.16
+ 1.1.17
8.0.16
1.5.22
- 3.3.0
+ 3.4.0
diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml
index 20bcde7cb..bd08009d7 100644
--- a/pigx-common/pigx-common-core/pom.xml
+++ b/pigx-common/pigx-common-core/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-core
diff --git a/pigx-common/pigx-common-data/pom.xml b/pigx-common/pigx-common-data/pom.xml
index 7681cb3a3..800c3b7a5 100644
--- a/pigx-common/pigx-common-data/pom.xml
+++ b/pigx-common/pigx-common-data/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-data
diff --git a/pigx-common/pigx-common-datasource/pom.xml b/pigx-common/pigx-common-datasource/pom.xml
index 32c4c9c41..fa95190b1 100644
--- a/pigx-common/pigx-common-datasource/pom.xml
+++ b/pigx-common/pigx-common-datasource/pom.xml
@@ -5,7 +5,7 @@
pigx-common
com.pig4cloud
- 3.0.0
+ 3.1.0
4.0.0
diff --git a/pigx-common/pigx-common-gateway/pom.xml b/pigx-common/pigx-common-gateway/pom.xml
index fb0530b99..d36e78c56 100644
--- a/pigx-common/pigx-common-gateway/pom.xml
+++ b/pigx-common/pigx-common-gateway/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-gateway
diff --git a/pigx-common/pigx-common-job/pom.xml b/pigx-common/pigx-common-job/pom.xml
index f76d82892..7cd62b509 100644
--- a/pigx-common/pigx-common-job/pom.xml
+++ b/pigx-common/pigx-common-job/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-job
diff --git a/pigx-common/pigx-common-log/pom.xml b/pigx-common/pigx-common-log/pom.xml
index 9c47752d2..a682c5cb0 100644
--- a/pigx-common/pigx-common-log/pom.xml
+++ b/pigx-common/pigx-common-log/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-log
diff --git a/pigx-common/pigx-common-minio/pom.xml b/pigx-common/pigx-common-minio/pom.xml
index 10db5e14d..a44d3b7e4 100755
--- a/pigx-common/pigx-common-minio/pom.xml
+++ b/pigx-common/pigx-common-minio/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-minio
diff --git a/pigx-common/pigx-common-security/pom.xml b/pigx-common/pigx-common-security/pom.xml
index 58095bc84..d9a182fd2 100644
--- a/pigx-common/pigx-common-security/pom.xml
+++ b/pigx-common/pigx-common-security/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-security
diff --git a/pigx-common/pigx-common-swagger/pom.xml b/pigx-common/pigx-common-swagger/pom.xml
index b59063b81..a4d640435 100644
--- a/pigx-common/pigx-common-swagger/pom.xml
+++ b/pigx-common/pigx-common-swagger/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-swagger
diff --git a/pigx-common/pigx-common-transaction/pom.xml b/pigx-common/pigx-common-transaction/pom.xml
index b165ce19d..7ab75bb90 100644
--- a/pigx-common/pigx-common-transaction/pom.xml
+++ b/pigx-common/pigx-common-transaction/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-common
- 3.0.0
+ 3.1.0
pigx-common-transaction
diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml
index 99e723dfc..5224cb183 100644
--- a/pigx-common/pom.xml
+++ b/pigx-common/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-common
diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml
index ba9c39a12..d4fe19457 100644
--- a/pigx-gateway/pom.xml
+++ b/pigx-gateway/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-gateway
diff --git a/pigx-register/pom.xml b/pigx-register/pom.xml
index 323247d1a..82544ae73 100755
--- a/pigx-register/pom.xml
+++ b/pigx-register/pom.xml
@@ -18,7 +18,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-register
diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml
index df9f82ff2..c7e5745d9 100644
--- a/pigx-upms/pigx-upms-api/pom.xml
+++ b/pigx-upms/pigx-upms-api/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 3.0.0
+ 3.1.0
pigx-upms-api
diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml
index bee4afd42..ad8154c5a 100644
--- a/pigx-upms/pigx-upms-biz/pom.xml
+++ b/pigx-upms/pigx-upms-biz/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 3.0.0
+ 3.1.0
pigx-upms-biz
diff --git a/pigx-upms/pom.xml b/pigx-upms/pom.xml
index d2b2c35d0..2774cef97 100644
--- a/pigx-upms/pom.xml
+++ b/pigx-upms/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-upms
diff --git a/pigx-visual/pigx-activiti/pom.xml b/pigx-visual/pigx-activiti/pom.xml
index 139eace01..9dd4ccf99 100644
--- a/pigx-visual/pigx-activiti/pom.xml
+++ b/pigx-visual/pigx-activiti/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-activiti
diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
index c2e9352f7..89a738620 100755
--- a/pigx-visual/pigx-codegen/pom.xml
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-codegen
diff --git a/pigx-visual/pigx-daemon-elastic-job/pom.xml b/pigx-visual/pigx-daemon-elastic-job/pom.xml
index 800a91a8e..4fe642f26 100644
--- a/pigx-visual/pigx-daemon-elastic-job/pom.xml
+++ b/pigx-visual/pigx-daemon-elastic-job/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-daemon-elastic-job
diff --git a/pigx-visual/pigx-daemon-quartz/pom.xml b/pigx-visual/pigx-daemon-quartz/pom.xml
index 1f1897e60..cc30670e6 100644
--- a/pigx-visual/pigx-daemon-quartz/pom.xml
+++ b/pigx-visual/pigx-daemon-quartz/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
4.0.0
diff --git a/pigx-visual/pigx-monitor/pom.xml b/pigx-visual/pigx-monitor/pom.xml
index 03c1e4970..025cb36cc 100644
--- a/pigx-visual/pigx-monitor/pom.xml
+++ b/pigx-visual/pigx-monitor/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-monitor
@@ -36,7 +36,7 @@
com.pig4cloud
pigx-common-core
- 3.0.0
+ 3.1.0
org.springframework.boot
diff --git a/pigx-visual/pigx-mp-manager/pom.xml b/pigx-visual/pigx-mp-manager/pom.xml
index f40bc2cc0..ca95b0855 100755
--- a/pigx-visual/pigx-mp-manager/pom.xml
+++ b/pigx-visual/pigx-mp-manager/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-mp-manager
diff --git a/pigx-visual/pigx-seata-server/pom.xml b/pigx-visual/pigx-seata-server/pom.xml
index 1d9c33897..ce385ff70 100755
--- a/pigx-visual/pigx-seata-server/pom.xml
+++ b/pigx-visual/pigx-seata-server/pom.xml
@@ -20,7 +20,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
4.0.0
diff --git a/pigx-visual/pigx-sso-client-demo/pom.xml b/pigx-visual/pigx-sso-client-demo/pom.xml
index 44b5a2b3f..0b79244fd 100644
--- a/pigx-visual/pigx-sso-client-demo/pom.xml
+++ b/pigx-visual/pigx-sso-client-demo/pom.xml
@@ -29,7 +29,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
diff --git a/pigx-visual/pigx-tx-manager/pom.xml b/pigx-visual/pigx-tx-manager/pom.xml
index ae5413a43..862309854 100644
--- a/pigx-visual/pigx-tx-manager/pom.xml
+++ b/pigx-visual/pigx-tx-manager/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-visual
- 3.0.0
+ 3.1.0
pigx-tx-manager
diff --git a/pigx-visual/pom.xml b/pigx-visual/pom.xml
index 69c5c19aa..b9787c19b 100644
--- a/pigx-visual/pom.xml
+++ b/pigx-visual/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
pigx-visual
diff --git a/pom.xml b/pom.xml
index b06a2a2ba..cac28f3e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 3.0.0
+ 3.1.0
${project.artifactId}
pom
@@ -49,7 +49,7 @@
1.8
1.8
2.1.4
- 4.5.8
+ 4.5.11
0.0.9
2.9.2
1.9.3
@@ -59,13 +59,11 @@
3.15
2.1.1
2.10.2
- 6.0.7
+ 6.0.8
2.1.5
2.3.5.RELEASE
2.1.2.RELEASE
5.22.0
- 2.12.2
- 2.8.4
http://192.168.0.13:4243
0.4.12
192.168.0.13:5000
From 9aa8b74e5ced030319590bc89f631e2351a130cf Mon Sep 17 00:00:00 2001
From: pigxcloud <2270033969@qq.com>
Date: Wed, 5 Jun 2019 17:37:05 +0800
Subject: [PATCH 2/2] :bookmark: Releasing / Version tags. 3.1.0
---
pigx-visual/pigx-seata-server/pom.xml | 48 --
.../server/AbstractTCInboundHandler.java | 240 -------
.../src/main/java/io/seata/server/Server.java | 78 ---
.../java/io/seata/server/UUIDGenerator.java | 96 ---
.../io/seata/server/coordinator/Core.java | 55 --
.../seata/server/coordinator/CoreFactory.java | 46 --
.../coordinator/DefaultCoordinator.java | 362 -----------
.../seata/server/coordinator/DefaultCore.java | 310 ---------
.../server/lock/DefaultLockManagerImpl.java | 186 ------
.../io/seata/server/lock/LockManager.java | 63 --
.../seata/server/lock/LockManagerFactory.java | 46 --
.../session/AbstractSessionManager.java | 191 ------
.../seata/server/session/BranchSession.java | 395 ------------
.../server/session/DefaultSessionManager.java | 65 --
.../session/FileBasedSessionManager.java | 232 -------
.../seata/server/session/GlobalSession.java | 541 ----------------
.../io/seata/server/session/Lockable.java | 42 --
.../io/seata/server/session/Reloadable.java | 29 -
.../server/session/SessionCondition.java | 55 --
.../seata/server/session/SessionHelper.java | 121 ----
.../seata/server/session/SessionHolder.java | 242 -------
.../server/session/SessionLifecycle.java | 89 ---
.../session/SessionLifecycleListener.java | 90 ---
.../seata/server/session/SessionManager.java | 109 ----
.../store/FileTransactionStoreManager.java | 590 ------------------
.../io/seata/server/store/FlushDiskMode.java | 44 --
.../seata/server/store/SessionStorable.java | 38 --
.../io/seata/server/store/StoreConfig.java | 56 --
.../server/store/TransactionStoreManager.java | 118 ----
.../server/store/TransactionWriteStore.java | 129 ----
.../src/main/resources/logback.xml | 54 --
.../src/main/resources/registry.conf | 71 ---
pigx-visual/pom.xml | 1 -
33 files changed, 4832 deletions(-)
delete mode 100755 pigx-visual/pigx-seata-server/pom.xml
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/AbstractTCInboundHandler.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/Server.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/UUIDGenerator.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/Core.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/CoreFactory.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCoordinator.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCore.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/DefaultLockManagerImpl.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/LockManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/LockManagerFactory.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/AbstractSessionManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/BranchSession.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/DefaultSessionManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/FileBasedSessionManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/GlobalSession.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/Lockable.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/Reloadable.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionCondition.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionHelper.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionHolder.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionLifecycle.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionLifecycleListener.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/session/SessionManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/FileTransactionStoreManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/FlushDiskMode.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/SessionStorable.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/StoreConfig.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/TransactionStoreManager.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/java/io/seata/server/store/TransactionWriteStore.java
delete mode 100755 pigx-visual/pigx-seata-server/src/main/resources/logback.xml
delete mode 100755 pigx-visual/pigx-seata-server/src/main/resources/registry.conf
diff --git a/pigx-visual/pigx-seata-server/pom.xml b/pigx-visual/pigx-seata-server/pom.xml
deleted file mode 100755
index ce385ff70..000000000
--- a/pigx-visual/pigx-seata-server/pom.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
- com.pig4cloud
- pigx-visual
- 3.1.0
-
-
- 4.0.0
- pigx-seata-server
- jar
- pigx-seata-server
-
-
-
- io.seata
- seata-core
- 0.5.2
-
-
- io.seata
- seata-config-all
- 0.5.2
-
-
- io.seata
- seata-discovery-all
- 0.5.2
-
-
-
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/AbstractTCInboundHandler.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/AbstractTCInboundHandler.java
deleted file mode 100755
index d6655196e..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/AbstractTCInboundHandler.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server;
-
-import io.seata.common.XID;
-import io.seata.core.exception.AbstractExceptionHandler;
-import io.seata.core.exception.TransactionException;
-import io.seata.core.model.GlobalStatus;
-import io.seata.core.protocol.transaction.BranchRegisterRequest;
-import io.seata.core.protocol.transaction.BranchRegisterResponse;
-import io.seata.core.protocol.transaction.BranchReportRequest;
-import io.seata.core.protocol.transaction.BranchReportResponse;
-import io.seata.core.protocol.transaction.GlobalBeginRequest;
-import io.seata.core.protocol.transaction.GlobalBeginResponse;
-import io.seata.core.protocol.transaction.GlobalCommitRequest;
-import io.seata.core.protocol.transaction.GlobalCommitResponse;
-import io.seata.core.protocol.transaction.GlobalLockQueryRequest;
-import io.seata.core.protocol.transaction.GlobalLockQueryResponse;
-import io.seata.core.protocol.transaction.GlobalRollbackRequest;
-import io.seata.core.protocol.transaction.GlobalRollbackResponse;
-import io.seata.core.protocol.transaction.GlobalStatusRequest;
-import io.seata.core.protocol.transaction.GlobalStatusResponse;
-import io.seata.core.protocol.transaction.TCInboundHandler;
-import io.seata.core.rpc.RpcContext;
-import io.seata.server.session.GlobalSession;
-import io.seata.server.session.SessionHolder;
-
-/**
- * The type Abstract tc inbound handler.
- *
- * @author sharajava
- */
-public abstract class AbstractTCInboundHandler extends AbstractExceptionHandler implements TCInboundHandler {
-
- @Override
- public GlobalBeginResponse handle(GlobalBeginRequest request, final RpcContext rpcContext) {
- GlobalBeginResponse response = new GlobalBeginResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(GlobalBeginRequest request, GlobalBeginResponse response) throws TransactionException {
- doGlobalBegin(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do global begin.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doGlobalBegin(GlobalBeginRequest request, GlobalBeginResponse response,
- RpcContext rpcContext) throws TransactionException;
-
- @Override
- public GlobalCommitResponse handle(GlobalCommitRequest request, final RpcContext rpcContext) {
- GlobalCommitResponse response = new GlobalCommitResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(GlobalCommitRequest request, GlobalCommitResponse response)
- throws TransactionException {
- doGlobalCommit(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do global commit.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doGlobalCommit(GlobalCommitRequest request, GlobalCommitResponse response,
- RpcContext rpcContext) throws TransactionException;
-
- @Override
- public GlobalRollbackResponse handle(GlobalRollbackRequest request, final RpcContext rpcContext) {
- GlobalRollbackResponse response = new GlobalRollbackResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(GlobalRollbackRequest request, GlobalRollbackResponse response)
- throws TransactionException {
- doGlobalRollback(request, response, rpcContext);
- }
-
- @Override
- public void onTransactionException(GlobalRollbackRequest request, GlobalRollbackResponse response,
- TransactionException tex) {
- super.onTransactionException(request, response, tex);
- GlobalSession globalSession = SessionHolder.findGlobalSession(
- XID.getTransactionId(request.getXid()));
- if (globalSession != null) {
- response.setGlobalStatus(globalSession.getStatus());
- } else {
- response.setGlobalStatus(GlobalStatus.Finished);
- }
- }
-
- @Override
- public void onException(GlobalRollbackRequest request, GlobalRollbackResponse response, Exception rex) {
- super.onException(request, response, rex);
- GlobalSession globalSession = SessionHolder.findGlobalSession(
- XID.getTransactionId(request.getXid()));
- if (globalSession != null) {
- response.setGlobalStatus(globalSession.getStatus());
- } else {
- response.setGlobalStatus(GlobalStatus.Finished);
- }
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do global rollback.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doGlobalRollback(GlobalRollbackRequest request, GlobalRollbackResponse response,
- RpcContext rpcContext) throws TransactionException;
-
- @Override
- public BranchRegisterResponse handle(BranchRegisterRequest request, final RpcContext rpcContext) {
- BranchRegisterResponse response = new BranchRegisterResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(BranchRegisterRequest request, BranchRegisterResponse response)
- throws TransactionException {
- doBranchRegister(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do branch register.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doBranchRegister(BranchRegisterRequest request, BranchRegisterResponse response,
- RpcContext rpcContext) throws TransactionException;
-
- @Override
- public BranchReportResponse handle(BranchReportRequest request, final RpcContext rpcContext) {
- BranchReportResponse response = new BranchReportResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(BranchReportRequest request, BranchReportResponse response)
- throws TransactionException {
- doBranchReport(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do branch report.
- *
- * @param request the request
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doBranchReport(BranchReportRequest request, BranchReportResponse response,
- RpcContext rpcContext)
- throws TransactionException;
-
- @Override
- public GlobalLockQueryResponse handle(GlobalLockQueryRequest request, final RpcContext rpcContext) {
- GlobalLockQueryResponse response = new GlobalLockQueryResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(GlobalLockQueryRequest request, GlobalLockQueryResponse response)
- throws TransactionException {
- doLockCheck(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do lock check.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doLockCheck(GlobalLockQueryRequest request, GlobalLockQueryResponse response,
- RpcContext rpcContext) throws TransactionException;
-
- @Override
- public GlobalStatusResponse handle(GlobalStatusRequest request, final RpcContext rpcContext) {
- GlobalStatusResponse response = new GlobalStatusResponse();
- exceptionHandleTemplate(new AbstractCallback() {
- @Override
- public void execute(GlobalStatusRequest request, GlobalStatusResponse response)
- throws TransactionException {
- doGlobalStatus(request, response, rpcContext);
- }
- }, request, response);
- return response;
- }
-
- /**
- * Do global status.
- *
- * @param request the request
- * @param response the response
- * @param rpcContext the rpc context
- * @throws TransactionException the transaction exception
- */
- protected abstract void doGlobalStatus(GlobalStatusRequest request, GlobalStatusResponse response,
- RpcContext rpcContext) throws TransactionException;
-
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/Server.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/Server.java
deleted file mode 100755
index 43df651ee..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/Server.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server;
-
-import io.seata.common.XID;
-import io.seata.common.thread.NamedThreadFactory;
-import io.seata.common.util.NetUtil;
-import io.seata.core.rpc.netty.RpcServer;
-import io.seata.core.rpc.netty.ShutdownHook;
-import io.seata.server.coordinator.DefaultCoordinator;
-import io.seata.server.session.SessionHolder;
-
-import java.io.IOException;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-/**
- * The type Server.
- *
- * @author jimin.jm @alibaba-inc.com
- */
-public class Server {
-
- private static final int MIN_SERVER_POOL_SIZE = 10;
- private static final int MAX_SERVER_POOL_SIZE = 50;
- private static final int MAX_TASK_QUEUE_SIZE = 2000;
- private static final int KEEP_ALIVE_TIME = 50;
- private static final int SERVER_DEFAULT_PORT = 8091;
- private static final ThreadPoolExecutor WORKING_THREADS = new ThreadPoolExecutor(MIN_SERVER_POOL_SIZE,
- MAX_SERVER_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.SECONDS,
- new LinkedBlockingQueue(MAX_TASK_QUEUE_SIZE),
- new NamedThreadFactory("ServerHandlerThread", MAX_SERVER_POOL_SIZE), new ThreadPoolExecutor.CallerRunsPolicy());
-
- /**
- * The entry point of application.
- *
- * @param args the input arguments
- * @throws IOException the io exception
- */
- public static void main(String[] args) throws IOException {
- RpcServer rpcServer = new RpcServer(WORKING_THREADS);
-
- rpcServer.setListenPort(SERVER_DEFAULT_PORT);
-
- //log store mode : file、db
- String storeMode = "file";
-
- UUIDGenerator.init(1);
- SessionHolder.init(storeMode);
-
- DefaultCoordinator coordinator = new DefaultCoordinator(rpcServer);
- coordinator.init();
- rpcServer.setHandler(coordinator);
- // register ShutdownHook
- ShutdownHook.getInstance().addDisposable(coordinator);
-
- XID.setIpAddress(NetUtil.getLocalIp());
- XID.setPort(rpcServer.getListenPort());
-
- rpcServer.init();
-
- System.exit(0);
- }
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/UUIDGenerator.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/UUIDGenerator.java
deleted file mode 100755
index efc55e555..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/UUIDGenerator.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.concurrent.atomic.AtomicLong;
-
-import io.seata.common.exception.ShouldNeverHappenException;
-
-/**
- * The type Uuid generator.
- *
- * @author sharajava
- */
-public class UUIDGenerator {
-
- private static final AtomicLong UUID = new AtomicLong(1000);
- private static int serverNodeId = 1;
- private static final long UUID_INTERNAL = 2000000000;
-
- /**
- * Generate uuid long.
- *
- * @return the long
- */
- public static long generateUUID() {
- long id = UUID.incrementAndGet();
- if (id >= UUID_INTERNAL * (serverNodeId + 1)) {
- synchronized (UUID) {
- if (UUID.get() >= id) {
- id -= UUID_INTERNAL;
- UUID.set(id);
- }
- }
- }
- return id;
- }
-
- /**
- * Gets current uuid.
- *
- * @return the current uuid
- */
- public static long getCurrentUUID() {
- return UUID.get();
- }
-
- /**
- * Sets uuid.
- *
- * @param expect the expect
- * @param update the update
- * @return the uuid
- */
- public static boolean setUUID(long expect, long update) {
- return UUID.compareAndSet(expect, update);
-
- }
-
- /**
- * Init.
- *
- * @param serverNodeId the server node id
- */
- public static void init(int serverNodeId) {
- try {
- UUIDGenerator.serverNodeId = serverNodeId;
- UUID.set(UUID_INTERNAL * serverNodeId);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Calendar cal = Calendar.getInstance();
- Date date = format.parse("2019-01-01");
- cal.setTime(date);
- long base = cal.getTimeInMillis();
- long current = System.currentTimeMillis();
- UUID.addAndGet((current - base) / 1000);
- } catch (ParseException e) {
- throw new ShouldNeverHappenException(e);
- }
- }
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/Core.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/Core.java
deleted file mode 100755
index 7d34dfee1..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/Core.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server.coordinator;
-
-import io.seata.core.exception.TransactionException;
-import io.seata.core.model.ResourceManagerInbound;
-import io.seata.core.model.ResourceManagerOutbound;
-import io.seata.core.model.TransactionManager;
-import io.seata.server.session.GlobalSession;
-
-/**
- * The interface Core.
- *
- * @author sharajava
- */
-public interface Core extends TransactionManager, ResourceManagerOutbound {
-
- /**
- * Sets resource manager inbound.
- *
- * @param resourceManagerInbound the resource manager inbound
- */
- void setResourceManagerInbound(ResourceManagerInbound resourceManagerInbound);
-
- /**
- * Do global commit.
- *
- * @param globalSession the global session
- * @param retrying the retrying
- * @throws TransactionException the transaction exception
- */
- void doGlobalCommit(GlobalSession globalSession, boolean retrying) throws TransactionException;
-
- /**
- * Do global rollback.
- *
- * @param globalSession the global session
- * @param retrying the retrying
- * @throws TransactionException the transaction exception
- */
- void doGlobalRollback(GlobalSession globalSession, boolean retrying) throws TransactionException;
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/CoreFactory.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/CoreFactory.java
deleted file mode 100755
index 19e09f70e..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/CoreFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server.coordinator;
-
-/**
- * The type Core factory.
- *
- * @author sharajava
- */
-public class CoreFactory {
-
- private static class SingletonHolder {
- private static Core INSTANCE = new DefaultCore();
- }
-
- /**
- * Get core.
- *
- * @return the core
- */
- public static final Core get() {
- return SingletonHolder.INSTANCE;
- }
-
- /**
- * Just for test mocking
- *
- * @param core the core
- */
- public static void set(Core core) {
- SingletonHolder.INSTANCE = core;
- }
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCoordinator.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCoordinator.java
deleted file mode 100755
index 024f741a9..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCoordinator.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server.coordinator;
-
-import io.seata.common.XID;
-import io.seata.common.thread.NamedThreadFactory;
-import io.seata.core.exception.TransactionException;
-import io.seata.core.model.BranchStatus;
-import io.seata.core.model.BranchType;
-import io.seata.core.model.GlobalStatus;
-import io.seata.core.model.ResourceManagerInbound;
-import io.seata.core.protocol.AbstractMessage;
-import io.seata.core.protocol.AbstractResultMessage;
-import io.seata.core.protocol.transaction.*;
-import io.seata.core.rpc.Disposable;
-import io.seata.core.rpc.RpcContext;
-import io.seata.core.rpc.ServerMessageSender;
-import io.seata.core.rpc.TransactionMessageHandler;
-import io.seata.core.rpc.netty.RpcServer;
-import io.seata.server.AbstractTCInboundHandler;
-import io.seata.server.session.BranchSession;
-import io.seata.server.session.GlobalSession;
-import io.seata.server.session.SessionHolder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import static io.seata.core.exception.TransactionExceptionCode.FailedToSendBranchCommitRequest;
-import static io.seata.core.exception.TransactionExceptionCode.FailedToSendBranchRollbackRequest;
-
-/**
- * The type Default coordinator.
- *
- * @author sharajava
- */
-public class DefaultCoordinator extends AbstractTCInboundHandler
- implements TransactionMessageHandler, ResourceManagerInbound, Disposable {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultCoordinator.class);
-
- private static final int TIMED_TASK_SHUTDOWN_MAX_WAIT_MILLS = 5000;
-
- private ServerMessageSender messageSender;
-
- private Core core = CoreFactory.get();
-
- /**
- * Instantiates a new Default coordinator.
- *
- * @param messageSender the message sender
- */
- public DefaultCoordinator(ServerMessageSender messageSender) {
- this.messageSender = messageSender;
- core.setResourceManagerInbound(this);
- }
-
- @Override
- protected void doGlobalBegin(GlobalBeginRequest request, GlobalBeginResponse response, RpcContext rpcContext)
- throws TransactionException {
- response.setXid(core.begin(rpcContext.getApplicationId(), rpcContext.getTransactionServiceGroup(),
- request.getTransactionName(), request.getTimeout()));
- }
-
- @Override
- protected void doGlobalCommit(GlobalCommitRequest request, GlobalCommitResponse response, RpcContext rpcContext)
- throws TransactionException {
- response.setGlobalStatus(core.commit(request.getXid()));
-
- }
-
- @Override
- protected void doGlobalRollback(GlobalRollbackRequest request, GlobalRollbackResponse response,
- RpcContext rpcContext) throws TransactionException {
- response.setGlobalStatus(core.rollback(request.getXid()));
-
- }
-
- @Override
- protected void doGlobalStatus(GlobalStatusRequest request, GlobalStatusResponse response, RpcContext rpcContext)
- throws TransactionException {
- response.setGlobalStatus(core.getStatus(request.getXid()));
- }
-
- @Override
- protected void doBranchRegister(BranchRegisterRequest request, BranchRegisterResponse response,
- RpcContext rpcContext) throws TransactionException {
- response.setBranchId(
- core.branchRegister(request.getBranchType(), request.getResourceId(), rpcContext.getClientId(),
- request.getXid(), request.getApplicationData(), request.getLockKey()));
-
- }
-
- @Override
- protected void doBranchReport(BranchReportRequest request, BranchReportResponse response, RpcContext rpcContext)
- throws TransactionException {
- core.branchReport(request.getBranchType(), request.getXid(), request.getBranchId(),
- request.getStatus(),
- request.getApplicationData());
-
- }
-
- @Override
- protected void doLockCheck(GlobalLockQueryRequest request, GlobalLockQueryResponse response, RpcContext rpcContext)
- throws TransactionException {
- response.setLockable(core.lockQuery(request.getBranchType(), request.getResourceId(),
- request.getXid(), request.getLockKey()));
- }
-
- @Override
- public BranchStatus branchCommit(BranchType branchType, String xid, long branchId, String resourceId,
- String applicationData)
- throws TransactionException {
- try {
- BranchCommitRequest request = new BranchCommitRequest();
- request.setXid(xid);
- request.setBranchId(branchId);
- request.setResourceId(resourceId);
- request.setApplicationData(applicationData);
- request.setBranchType(branchType);
-
- GlobalSession globalSession = SessionHolder.findGlobalSession(XID.getTransactionId(xid));
- if(globalSession == null){
- return BranchStatus.PhaseTwo_Committed;
- }
- BranchSession branchSession = globalSession.getBranch(branchId);
-
- BranchCommitResponse response = (BranchCommitResponse)messageSender.sendSyncRequest(resourceId,
- branchSession.getClientId(), request);
- return response.getBranchStatus();
- } catch (IOException e) {
- throw new TransactionException(FailedToSendBranchCommitRequest, branchId + "/" + xid, e);
- } catch (TimeoutException e) {
- throw new TransactionException(FailedToSendBranchCommitRequest, branchId + "/" + xid, e);
- }
- }
-
- @Override
- public BranchStatus branchRollback(BranchType branchType, String xid, long branchId, String resourceId,
- String applicationData)
- throws TransactionException {
- try {
- BranchRollbackRequest
- request = new BranchRollbackRequest();
- request.setXid(xid);
- request.setBranchId(branchId);
- request.setResourceId(resourceId);
- request.setApplicationData(applicationData);
- request.setBranchType(branchType);
-
- GlobalSession globalSession = SessionHolder.findGlobalSession(XID.getTransactionId(xid));
- if(globalSession == null){
- return BranchStatus.PhaseTwo_Rollbacked;
- }
- BranchSession branchSession = globalSession.getBranch(branchId);
-
- BranchRollbackResponse response = (BranchRollbackResponse)messageSender.sendSyncRequest(resourceId,
- branchSession.getClientId(), request);
- return response.getBranchStatus();
- } catch (IOException e) {
- throw new TransactionException(FailedToSendBranchRollbackRequest, branchId + "/" + xid, e);
- } catch (TimeoutException e) {
- throw new TransactionException(FailedToSendBranchRollbackRequest, branchId + "/" + xid, e);
- }
- }
-
- private void timeoutCheck() throws TransactionException {
- Collection allSessions = SessionHolder.getRootSessionManager().allSessions();
- if (allSessions.size() > 0 && LOGGER.isDebugEnabled()) {
- LOGGER.debug("Transaction Timeout Check Begin: " + allSessions.size());
- }
- for (GlobalSession globalSession : allSessions) {
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(globalSession.getTransactionId() + " " + globalSession.getStatus() + " " +
- globalSession.getBeginTime() + " " + globalSession.getTimeout());
- }
- boolean shouldTimeout = globalSession.lockAndExcute(() -> {
- if (globalSession.getStatus() != GlobalStatus.Begin || !globalSession.isTimeout()) {
- return false;
- }
- globalSession.close();
- globalSession.changeStatus(GlobalStatus.TimeoutRollbacking);
- return true;
- });
- if (!shouldTimeout) {
- continue;
- }
- LOGGER.info(
- "Global transaction[" + globalSession.getTransactionId() + "] is timeout and will be rolled back.");
-
- globalSession.addSessionLifecycleListener(SessionHolder.getRetryRollbackingSessionManager());
- SessionHolder.getRetryRollbackingSessionManager().addGlobalSession(globalSession);
-
- }
- if (allSessions.size() > 0 && LOGGER.isDebugEnabled()) {
- LOGGER.debug("Transaction Timeout Check End. ");
- }
-
- }
-
- private void handleRetryRollbacking() {
- Collection rollbackingSessions = SessionHolder.getRetryRollbackingSessionManager().allSessions();
- for (GlobalSession rollbackingSession : rollbackingSessions) {
- try {
- core.doGlobalRollback(rollbackingSession, true);
- } catch (TransactionException ex) {
- LOGGER.info("Failed to retry rollbacking [{}] {} {}",
- rollbackingSession.getTransactionId(), ex.getCode(), ex.getMessage());
- }
- }
- }
-
- private void handleRetryCommitting() {
- Collection committingSessions = SessionHolder.getRetryCommittingSessionManager().allSessions();
- for (GlobalSession committingSession : committingSessions) {
- try {
- core.doGlobalCommit(committingSession, true);
- } catch (TransactionException ex) {
- LOGGER.info("Failed to retry committing [{}] {} {}",
- committingSession.getTransactionId(), ex.getCode(), ex.getMessage());
- }
- }
- }
-
- private void handleAsyncCommitting() {
- Collection asyncCommittingSessions = SessionHolder.getAsyncCommittingSessionManager()
- .allSessions();
- for (GlobalSession asyncCommittingSession : asyncCommittingSessions) {
- try {
- core.doGlobalCommit(asyncCommittingSession, true);
- } catch (TransactionException ex) {
- LOGGER.info("Failed to async committing [{}] {} {}",
- asyncCommittingSession.getTransactionId(), ex.getCode(), ex.getMessage());
- }
- }
- }
-
- private ScheduledThreadPoolExecutor retryRollbacking = new ScheduledThreadPoolExecutor(1,
- new NamedThreadFactory("RetryRollbacking", 1));
-
- private ScheduledThreadPoolExecutor retryCommitting = new ScheduledThreadPoolExecutor(1,
- new NamedThreadFactory("RetryCommitting", 1));
-
- private ScheduledThreadPoolExecutor asyncCommitting = new ScheduledThreadPoolExecutor(1,
- new NamedThreadFactory("AsyncCommitting", 1));
-
- private ScheduledThreadPoolExecutor timeoutCheck = new ScheduledThreadPoolExecutor(1,
- new NamedThreadFactory("TxTimeoutCheck", 1));
-
- /**
- * Init.
- */
- public void init() {
- retryRollbacking.scheduleAtFixedRate(new Runnable() {
-
- @Override
- public void run() {
- try {
- handleRetryRollbacking();
- } catch (Exception e) {
- LOGGER.info("Exception retry rollbacking ... ", e);
- }
-
- }
- }, 0, 5, TimeUnit.MILLISECONDS);
-
- retryCommitting.scheduleAtFixedRate(new Runnable() {
- @Override
- public void run() {
- try {
- handleRetryCommitting();
- } catch (Exception e) {
- LOGGER.info("Exception retry committing ... ", e);
- }
-
- }
- }, 0, 5, TimeUnit.MILLISECONDS);
-
- asyncCommitting.scheduleAtFixedRate(new Runnable() {
- @Override
- public void run() {
- try {
- handleAsyncCommitting();
- } catch (Exception e) {
- LOGGER.info("Exception async committing ... ", e);
- }
-
- }
- }, 0, 10, TimeUnit.MILLISECONDS);
-
- timeoutCheck.scheduleAtFixedRate(new Runnable() {
- @Override
- public void run() {
- try {
- timeoutCheck();
- } catch (Exception e) {
- LOGGER.info("Exception timeout checking ... ", e);
- }
-
- }
- }, 0, 2, TimeUnit.MILLISECONDS);
- }
-
- @Override
- public AbstractResultMessage onRequest(AbstractMessage request, RpcContext context) {
- if (!(request instanceof AbstractTransactionRequestToTC)) {
- throw new IllegalArgumentException();
- }
- AbstractTransactionRequestToTC transactionRequest = (AbstractTransactionRequestToTC)request;
- transactionRequest.setTCInboundHandler(this);
-
- return transactionRequest.handle(context);
- }
-
- @Override
- public void onResponse(AbstractResultMessage response, RpcContext context) {
- if (!(response instanceof AbstractTransactionResponse)) {
- throw new IllegalArgumentException();
- }
-
- }
-
- @Override
- public void destroy() {
- // 1. first shutdown timed task
- retryRollbacking.shutdown();
- retryCommitting.shutdown();
- asyncCommitting.shutdown();
- timeoutCheck.shutdown();
- try {
- retryRollbacking.awaitTermination(TIMED_TASK_SHUTDOWN_MAX_WAIT_MILLS, TimeUnit.MILLISECONDS);
- retryCommitting.awaitTermination(TIMED_TASK_SHUTDOWN_MAX_WAIT_MILLS, TimeUnit.MILLISECONDS);
- asyncCommitting.awaitTermination(TIMED_TASK_SHUTDOWN_MAX_WAIT_MILLS, TimeUnit.MILLISECONDS);
- timeoutCheck.awaitTermination(TIMED_TASK_SHUTDOWN_MAX_WAIT_MILLS, TimeUnit.MILLISECONDS);
- } catch (InterruptedException ingore) {
-
- }
- // 2. sencond close netty flow
- if (messageSender instanceof RpcServer){
- ((RpcServer) messageSender).destroy();
- }
- // 3. last destory SessionHolder
- SessionHolder.destory();
- }
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCore.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCore.java
deleted file mode 100755
index 1ba36763f..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/coordinator/DefaultCore.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server.coordinator;
-
-import io.seata.common.XID;
-import io.seata.core.exception.TransactionException;
-import io.seata.core.exception.TransactionExceptionCode;
-import io.seata.core.model.BranchStatus;
-import io.seata.core.model.BranchType;
-import io.seata.core.model.GlobalStatus;
-import io.seata.core.model.ResourceManagerInbound;
-import io.seata.server.lock.LockManager;
-import io.seata.server.lock.LockManagerFactory;
-import io.seata.server.session.BranchSession;
-import io.seata.server.session.GlobalSession;
-import io.seata.server.session.SessionHelper;
-import io.seata.server.session.SessionHolder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static io.seata.core.exception.TransactionExceptionCode.BranchTransactionNotExist;
-import static io.seata.core.exception.TransactionExceptionCode.FailedToAddBranch;
-import static io.seata.core.exception.TransactionExceptionCode.GlobalTransactionNotActive;
-import static io.seata.core.exception.TransactionExceptionCode.GlobalTransactionStatusInvalid;
-import static io.seata.core.exception.TransactionExceptionCode.LockKeyConflict;
-
-/**
- * The type Default core.
- *
- * @author sharajava
- */
-public class DefaultCore implements Core {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultCore.class);
-
- private LockManager lockManager = LockManagerFactory.get();
-
- private ResourceManagerInbound resourceManagerInbound;
-
- @Override
- public void setResourceManagerInbound(ResourceManagerInbound resourceManagerInbound) {
- this.resourceManagerInbound = resourceManagerInbound;
- }
-
- @Override
- public Long branchRegister(BranchType branchType, String resourceId, String clientId, String xid,
- String applicationData, String lockKeys) throws TransactionException {
- GlobalSession globalSession = assertGlobalSessionNotNull(XID.getTransactionId(xid));
- return globalSession.lockAndExcute(() -> {
- if (!globalSession.isActive()) {
- throw new TransactionException(GlobalTransactionNotActive, "Current Status: " + globalSession.getStatus());
- }
- if (globalSession.getStatus() != GlobalStatus.Begin) {
- throw new TransactionException(GlobalTransactionStatusInvalid,
- globalSession.getStatus() + " while expecting " + GlobalStatus.Begin);
- }
- BranchSession branchSession = SessionHelper.newBranchByGlobal(globalSession, branchType, resourceId,
- applicationData, lockKeys, clientId);
- if (!branchSession.lock()) {
- throw new TransactionException(LockKeyConflict);
- }
- try {
- globalSession.addBranch(branchSession);
- } catch (RuntimeException ex) {
- throw new TransactionException(FailedToAddBranch);
- }
- return branchSession.getBranchId();
- });
- }
-
- private GlobalSession assertGlobalSessionNotNull(long transactionId) throws TransactionException {
- GlobalSession globalSession = SessionHolder.findGlobalSession(transactionId);
- if (globalSession == null) {
- throw new TransactionException(TransactionExceptionCode.GlobalTransactionNotExist, "" + transactionId + "");
- }
- return globalSession;
- }
-
-
- @Override
- public void branchReport(BranchType branchType, String xid, long branchId, BranchStatus status,
- String applicationData) throws TransactionException {
- GlobalSession globalSession = assertGlobalSessionNotNull(XID.getTransactionId(xid));
- BranchSession branchSession = globalSession.getBranch(branchId);
- if (branchSession == null) {
- throw new TransactionException(BranchTransactionNotExist);
- }
- globalSession.changeBranchStatus(branchSession, status);
- }
-
- @Override
- public boolean lockQuery(BranchType branchType, String resourceId, String xid, String lockKeys)
- throws TransactionException {
- if (branchType == BranchType.AT) {
- return lockManager.isLockable(XID.getTransactionId(xid), resourceId, lockKeys);
- } else {
- return true;
- }
-
- }
-
- @Override
- public String begin(String applicationId, String transactionServiceGroup, String name, int timeout)
- throws TransactionException {
- GlobalSession session = GlobalSession.createGlobalSession(
- applicationId, transactionServiceGroup, name, timeout);
- session.addSessionLifecycleListener(SessionHolder.getRootSessionManager());
-
- session.begin();
-
- return XID.generateXID(session.getTransactionId());
- }
-
- @Override
- public GlobalStatus commit(String xid) throws TransactionException {
- GlobalSession globalSession = SessionHolder.findGlobalSession(XID.getTransactionId(xid));
- if (globalSession == null) {
- return GlobalStatus.Finished;
- }
- // just lock changeStatus
- boolean shouldCommit = globalSession.lockAndExcute(() -> {
- globalSession.closeAndClean(); // Highlight: Firstly, close the session, then no more branch can be registered.
- if (globalSession.getStatus() == GlobalStatus.Begin) {
- globalSession.changeStatus(GlobalStatus.Committing);
- return true;
- }
- return false;
- });
- if (!shouldCommit){
- return globalSession.getStatus();
- }
- if (globalSession.canBeCommittedAsync()) {
- asyncCommit(globalSession);
- return GlobalStatus.Committed;
- } else {
- doGlobalCommit(globalSession, false);
- }
- return globalSession.getStatus();
- }
-
- @Override
- public void doGlobalCommit(GlobalSession globalSession, boolean retrying) throws TransactionException {
- for (BranchSession branchSession : globalSession.getSortedBranches()) {
- BranchStatus currentStatus = branchSession.getStatus();
- if (currentStatus == BranchStatus.PhaseOne_Failed) {
- globalSession.removeBranch(branchSession);
- continue;
- }
- try {
- BranchStatus branchStatus = resourceManagerInbound.branchCommit(branchSession.getBranchType(),
- XID.generateXID(branchSession.getTransactionId()), branchSession.getBranchId(),
- branchSession.getResourceId(), branchSession.getApplicationData());
-
- switch (branchStatus) {
- case PhaseTwo_Committed:
- globalSession.removeBranch(branchSession);
- continue;
- case PhaseTwo_CommitFailed_Unretryable:
- if (globalSession.canBeCommittedAsync()) {
- LOGGER.error("By [{}], failed to commit branch {}", branchStatus, branchSession);
- continue;
- } else {
- SessionHelper.endCommitFailed(globalSession);
- LOGGER.error("Finally, failed to commit global[{}] since branch[{}] commit failed",
- globalSession.getTransactionId(), branchSession.getBranchId());
- return;
- }
- default:
- if (!retrying) {
- queueToRetryCommit(globalSession);
- return;
- }
- if (globalSession.canBeCommittedAsync()) {
- LOGGER.error("By [{}], failed to commit branch {}", branchStatus, branchSession);
- continue;
- } else {
- LOGGER.error(
- "Failed to commit global[{}] since branch[{}] commit failed, will retry later.",
- globalSession.getTransactionId(), branchSession.getBranchId());
- return;
- }
-
- }
-
- } catch (Exception ex) {
- LOGGER.error("Exception committing branch {}", branchSession, ex);
- if (!retrying) {
- queueToRetryCommit(globalSession);
- throw new TransactionException(ex);
- }
-
- }
-
- }
- if (globalSession.hasBranch()) {
- LOGGER.info("Global[{}] committing is NOT done.", globalSession.getTransactionId());
- return;
- }
- SessionHelper.endCommitted(globalSession);
- LOGGER.info("Global[{}] committing is successfully done.", globalSession.getTransactionId());
- }
-
- private void asyncCommit(GlobalSession globalSession) throws TransactionException {
- globalSession.addSessionLifecycleListener(SessionHolder.getAsyncCommittingSessionManager());
- SessionHolder.getAsyncCommittingSessionManager().addGlobalSession(globalSession);
- globalSession.changeStatus(GlobalStatus.AsyncCommitting);
- }
-
- private void queueToRetryCommit(GlobalSession globalSession) throws TransactionException {
- globalSession.addSessionLifecycleListener(SessionHolder.getRetryCommittingSessionManager());
- SessionHolder.getRetryCommittingSessionManager().addGlobalSession(globalSession);
- globalSession.changeStatus(GlobalStatus.CommitRetrying);
- }
-
- private void queueToRetryRollback(GlobalSession globalSession) throws TransactionException {
- globalSession.addSessionLifecycleListener(SessionHolder.getRetryRollbackingSessionManager());
- SessionHolder.getRetryRollbackingSessionManager().addGlobalSession(globalSession);
- GlobalStatus currentStatus = globalSession.getStatus();
- if (SessionHelper.isTimeoutGlobalStatus(currentStatus)) {
- globalSession.changeStatus(GlobalStatus.TimeoutRollbackRetrying);
- } else {
- globalSession.changeStatus(GlobalStatus.RollbackRetrying);
- }
- }
-
- @Override
- public GlobalStatus rollback(String xid) throws TransactionException {
- GlobalSession globalSession = SessionHolder.findGlobalSession(XID.getTransactionId(xid));
- if (globalSession == null) {
- return GlobalStatus.Finished;
- }
- // just lock changeStatus
- boolean shouldRollBack = globalSession.lockAndExcute(() -> {
- globalSession.close(); // Highlight: Firstly, close the session, then no more branch can be registered.
- if (globalSession.getStatus() == GlobalStatus.Begin) {
- globalSession.changeStatus(GlobalStatus.Rollbacking);
- return true;
- }
- return false;
- });
- if (!shouldRollBack){
- return globalSession.getStatus();
- }
-
- doGlobalRollback(globalSession, false);
- return globalSession.getStatus();
- }
-
- @Override
- public void doGlobalRollback(GlobalSession globalSession, boolean retrying) throws TransactionException {
- for (BranchSession branchSession : globalSession.getReverseSortedBranches()) {
- BranchStatus currentBranchStatus = branchSession.getStatus();
- if (currentBranchStatus == BranchStatus.PhaseOne_Failed) {
- globalSession.removeBranch(branchSession);
- continue;
- }
- try {
- BranchStatus branchStatus = resourceManagerInbound.branchRollback(branchSession.getBranchType(),
- XID.generateXID(branchSession.getTransactionId()), branchSession.getBranchId(),
- branchSession.getResourceId(), branchSession.getApplicationData());
-
- switch (branchStatus) {
- case PhaseTwo_Rollbacked:
- globalSession.removeBranch(branchSession);
- LOGGER.error("Successfully rolled back branch " + branchSession);
- continue;
- case PhaseTwo_RollbackFailed_Unretryable:
- SessionHelper.endRollbackFailed(globalSession);
- LOGGER.error("Failed to rollback global[" + globalSession.getTransactionId() + "] since branch["
- + branchSession.getBranchId() + "] rollback failed");
- return;
- default:
- LOGGER.info("Failed to rollback branch " + branchSession);
- if (!retrying) {
- queueToRetryRollback(globalSession);
- }
- return;
-
- }
- } catch (Exception ex) {
- LOGGER.error("Exception rollbacking branch " + branchSession, ex);
- if (!retrying) {
- queueToRetryRollback(globalSession);
- }
- throw new TransactionException(ex);
- }
-
- }
- SessionHelper.endRollbacked(globalSession);
- }
-
- @Override
- public GlobalStatus getStatus(String xid) throws TransactionException {
- GlobalSession globalSession = SessionHolder.findGlobalSession(XID.getTransactionId(xid));
- return globalSession.getStatus();
- }
-}
diff --git a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/DefaultLockManagerImpl.java b/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/DefaultLockManagerImpl.java
deleted file mode 100755
index a0c576c84..000000000
--- a/pigx-visual/pigx-seata-server/src/main/java/io/seata/server/lock/DefaultLockManagerImpl.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright 1999-2019 Seata.io Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.seata.server.lock;
-
-import io.netty.util.internal.ConcurrentSet;
-import io.seata.common.exception.ShouldNeverHappenException;
-import io.seata.common.util.StringUtils;
-import io.seata.core.exception.TransactionException;
-import io.seata.server.session.BranchSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * The type Default lock manager.
- *
- * @author sharajava
- */
-public class DefaultLockManagerImpl implements LockManager {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultLockManagerImpl.class);
-
- private static final int BUCKET_PER_TABLE = 128;
-
- private static final
- ConcurrentHashMap>>>
- LOCK_MAP = new ConcurrentHashMap>>>();
-
- @Override
- public boolean acquireLock(BranchSession branchSession) throws TransactionException {
- String resourceId = branchSession.getResourceId();
- long transactionId = branchSession.getTransactionId();
- ConcurrentHashMap>> dbLockMap = LOCK_MAP.get(resourceId);
- if (dbLockMap == null) {
- LOCK_MAP.putIfAbsent(resourceId,
- new ConcurrentHashMap>>());
- dbLockMap = LOCK_MAP.get(resourceId);
- }
- ConcurrentHashMap