Я получаю исключение, когда метод вызывается из 3 или 4 потоков. Этот метод получает соединение с базой данных внутри и заполняет некоторые значения из БД, а затем соединение (соединение, resultset и prepareStatement) закрывается должным образом внутри метода. Все еще получаю исключение.Получение драйвера TDS - java.lang.NullPointerException. это исключение не соответствует
Thread_1 - вызов метода abc(). соединение открыто и закрыто внутри метода.
Вызов метода Thread_2 - abc(). соединение открыто и закрыто внутри метода.
Вызывается метод Thread_3 - abc(). соединение открыто и закрыто внутри метода.
Непонятно, почему возникает исключение, даже если соединение открыто и закрыто правильно. DataBase - MS SQL, Java - 1,6, апач-кот 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)
Просьба сообщить об этом.
Я согласен с этим ответом. Ваше приложение не является потокобезопасным, и у вас может быть какое-то условие гонки. – tom