Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-734

Properties for configuring Proxool vs. not incremented outgoing sequence number

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.5.3
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      All

      Description

      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

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kasopey Krzysztof Szalast
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: