diff --git a/src/main/java/com/actiontech/dble/config/model/SystemConfig.java b/src/main/java/com/actiontech/dble/config/model/SystemConfig.java index 3b2abf027..9c898541e 100644 --- a/src/main/java/com/actiontech/dble/config/model/SystemConfig.java +++ b/src/main/java/com/actiontech/dble/config/model/SystemConfig.java @@ -180,7 +180,7 @@ private SystemConfig() { //unit: ms private long releaseTimeout = 10L; - private int appendTraceId = 1; + private int appendTraceId = 0; public int getAppendTraceId() { diff --git a/src/main/java/com/actiontech/dble/server/trace/ITraceResult.java b/src/main/java/com/actiontech/dble/server/trace/ITraceResult.java index b2c82935b..aefe373c1 100644 --- a/src/main/java/com/actiontech/dble/server/trace/ITraceResult.java +++ b/src/main/java/com/actiontech/dble/server/trace/ITraceResult.java @@ -13,7 +13,7 @@ * Create Date: 2025-04-17 */ public interface ITraceResult { - public enum SqlTraceType { + enum SqlTraceType { SINGLE_NODE_QUERY, MULTI_NODE_QUERY, MULTI_NODE_GROUP, COMPLEX_QUERY, RWSPLIT_QUERY; } diff --git a/src/main/java/com/actiontech/dble/server/trace/RwTraceResult.java b/src/main/java/com/actiontech/dble/server/trace/RwTraceResult.java index e84642a00..2d719a7de 100644 --- a/src/main/java/com/actiontech/dble/server/trace/RwTraceResult.java +++ b/src/main/java/com/actiontech/dble/server/trace/RwTraceResult.java @@ -48,8 +48,8 @@ public void setVeryStartPrepare(long veryStartPrepare) { this.requestStartPrepare = new TraceRecord(veryStartPrepare); } - public void setDBInstance(PhysicalDbInstance dbInstance) { - this.dbInstance = dbInstance; + public void setDBInstance(PhysicalDbInstance tmpDbInstance) { + this.dbInstance = tmpDbInstance; } public void setParseStartPrepare(TraceRecord parseStartPrepare) { diff --git a/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitQueryHandler.java b/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitQueryHandler.java index cfcea2f3f..7ca09c0cf 100644 --- a/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitQueryHandler.java +++ b/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitQueryHandler.java @@ -18,6 +18,8 @@ import java.io.ByteArrayOutputStream; +import static com.actiontech.dble.net.mysql.MySQLPacket.COM_QUERY; + public class RWSplitQueryHandler implements FrontendQueryHandler { @@ -46,6 +48,7 @@ public void query(String sql) { return; } int rs = RwSplitServerParse.parse(sql); + int sqlType = rs & 0xff; if (AppendTraceId.getInstance().isEnable()) { sql = String.format("/*+ trace_id=%d-%d */ %s", session.getService().getConnection().getId(), session.getService().getSqlUniqueId().incrementAndGet(), sql); } @@ -53,14 +56,13 @@ public void query(String sql) { session.getService().setExecuteSql(sql); session.endParse(); int hintLength = RouteService.isHintSql(sql); - int sqlType = rs & 0xff; + if (hintLength >= 0) { session.executeHint(sqlType, sql, null); } else { if (AppendTraceId.getInstance().isEnable()) { CommandPacket packet = new CommandPacket(); - final byte COM_QUERY = 0x3; packet.setCommand(COM_QUERY); packet.setArg(sql.getBytes()); packet.setPacketId(session.getService().getExecuteSqlBytes()[3]); diff --git a/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitService.java b/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitService.java index c3ece8ae7..665422c7f 100644 --- a/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitService.java +++ b/src/main/java/com/actiontech/dble/services/rwsplit/RWSplitService.java @@ -31,6 +31,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static com.actiontech.dble.net.mysql.MySQLPacket.COM_STMT_PREPARE; + public class RWSplitService extends BusinessService { private static final Logger LOGGER = LoggerFactory.getLogger(RWSplitService.class); @@ -122,7 +124,7 @@ protected void handleInnerData(byte[] data) { handleComQuery(data); break; // prepared statement - case MySQLPacket.COM_STMT_PREPARE: + case COM_STMT_PREPARE: commands.doStmtPrepare(); handleComStmtPrepare(data); break; @@ -225,15 +227,13 @@ private void handleComStmtPrepare(byte[] data) { sql = sql.substring(0, sql.length() - 1).trim(); } sql = sql.trim(); - int rs = ServerParse.parse(sql); - int sqlType = rs & 0xff; + String tmpSql = sql; byte[] tmpData = data; if (AppendTraceId.getInstance().isEnable()) { tmpSql = String.format("/*+ trace_id=%d-%d */ %s", session.getService().getConnection().getId(), getSqlUniqueId().incrementAndGet(), sql); CommandPacket packet = new CommandPacket(); - final byte COM_STMT_PREPARE = 0x16; packet.setCommand(COM_STMT_PREPARE); packet.setArg(tmpSql.getBytes()); packet.setPacketId(data[3]); @@ -242,6 +242,8 @@ private void handleComStmtPrepare(byte[] data) { tmpData = out.toByteArray(); } + int rs = ServerParse.parse(sql); + int sqlType = rs & 0xff; final String finalSql = tmpSql; setExecuteSql(finalSql); final byte[] finalData = tmpData;