mirror of
https://github.com/actiontech/dble.git
synced 2026-01-05 20:30:40 -06:00
[inner-2194] fix: questions and transactions occasionally appear as 0 (cherry pick from master)
This commit is contained in:
@@ -154,8 +154,11 @@ public abstract class AbstractConnection implements Connection {
|
||||
|
||||
private void closeImmediatelyInner(String reason) {
|
||||
if (isClosed.compareAndSet(false, true)) {
|
||||
if (service instanceof BusinessService)
|
||||
((BusinessService) service).transactionsCountInTx();
|
||||
if (service instanceof BusinessService) {
|
||||
BusinessService bService = (BusinessService) service;
|
||||
bService.transactionsCountInTx();
|
||||
bService.addHisQueriesCount();
|
||||
}
|
||||
StatisticListener.getInstance().record(service, r -> r.onExit(reason));
|
||||
StatisticListener.getInstance().remove(service);
|
||||
closeSocket();
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.actiontech.dble.net.connection.AbstractConnection;
|
||||
import com.actiontech.dble.net.mysql.EOFPacket;
|
||||
import com.actiontech.dble.net.service.AuthResultInfo;
|
||||
import com.actiontech.dble.server.variables.MysqlVariable;
|
||||
import com.actiontech.dble.singleton.TsQueriesCounter;
|
||||
import com.actiontech.dble.statistic.CommandCount;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
@@ -83,6 +84,10 @@ public abstract class BusinessService<T extends UserConfig> extends FrontendServ
|
||||
transactionsCounter.set(Long.MIN_VALUE);
|
||||
}
|
||||
|
||||
public void addHisQueriesCount() {
|
||||
TsQueriesCounter.getInstance().addToHistory(this);
|
||||
}
|
||||
|
||||
public void getAndIncrementTxId() {
|
||||
txId.getAndIncrement();
|
||||
}
|
||||
|
||||
@@ -35,7 +35,6 @@ import com.actiontech.dble.services.BusinessService;
|
||||
import com.actiontech.dble.services.mysqlauthenticate.MySQLChangeUserService;
|
||||
import com.actiontech.dble.singleton.SerializableLock;
|
||||
import com.actiontech.dble.singleton.TraceManager;
|
||||
import com.actiontech.dble.singleton.TsQueriesCounter;
|
||||
import com.actiontech.dble.statistic.sql.StatisticListener;
|
||||
import com.actiontech.dble.util.SplitUtil;
|
||||
import com.actiontech.dble.util.exception.NeedDelayedException;
|
||||
@@ -580,7 +579,6 @@ public class ShardingService extends BusinessService<ShardingUserConfig> {
|
||||
@Override
|
||||
public void cleanup() {
|
||||
super.cleanup();
|
||||
TsQueriesCounter.getInstance().addToHistory(this);
|
||||
session.terminate();
|
||||
if (getLoadDataInfileHandler() != null) {
|
||||
getLoadDataInfileHandler().clear();
|
||||
|
||||
@@ -28,7 +28,6 @@ import com.actiontech.dble.services.mysqlauthenticate.MySQLChangeUserService;
|
||||
import com.actiontech.dble.services.mysqlsharding.LoadDataProtoHandlerImpl;
|
||||
import com.actiontech.dble.services.rwsplit.handle.PreparedStatementHolder;
|
||||
import com.actiontech.dble.singleton.TraceManager;
|
||||
import com.actiontech.dble.singleton.TsQueriesCounter;
|
||||
import com.actiontech.dble.statistic.sql.StatisticListener;
|
||||
import com.alibaba.druid.wall.WallCheckResult;
|
||||
import com.alibaba.druid.wall.WallProvider;
|
||||
@@ -467,7 +466,6 @@ public class RWSplitService extends BusinessService<RwSplitUserConfig> {
|
||||
public void cleanup() {
|
||||
super.cleanup();
|
||||
if (session != null) {
|
||||
TsQueriesCounter.getInstance().addToHistory(this);
|
||||
session.close("clean up");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user