获取TDS驱动程序 – java.lang.NullPointerException。 这种例外不一致

从3或4个线程调用方法时,我遇到exception。 此方法在方法内部获取DataBase连接并从DB填充一些值,然后连接(connection,resultset和prepareStatement)仅在方法内正确关闭。 仍然有例外。

Thread_1 – 调用abc()方法。 连接打开和关闭内部方法。
Thread_2 – 调用abc()方法。 连接打开和关闭内部方法。
Thread_3 – 调用abc()方法。 连接打开和关闭内部方法。

我不清楚为什么即使正确打开和关闭连接也会发生exception。 DataBase – Ms sql,Java – 1.6,apache-tomcat 6。

主要的是它不一致,有时会发生exception,有时则不会。

1. Exception - com.inet.tds.am: [TDS Driver]java.lang.NullPointerException at com.inet.tds.aj.a(Unknown Source) at com.inet.tds.rg(Unknown Source) at com.inet.tds.r.executeQuery(Unknown Source) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) 2. Exception - java.sql.SQLException: Connection is closed. at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.checkOpen(PoolingDataSource.java:175) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:301) 

请告知此事。

数据库连接可能不是线程安全的。 虽然从堆栈跟踪中看起来您正在尝试使用连接池(dbcp),但您可能没有正确设置它。 如果您使用更多配置和进行数据库调用的代码更新问题,也许有人可以发现问题。

请找到配置/上下文文件 –