add PGExceptionSorter

This commit is contained in:
wenshao
2014-12-03 02:32:29 +08:00
parent cadce912f6
commit 531e739a02
2 changed files with 34 additions and 0 deletions
@@ -69,6 +69,7 @@ import com.alibaba.druid.pool.vendor.MySqlExceptionSorter;
import com.alibaba.druid.pool.vendor.MySqlValidConnectionChecker;
import com.alibaba.druid.pool.vendor.OracleExceptionSorter;
import com.alibaba.druid.pool.vendor.OracleValidConnectionChecker;
import com.alibaba.druid.pool.vendor.PGExceptionSorter;
import com.alibaba.druid.pool.vendor.SybaseExceptionSorter;
import com.alibaba.druid.proxy.DruidDriver;
import com.alibaba.druid.proxy.jdbc.DataSourceProxyConfig;
@@ -911,6 +912,9 @@ public class DruidDataSource extends DruidAbstractDataSource
} else if (realDriverClassName.equals("com.sybase.jdbc2.jdbc.SybDriver")) {
this.exceptionSorter = new SybaseExceptionSorter();
} else if (realDriverClassName.equals("org.postgresql.Driver")) {
this.exceptionSorter = new PGExceptionSorter();
} else if (realDriverClassName.equals("com.alibaba.druid.mock.MockDriver")) {
this.exceptionSorter = new MockExceptionSorter();
} else if (realDriverClassName.contains("DB2")) {
@@ -0,0 +1,30 @@
package com.alibaba.druid.pool.vendor;
import java.sql.SQLException;
import java.util.Properties;
import com.alibaba.druid.pool.ExceptionSorter;
public class PGExceptionSorter implements ExceptionSorter {
@Override
public boolean isExceptionFatal(SQLException e) {
String sqlState = e.getSQLState();
if (sqlState == null) {
return false;
}
// org.postgresql.util.PSQLState
if (sqlState.startsWith("08")) {
return true;
}
return false;
}
@Override
public void configFromProperties(Properties properties) {
}
}