메소드가 3 또는 4 스레드에서 호출 될 때 예외가 발생합니다. 이 메서드는 메서드 내에서 DataBase 연결을 가져오고 일부 값을 DB에서 채운 다음 connection (connection, resultset 및 prepareStatement)이 메서드 내에서만 제대로 닫히기 시작합니다. 여전히 예외가 발생합니다.TDS 드라이버 가져 오기 - java.lang.NullPointerException. 이 예외는 일관성이 없습니다
Thread_1 - abc() 메소드가 호출되었습니다. 연결은 내부에서 열리고 닫혔습니다.
Thread_2 - abc() 메서드가 호출되었습니다. 연결은 내부에서 열리고 닫혔습니다.
Thread_3 - abc() 메서드가 호출되었습니다. 연결은 내부에서 열리고 닫혔습니다.
연결이 제대로 열리고 닫혔 는데도 예외가 발생하는 이유는 명확하지 않습니다. 데이터베이스 - 미스 SQL, 자바 - 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