Я получаю исключение, когда метод вызывается из 3 или 4 потоков. Этот метод получает соединение с базой данных внутри метода и заполняет некоторые значения из БД, а затем соединение (соединение, набор результатов и prepareStatement) корректно закрывается только внутри метода. Все еще получаю исключение.
Thread_1 - вызван метод abc(). соединение открывается и закрывается внутри метода.
Thread_2 - вызывается метод abc(). соединение открывается и закрывается внутри метода.
Thread_3 - вызывается метод abc(). соединение открыто и закрыто внутри метода.
Я не понимаю, почему возникает исключение, хотя соединение открывается и закрывается правильно. База данных — MS SQL, Java — 1.6, apache-tomcat 6.
Главное, что это непоследовательно, иногда возникает исключение, а иногда нет.
1. Exception -
com.inet.tds.am:
[TDS Driver]java.lang.NullPointerException
at com.inet.tds.aj.a(Unknown Source)
at com.inet.tds.r.g(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)
Пожалуйста, сообщите об этом.