java.io.IOException

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • 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-
    via by Vid Cheruvu,
  • QuickFIX/J Jira
    via by Unknown author,
  • QuickFIX/J Jira
    via by Unknown author,
  • 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-
    via by Vid Cheruvu,
  • java , 数据库高手请进, 求解!
    via by Unknown author,
  • Proxool Connection Pool 问题
    via by Unknown author,
  • QuickFIX/J Jira
    via by Unknown author,
  • I want to remind about comment in quickfix.JdbcUtil in method "static synchronized DataSource getDataSource(String jdbcDriver, String connectionURL, String user, String password, boolean cache)": // TODO JDBC Make these configurable setMaximumActiveTime(ds, 5000); ds.setMaximumConnectionLifetime(28800000); ds.setMaximumConnectionCount(10); ds.setSimultaneousBuildThrottle(10); If "messages" table are locked longer than 5 seconds, connection is aborted by Proxool: [13.03.2013|12:42:07:875] [HouseKeeper] [DEBUG] [proxool.quickfixj-1] [org.logicalcobwebs.proxool.ConnectionPool] [removeProxyConnection] [441] : 000026 (01/02/00) - #0001 removed because it has been active for too long. [13.03.2013|12:42:07:875] [HouseKeeper] [WARN ] [proxool.quickfixj-1] [org.logicalcobwebs.proxool.HouseKeeper] [sweep] [149] : #0001 was active for 98688 milliseconds and has been removed automaticaly. The Thread responsible was named 'QFJ Timer', but the last SQL it performed is unknown because the trace property is not enabled. [13.03.2013|12:42:07:906] [QFJ Timer] [ERROR] [quickfixj.errorEvent] [quickfix.SLF4JLog] [logError] [147] : Error Reading/Writing in MessageStore 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.JdbcStore.set(JdbcStore.java:252) at quickfix.SessionState.set(SessionState.java:308) at quickfix.Session.sendRaw(Session.java:2313) at quickfix.Session.generateHeartbeat(Session.java:1861) at quickfix.Session.next(Session.java:1834) at quickfix.mina.SessionConnector$SessionTimerTask.run(SessionConnector.java:283) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLException: 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 org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207) at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87) at $java.sql.Wrapper$$EnhancerByProxool$$a5ac9e8b.prepareStatement(<generated>) at quickfix.JdbcStore.set(JdbcStore.java:245) ... 14 more and outgoing sequence number is not incremented! Next outgoing message has the same sequence number (sic!). Scenario: 1. Send NOS message. 2. Lock "messages" table (on Postgres: LOCK TABLE messages IN ACCESS EXCLUSIVE MODE) 3. Send NOS message - message will be sent, but stacktrace from above will be happen. For example message has t34=666 4. Send NOS message - message will be sent with t34=666 (!)
    via by Krzysztof Szalast,
  • I want to remind about comment in quickfix.JdbcUtil in method "static synchronized DataSource getDataSource(String jdbcDriver, String connectionURL, String user, String password, boolean cache)": // TODO JDBC Make these configurable setMaximumActiveTime(ds, 5000); ds.setMaximumConnectionLifetime(28800000); ds.setMaximumConnectionCount(10); ds.setSimultaneousBuildThrottle(10); If "messages" table are locked longer than 5 seconds, connection is aborted by Proxool: [13.03.2013|12:42:07:875] [HouseKeeper] [DEBUG] [proxool.quickfixj-1] [org.logicalcobwebs.proxool.ConnectionPool] [removeProxyConnection] [441] : 000026 (01/02/00) - #0001 removed because it has been active for too long. [13.03.2013|12:42:07:875] [HouseKeeper] [WARN ] [proxool.quickfixj-1] [org.logicalcobwebs.proxool.HouseKeeper] [sweep] [149] : #0001 was active for 98688 milliseconds and has been removed automaticaly. The Thread responsible was named 'QFJ Timer', but the last SQL it performed is unknown because the trace property is not enabled. [13.03.2013|12:42:07:906] [QFJ Timer] [ERROR] [quickfixj.errorEvent] [quickfix.SLF4JLog] [logError] [147] : Error Reading/Writing in MessageStore 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.JdbcStore.set(JdbcStore.java:252) at quickfix.SessionState.set(SessionState.java:308) at quickfix.Session.sendRaw(Session.java:2313) at quickfix.Session.generateHeartbeat(Session.java:1861) at quickfix.Session.next(Session.java:1834) at quickfix.mina.SessionConnector$SessionTimerTask.run(SessionConnector.java:283) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLException: 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 org.logicalcobwebs.proxool.WrappedConnection.invoke(WrappedConnection.java:207) at org.logicalcobwebs.proxool.WrappedConnection.intercept(WrappedConnection.java:87) at $java.sql.Wrapper$$EnhancerByProxool$$a5ac9e8b.prepareStatement(<generated>) at quickfix.JdbcStore.set(JdbcStore.java:245) ... 14 more and outgoing sequence number is not incremented! Next outgoing message has the same sequence number (sic!). Scenario: 1. Send NOS message. 2. Lock "messages" table (on Postgres: LOCK TABLE messages IN ACCESS EXCLUSIVE MODE) 3. Send NOS message - message will be sent, but stacktrace from above will be happen. For example message has t34=666 4. Send NOS message - message will be sent with t34=666 (!)
    via by Krzysztof Szalast,
    • 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

    Users with the same issue

    linxiaolong
    24 times, last one,