Browse Source

Merge pull request #7275 in CORE/base-third from release/11.0 to bugfix/11.0

* commit 'c25524bd8bcad9ef31b7f8d8cafbae07a8dadaf3':
  REPORT-83447  改下注释
  REPORT-83447  驱动管理mysql自定义连接和druid监控不兼容
bugfix/11.0
superman 2 years ago
parent
commit
97f67e2c7b
  1. 10
      fine-druid/src/main/java/com/fr/third/alibaba/druid/util/MySqlUtils.java

10
fine-druid/src/main/java/com/fr/third/alibaba/druid/util/MySqlUtils.java

@ -16,6 +16,7 @@
package com.fr.third.alibaba.druid.util; package com.fr.third.alibaba.druid.util;
import com.fr.third.alibaba.druid.DbType; import com.fr.third.alibaba.druid.DbType;
import com.fr.third.alibaba.druid.proxy.jdbc.ConnectionProxy;
import com.fr.third.alibaba.druid.sql.SQLUtils; import com.fr.third.alibaba.druid.sql.SQLUtils;
import com.fr.third.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; import com.fr.third.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
@ -403,8 +404,13 @@ public class MySqlUtils {
} }
public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException { public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException {
// durid监控若开启,Connection 对象是 ConnectionProxy ,且ConnectionProxy和Connection不一定在同一个类加载器下
ClassLoader cl = conn.getClass().getClassLoader(); ClassLoader cl;
if (conn instanceof ConnectionProxy) {
cl = ((ConnectionProxy) conn).getRawObject().getClass().getClassLoader();
} else {
cl = conn.getClass().getClassLoader();
}
ConnectionClass cc = classLoaderConnectionClassMap.compute(cl, (k, v) -> { ConnectionClass cc = classLoaderConnectionClassMap.compute(cl, (k, v) -> {
if (v == null || v.class_connectionImpl.getClassLoader() != cl) { if (v == null || v.class_connectionImpl.getClassLoader() != cl) {
return new ConnectionClass(); return new ConnectionClass();

Loading…
Cancel
Save