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

Out of memory exception on massive message intake with slow application code

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Default
    • Resolution: Not a bug
    • Affects Version/s: 1.3.2
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      All platforms

      Description

      When connected late in the day to the counterparty's fix engine, QuickFIX/J has trouble dealing with the large message backlog. An analysis of the garbage collector log reveals a large amount of objects in the tenured generation that stay alive and therefore cannot be collected.

      This is owing to the fact that the linked blocking queue in the following sources:

      SingleThreadedEventHandlingStrategy.java
      ThreadPerSessionEventHandlingStrategy.java

      has the default capacity of Integer.MAX_VALUE. The message backlog is quickly loaded onto the queue and stays there until the client software is able to process it.

      Proposed fix:

      Define the message queue in the above sources with a reasonable capacity, ideally configurable via session settings.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              stelian_nj Stelian Dumitrascu
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: