This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 8e9b2b55428 Add SeataATTransactionSQLException (#30788)
8e9b2b55428 is described below
commit 8e9b2b554286afb821048965b46d554c2fae294c
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Apr 6 14:01:13 2024 +0800
Add SeataATTransactionSQLException (#30788)
---
.../content/user-manual/error-code/sql-error-code.cn.md | 10 +++++-----
.../content/user-manual/error-code/sql-error-code.en.md | 10 +++++-----
.../database/core/exception/ConnectionURLException.java | 2 +-
.../driver/exception/DriverConnectionException.java | 2 +-
.../at/SeataATShardingSphereTransactionManager.java | 4 ++--
...n.java => SeataATApplicationIDNotFoundException.java} | 9 ++++-----
.../seata/at/exception/SeataATDisabledException.java | 5 ++---
.../at/exception/SeataATTransactionSQLException.java} | 16 ++++++----------
.../xa/jta/exception/XATransactionSQLException.java | 4 ++--
9 files changed, 28 insertions(+), 34 deletions(-)
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 989d0933f7e..61b8ded28f1 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -89,11 +89,11 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| 14002 | 44000 | Max length of unique resource name '%s' exceeded,
should be less than 45. |
| 14003 | 25000 | Transaction timeout should more than 0.
|
| 14004 | 25000 | Close transaction manager failed.
|
-| 14100 | 25000 | Failed to create '%s' XA data source.
|
-| 14101 | 25000 | Can not start new XA transaction in a active
transaction. |
-| 14102 | 25000 | Check XA transaction privileges failed on data
source, please grant '%s' to current user. |
-| 14301 | 25000 | ShardingSphere Seata-AT transaction has been
disabled. |
-| 14302 | 25000 | Please config application id within seata.conf
file. |
+| 14200 | 25000 | Failed to create '%s' XA data source.
|
+| 14201 | 25000 | Can not start new XA transaction in a active
transaction. |
+| 14202 | 25000 | Check XA transaction privileges failed on data
source, please grant '%s' to current user. |
+| 14400 | 44000 | No application id within 'seata.conf' file.
|
+| 14401 | 25000 | Seata-AT transaction has been disabled.
|
### 集群
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index 797f76eb9d6..cde9edbe585 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -90,11 +90,11 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| 14002 | 44000 | Max length of unique resource name '%s' exceeded,
should be less than 45. |
| 14003 | 25000 | Transaction timeout should more than 0.
|
| 14004 | 25000 | Close transaction manager failed.
|
-| 14100 | 25000 | Failed to create '%s' XA data source.
|
-| 14101 | 25000 | Can not start new XA transaction in a active
transaction. |
-| 14102 | 25000 | Check XA transaction privileges failed on data
source, please grant '%s' to current user. |
-| 14301 | 25000 | ShardingSphere Seata-AT transaction has been
disabled. |
-| 14302 | 25000 | Please config application id within seata.conf
file. |
+| 14200 | 25000 | Failed to create '%s' XA data source.
|
+| 14201 | 25000 | Can not start new XA transaction in a active
transaction. |
+| 14202 | 25000 | Check XA transaction privileges failed on data
source, please grant '%s' to current user. |
+| 14400 | 44000 | No application id within 'seata.conf' file.
|
+| 14401 | 25000 | Seata-AT transaction has been disabled.
|
### Cluster
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
index 49a64e4f6a7..85485263efe 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/exception/ConnectionURLException.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
/**
* Connection URL exception.
*/
-public class ConnectionURLException extends ConnectionSQLException {
+public abstract class ConnectionURLException extends ConnectionSQLException {
private static final long serialVersionUID = 6410735261100319966L;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
index a8d0910f8c0..c09d81e8762 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/exception/DriverConnectionException.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
/**
* Driver connection exception.
*/
-public class DriverConnectionException extends ConnectionSQLException {
+public abstract class DriverConnectionException extends ConnectionSQLException
{
private static final long serialVersionUID = -4543547821709772632L;
diff --git
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
index de7592f46e9..3035d6ea4e7 100644
---
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
+++
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
@@ -31,7 +31,7 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
import org.apache.shardingsphere.transaction.api.TransactionType;
-import
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATConfigurationException;
+import
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATApplicationIDNotFoundException;
import
org.apache.shardingsphere.transaction.base.seata.at.exception.SeataATDisabledException;
import
org.apache.shardingsphere.transaction.exception.TransactionTimeoutException;
import
org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
@@ -74,7 +74,7 @@ public final class SeataATShardingSphereTransactionManager
implements ShardingSp
}
private void initSeataRPCClient() {
- ShardingSpherePreconditions.checkNotNull(applicationId, () -> new
SeataATConfigurationException("Please config application id within seata.conf
file"));
+ ShardingSpherePreconditions.checkNotNull(applicationId,
SeataATApplicationIDNotFoundException::new);
TMClient.init(applicationId, transactionServiceGroup);
RMClient.init(applicationId, transactionServiceGroup);
}
diff --git
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
similarity index 73%
rename from
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
rename to
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
index b0e867b3f92..d592135f961 100644
---
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATConfigurationException.java
+++
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATApplicationIDNotFoundException.java
@@ -18,16 +18,15 @@
package org.apache.shardingsphere.transaction.base.seata.at.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
/**
- * Seata AT configuration exception.
+ * Seata AT application ID not found exception.
*/
-public final class SeataATConfigurationException extends
TransactionSQLException {
+public final class SeataATApplicationIDNotFoundException extends
SeataATTransactionSQLException {
private static final long serialVersionUID = 3742525073470768226L;
- public SeataATConfigurationException(final String errorMessage) {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 302, errorMessage);
+ public SeataATApplicationIDNotFoundException() {
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 0, "No application id
within 'seata.conf' file.");
}
}
diff --git
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
index e58b6e892ec..0ff5e6c8100 100644
---
a/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
+++
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATDisabledException.java
@@ -18,16 +18,15 @@
package org.apache.shardingsphere.transaction.base.seata.at.exception;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
-import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
/**
* Seata AT disabled exception.
*/
-public final class SeataATDisabledException extends TransactionSQLException {
+public final class SeataATDisabledException extends
SeataATTransactionSQLException {
private static final long serialVersionUID = 3742525073470768226L;
public SeataATDisabledException() {
- super(XOpenSQLState.INVALID_TRANSACTION_STATE, 301, "ShardingSphere
Seata-AT transaction has been disabled");
+ super(XOpenSQLState.INVALID_TRANSACTION_STATE, 1, "Seata-AT
transaction has been disabled.");
}
}
diff --git
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
similarity index 70%
copy from
kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
copy to
kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
index 3533c35e264..cb81a501ad9 100644
---
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
+++
b/kernel/transaction/type/base/seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/exception/SeataATTransactionSQLException.java
@@ -15,31 +15,27 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.transaction.xa.jta.exception;
+package org.apache.shardingsphere.transaction.base.seata.at.exception;
import com.google.common.base.Preconditions;
import
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.SQLState;
import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.TransactionSQLException;
/**
- * XA transaction SQL exception.
+ * Seata AT transaction SQL exception.
*/
-public class XATransactionSQLException extends TransactionSQLException {
+public abstract class SeataATTransactionSQLException extends
TransactionSQLException {
private static final long serialVersionUID = 7649367025303908263L;
- private static final int XA_CODE = 1;
+ private static final int SEATA_CODE = 4;
- protected XATransactionSQLException(final SQLState sqlState, final int
errorCode, final String reason, final Object... messageArgs) {
+ protected SeataATTransactionSQLException(final SQLState sqlState, final
int errorCode, final String reason, final Object... messageArgs) {
super(sqlState, getErrorCode(errorCode), reason, messageArgs);
}
- protected XATransactionSQLException(final SQLState sqlState, final int
errorCode, final String reason, final Exception cause) {
- super(sqlState, getErrorCode(errorCode), reason, cause);
- }
-
private static int getErrorCode(final int errorCode) {
Preconditions.checkArgument(errorCode >= 0 && errorCode < 100, "The
value range of error code should be [0, 100).");
- return XA_CODE * 100 + errorCode;
+ return SEATA_CODE * 100 + errorCode;
}
}
diff --git
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
index 3533c35e264..ee2c4d9653c 100644
---
a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
+++
b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/exception/XATransactionSQLException.java
@@ -24,11 +24,11 @@ import
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.c
/**
* XA transaction SQL exception.
*/
-public class XATransactionSQLException extends TransactionSQLException {
+public abstract class XATransactionSQLException extends
TransactionSQLException {
private static final long serialVersionUID = 7649367025303908263L;
- private static final int XA_CODE = 1;
+ private static final int XA_CODE = 2;
protected XATransactionSQLException(final SQLState sqlState, final int
errorCode, final String reason, final Object... messageArgs) {
super(sqlState, getErrorCode(errorCode), reason, messageArgs);