diff --git a/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java b/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java index 3d3a82711c..bae9083d13 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/OracleValidConnectionChecker.java @@ -51,6 +51,7 @@ public class OracleValidConnectionChecker implements ValidConnectionChecker, Ser public boolean isValidConnection(Connection c) { try { + // unwrap Connection conn = (Connection) c.unwrap(clazz); if (conn != null) { c = conn; diff --git a/src/main/java/com/alibaba/druid/pool/vendor/SybaseExceptionSorter.java b/src/main/java/com/alibaba/druid/pool/vendor/SybaseExceptionSorter.java new file mode 100644 index 0000000000..396cbd58b4 --- /dev/null +++ b/src/main/java/com/alibaba/druid/pool/vendor/SybaseExceptionSorter.java @@ -0,0 +1,25 @@ +package com.alibaba.druid.pool.vendor; + +import java.io.Serializable; +import java.sql.SQLException; + +import com.alibaba.druid.pool.ExceptionSorter; + +public class SybaseExceptionSorter implements ExceptionSorter, Serializable { + + private static final long serialVersionUID = 2742592563671255116L; + + public boolean isExceptionFatal(SQLException e) { + boolean result = false; + + String errorText = (e.getMessage()).toUpperCase(); + + if ((errorText.indexOf("JZ0C0") > -1) || // ERR_CONNECTION_DEAD + (errorText.indexOf("JZ0C1") > -1) // ERR_IOE_KILLED_CONNECTION + ) { + result = true; + } + + return result; + } +}