Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Duplicate
-
Affects Version/s: 1.5.0
-
Fix Version/s: None
-
Component/s: Engine
-
Labels:None
Description
Hi,
I have configured QuickFixJ to use JDBC store. In doing so, we have seen an issue with Proxool where it kills active thread that are longer than 5 minutes. We have no way to change the proxool's maximum-active-time property in Quickfixj configuration. When proxool kills the thread, QFJ failed to perform Scheduled Session reset. Please see the error log as shown below.
2010-12-18 09:32:07,312 WARN [HouseKeeper] HouseKeeper.sweep:149 - #0007 was active for 5559 milliseconds and has been removed automaticaly. Th
e Thread responsible was named 'QFJ Timer', but the last SQL it performed is unknown because the trace property is not enabled.
2010-12-18 09:32:07,316 ERROR [QFJ Timer] SessionConnector$SessionTimerTask.run:257 - Error during timer processing
quickfix.RuntimeError: java.io.IOException: Couldn't perform the operation prepareStatement: You can't perform any operations on this connection
. It has been automatically closed by Proxool for some reason (see logs).
at quickfix.SessionState.reset(SessionState.java:373)
at quickfix.Session.resetState(Session.java:2191)
at quickfix.Session.reset(Session.java:759)
at quickfix.Session.next(Session.java:1699)
at quickfix.mina.SessionConnector$SessionTimerTask.run(SessionConnector.java:251)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Couldn't perform the operation prepareStatement: You can't perform any operations on this connection. It has bee
n automatically closed by Proxool for some reason (see logs).
at quickfix.JdbcStore.reset(JdbcStore.java:195)
at quickfix.SessionState.reset(SessionState.java:370)
... 13 more
Caused by: java.sql.SQLException: Couldn't perform the operation prepareStatement: You can't perform any operations on this connection. It has b
een automatically closed by Proxool for some reason (see logs).
at org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207)
at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87)
at com.sybase.jdbcx.SybConnection$$EnhancerByProxool$$ace6c3d2.prepareStatement(<generated>)
at quickfix.JdbcStore.reset(JdbcStore.java:187)
... 14 more
Kind Regards,
Vid