Subject | Firebird's finalizer blocking and not releasing |
---|---|
Author | javakqj |
Post date | 2009-07-22T21:05:23Z |
My application which is using Firebird classic (2.1.1) hangs.
There are multiple threads spawned off and all of them do inserts and reads and return except for one. On viewing the threads via jconsole it seems to be blocked on firebird's finalizer. The jconsole output is listed below. Can anyone throw some light on this please?
We are using hibernate and spring and I do not see any open connections issue.
Thanks in advance.
Jconsole o/p:
--------------------------------
Name: Finalizer
State: RUNNABLE
Total blocked: 528 Total waited: 147
Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(Unknown Source)
org.firebirdsql.gds.impl.wire.XdrInputStream.read(XdrInputStream.java:242)
org.firebirdsql.gds.impl.wire.XdrInputStream.readInt(XdrInputStream.java:187)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.nextOperation(AbstractJavaGDSImpl.java:2099)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2053)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlFreeStatement(AbstractJavaGDSImpl.java:1405)
- locked org.firebirdsql.gds.impl.wire.isc_db_handle_impl@c9d6ed
org.firebirdsql.gds.impl.GDSHelper.closeStatement(GDSHelper.java:314)
org.firebirdsql.jdbc.AbstractStatement.close(AbstractStatement.java:326)
- locked org.firebirdsql.jdbc.FBPreparedStatement@599060
org.firebirdsql.jdbc.AbstractStatement.finalize(AbstractStatement.java:192)
java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
java.lang.ref.Finalizer.runFinalizer(Unknown Source)
java.lang.ref.Finalizer.access$100(Unknown Source)
java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
--------------------------------
There are multiple threads spawned off and all of them do inserts and reads and return except for one. On viewing the threads via jconsole it seems to be blocked on firebird's finalizer. The jconsole output is listed below. Can anyone throw some light on this please?
We are using hibernate and spring and I do not see any open connections issue.
Thanks in advance.
Jconsole o/p:
--------------------------------
Name: Finalizer
State: RUNNABLE
Total blocked: 528 Total waited: 147
Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(Unknown Source)
org.firebirdsql.gds.impl.wire.XdrInputStream.read(XdrInputStream.java:242)
org.firebirdsql.gds.impl.wire.XdrInputStream.readInt(XdrInputStream.java:187)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.nextOperation(AbstractJavaGDSImpl.java:2099)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2053)
org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlFreeStatement(AbstractJavaGDSImpl.java:1405)
- locked org.firebirdsql.gds.impl.wire.isc_db_handle_impl@c9d6ed
org.firebirdsql.gds.impl.GDSHelper.closeStatement(GDSHelper.java:314)
org.firebirdsql.jdbc.AbstractStatement.close(AbstractStatement.java:326)
- locked org.firebirdsql.jdbc.FBPreparedStatement@599060
org.firebirdsql.jdbc.AbstractStatement.finalize(AbstractStatement.java:192)
java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
java.lang.ref.Finalizer.runFinalizer(Unknown Source)
java.lang.ref.Finalizer.access$100(Unknown Source)
java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
--------------------------------