Получение драйвера TDS - исключение java.lang.NullPointerException.это исключение не соответствует - PullRequest
0 голосов
/ 23 февраля 2012

Я получаю исключение, когда метод вызывается из 3 или 4 потоков.Этот метод получает соединение DataBase внутри метода и заполняет некоторые значения из БД, а затем соединение (connection, resultset и 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)

Пожалуйста, сообщите об этом.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Соединение с базой данных, вероятно, не является поточно-ориентированным. Хотя из вашей трассировки стека видно, что вы пытаетесь использовать пул соединений (dbcp), он может быть неправильно настроен. Если вы обновите вопрос, добавив больше настроек и кода, из которого вы делаете вызов БД, возможно, кто-то может определить проблему.

0 голосов
/ 24 февраля 2012

Пожалуйста, найдите файл конфигурации / контекста -

 <Resource name="jdbc/mysqlDS" auth="Container" type="javax.sql.DataSource"
            driverClassName="com.inet.tds.TdsDriver"
            url="jdbc:inetdae7://194.0.0.1:1433/july"
            username="team" password="!team!"
            maxActive="50" maxIdle="2" maxWait="10000"
            removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/>
...