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

Make the time interval when Test Request being sent configurable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Default
    • Resolution: Fixed
    • Affects Version/s: 1.2.1
    • Fix Version/s: 1.3.0
    • Component/s: Engine
    • Labels:
      None

      Description

      We've been going through a certification process with TransactTools (http://www.openfix.net/), and encountered a different expected behaviour with sending Test Requests.

      In the TransactTools test, they skip a heartbeat message and expect our quickfix engine (Ie QFJ) to send a test request:
      "We suppressed our last heartbeat message.
      In response we expected to receive a test request message from you within 9 seconds (30% of the HeartBeatInt field) but did not."

      Seems like they expect it to be sent within HeartBeatInt+9secs. Looking at the code in SessionState.isTestRequestNeeded(), it calculates the Test Request delay as 1.5 * (HeartBeatInt + numTestRequestsSent + 1), which translates into HeartBeatInt * 1.5 (for first request) = 30 + 15secs, which is over the +9 seconds that's expected.

      Is there a known spec for this formula or was it something "reasonable" but not necessarily standard? Maybe it's something we need to make configurable to satisfy different expectations form counterparties?

        Attachments

          Activity

          Hide
          toli Toli Kuznets added a comment -

          Moved this from a question to an RFE

          will make the time interval configurable.

          Show
          toli Toli Kuznets added a comment - Moved this from a question to an RFE will make the time interval configurable.
          Hide
          toli Toli Kuznets added a comment -

          Patch for this bug.
          I removed a few unused/unreferenced parameters that were passed into Session, and instead added a new testRequestDelayMultiplier parameter. It's coming from SessionSettings.

          added unit tests to verify that the parameter is passed in correctly, and that it's being used correctly as well.

          Show
          toli Toli Kuznets added a comment - Patch for this bug. I removed a few unused/unreferenced parameters that were passed into Session, and instead added a new testRequestDelayMultiplier parameter. It's coming from SessionSettings. added unit tests to verify that the parameter is passed in correctly, and that it's being used correctly as well.
          Hide
          toli Toli Kuznets added a comment -

          oh, and i forgot to add changes to documentation - will definitely do that before i submit it.

          Show
          toli Toli Kuznets added a comment - oh, and i forgot to add changes to documentation - will definitely do that before i submit it.
          Hide
          toli Toli Kuznets added a comment -

          updated patch with documentation change

          Show
          toli Toli Kuznets added a comment - updated patch with documentation change
          Hide
          toli Toli Kuznets added a comment -

          fix checked in rev 740

          Show
          toli Toli Kuznets added a comment - fix checked in rev 740

            People

            • Assignee:
              toli Toli Kuznets
              Reporter:
              toli Toli Kuznets
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: