diff --git a/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java b/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java index cd2c088ea..836f3931c 100644 --- a/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java +++ b/src/main/java/com/actiontech/dble/backend/pool/ConnectionPool.java @@ -298,10 +298,6 @@ public class ConnectionPool extends PoolBase implements PooledConnectionListener return allConnections.size(); } - public boolean isFromSlave() { - return !config.isPrimary(); - } - public void close(final PooledConnection conn) { if (remove(conn)) { final int tc = totalConnections.decrementAndGet(); diff --git a/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java b/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java index 489af8093..6bd247d38 100644 --- a/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/BackendConnection.java @@ -173,6 +173,10 @@ public class BackendConnection extends PooledConnection { return getPoolRelated() != null ? getPoolRelated().getConnectionTimeout() : connectionTimeout; } + public boolean isFromSlaveDB() { + return instance.isReadInstance(); + } + @Override public String toString() { return "BackendConnection[id = " + id + " host = " + host + " port = " + port + " localPort = " + localPort + " mysqlId = " + threadId + " db config = " + instance; diff --git a/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java b/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java index 587ba8369..767f265b6 100644 --- a/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java +++ b/src/main/java/com/actiontech/dble/net/connection/PooledConnection.java @@ -106,10 +106,6 @@ public abstract class PooledConnection extends AbstractConnection { this.poolRelated = poolRelated; } - public boolean isFromSlaveDB() { - return poolRelated.isFromSlave(); - } - public String getOldSchema() { return oldSchema; } diff --git a/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java b/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java index 5e65c845b..f4f2f9515 100644 --- a/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java +++ b/src/main/java/com/actiontech/dble/route/handler/HintDbInstanceHandler.java @@ -57,11 +57,11 @@ public class HintDbInstanceHandler implements HintHandler { getDbInstances(true).stream(). filter(dbInstance -> StringUtil.equals(dbInstance.getConfig().getUrl().trim(), dbInstanceUrl.trim())). collect(Collectors.toSet()); - Optional slaveInstance = dbInstanceSet.stream().filter(instance -> !instance.getConfig().isPrimary()).findFirst(); + Optional slaveInstance = dbInstanceSet.stream().filter(instance -> instance.isReadInstance()).findFirst(); if (slaveInstance.isPresent()) { return slaveInstance.get(); } else { - Optional masterInstance = dbInstanceSet.stream().filter(instance -> instance.getConfig().isPrimary()).findFirst(); + Optional masterInstance = dbInstanceSet.stream().filter(instance -> !instance.isReadInstance()).findFirst(); return masterInstance.isPresent() ? masterInstance.get() : null; } }