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.