|
|
@ -386,13 +386,15 @@ public class MySqlUtils { |
|
|
|
|
|
|
|
|
|
|
|
public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException { |
|
|
|
public static long getLastPacketReceivedTimeMs(Connection conn) throws SQLException { |
|
|
|
if (!class_connectionImpl_Error) { |
|
|
|
if (!class_connectionImpl_Error) { |
|
|
|
|
|
|
|
if (conn == null) { |
|
|
|
|
|
|
|
return -1; |
|
|
|
|
|
|
|
} |
|
|
|
try { |
|
|
|
try { |
|
|
|
class_connectionImpl = Utils.loadClass("com.mysql.jdbc.MySQLConnection"); |
|
|
|
//REPORT-66916 这里之前获取到的是lib下的mysql5实现,而不是自定义mysql8驱动的实现
|
|
|
|
if (class_connectionImpl == null) { |
|
|
|
String className = conn.getClass().getName(); |
|
|
|
class_connectionImpl = Utils.loadClass("com.mysql.cj.MysqlConnection"); |
|
|
|
class_connectionImpl = Utils.loadClass(className); |
|
|
|
if (class_connectionImpl != null) { |
|
|
|
if (className.equals("com.mysql.cj.MysqlConnection")) { |
|
|
|
mysqlJdbcVersion6 = true; |
|
|
|
mysqlJdbcVersion6 = true; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} catch (Throwable error) { |
|
|
|
} catch (Throwable error) { |
|
|
|
class_connectionImpl_Error = true; |
|
|
|
class_connectionImpl_Error = true; |
|
|
@ -431,7 +433,7 @@ public class MySqlUtils { |
|
|
|
|
|
|
|
|
|
|
|
return System.currentTimeMillis() |
|
|
|
return System.currentTimeMillis() |
|
|
|
- ((Long) |
|
|
|
- ((Long) |
|
|
|
getIdleFor.invoke(connImpl)) |
|
|
|
getIdleFor.invoke(connImpl)) |
|
|
|
.longValue(); |
|
|
|
.longValue(); |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
throw new SQLException("getIdleFor error", e); |
|
|
|
throw new SQLException("getIdleFor error", e); |
|
|
|