mirror of
https://github.com/actiontech/dble.git
synced 2026-05-21 23:29:15 -05:00
rollback setfail
This commit is contained in:
+6
@@ -143,11 +143,17 @@ public class XARollbackNodesHandler extends AbstractRollbackNodesHandler {
|
||||
}
|
||||
if (mysqlCon.isClosed()) {
|
||||
mysqlCon.setXaStatus(TxState.TX_ROLLBACK_FAILED_STATE);
|
||||
session.setXaState(TxState.TX_ROLLBACK_FAILED_STATE);
|
||||
setFail("Connection {DataHost[" + mysqlCon.getHost() + ":" + mysqlCon.getPort() + "],Schema[" + mysqlCon.getSchema() + "],threadID[" +
|
||||
mysqlCon.getThreadId() + "]} was closed ");
|
||||
}
|
||||
rollbackPhase(mysqlCon);
|
||||
} else if (session.getXaState() == TxState.TX_ROLLBACK_FAILED_STATE || session.getXaState() == TxState.TX_PREPARE_UNCONNECT_STATE) {
|
||||
if (mysqlCon.isClosed()) {
|
||||
mysqlCon.setXaStatus(TxState.TX_ROLLBACK_FAILED_STATE);
|
||||
session.setXaState(TxState.TX_ROLLBACK_FAILED_STATE);
|
||||
setFail("Connection {DataHost[" + mysqlCon.getHost() + ":" + mysqlCon.getPort() + "],Schema[" + mysqlCon.getSchema() + "],threadID[" +
|
||||
mysqlCon.getThreadId() + "]} was closed ");
|
||||
}
|
||||
rollbackPhase(mysqlCon);
|
||||
} else if (session.getXaState() == TxState.TX_ENDED_STATE) {
|
||||
|
||||
@@ -8,6 +8,7 @@ package com.actiontech.dble.server.handler;
|
||||
import com.actiontech.dble.DbleServer;
|
||||
import com.actiontech.dble.backend.BackendConnection;
|
||||
import com.actiontech.dble.backend.mysql.nio.MySQLConnection;
|
||||
import com.actiontech.dble.backend.mysql.xa.TxState;
|
||||
import com.actiontech.dble.config.ErrorCode;
|
||||
import com.actiontech.dble.net.FrontendConnection;
|
||||
import com.actiontech.dble.net.NIOProcessor;
|
||||
@@ -76,7 +77,8 @@ public final class KillHandler {
|
||||
}
|
||||
|
||||
NonBlockingSession killSession = ((ServerConnection) killConn).getSession2();
|
||||
if (killSession.getSessionStage() == SessionStage.Init || killSession.getSessionStage() == SessionStage.Finished) {
|
||||
if ((killSession.getXaState() != null && killSession.getXaState() != TxState.TX_INITIALIZE_STATE) ||
|
||||
killSession.getSessionStage() == SessionStage.Init || killSession.getSessionStage() == SessionStage.Finished) {
|
||||
getOkPacket(c).write(c);
|
||||
c.getSession2().multiStatementNextSql(c.getSession2().getIsMultiStatement().get());
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user