I have multiple threads writing log to db and once a while I get this
error message, with a result of one connection freezing to "idle in
transaction" state.
java.lang.NullPointerException
at
org.postgresql.jdbc2.optional.PooledConnectionImpl$ConnectionHandler.invoke(PooledConnectionImpl.java:230)
at $Proxy0.close(Unknown Source)
at config.logadd(config.java:154)
driver is latest (7.3 jdbc3 build 109)
jvm is sun j2re 1.4.1_02 with redhat 9
code I'm using for writing logs. Line 154 is conn.close();
static public void logadd(String s) {
try {
Connection conn = datasource.getConnection();
String insert="INSERT INTO log (time, entry) VALUES ((SELECT
CURRENT_TIMESTAMP), '"+s+"')";
Statement logstmt = conn.createStatement();
logstmt.executeUpdate(insert);
logstmt.close();
conn.close();
} catch (SQLException e) {
System.out.println("Tried to write : "+s+"\nlog write
failed. exception "+e);
}
}
Any thoughts? Looks like a threading problem since this happens until I
have max number of connections open and all but one connection in "idle
in transaction" state.
-jani