0

I've client app that connects with multiple FIX sessions, each session has its own timezone and properties. What I've noticed is, if I remove one of the session's config. This affects other sessions. For example, if the session I removed had a property AllowUnknownMsgFields, the other sessions would break becasuse somehow they were sharing that property. It's reproduciable all the time. Am I defining config incorrectly?

QFJ Version: quickfixj-all.2.1.0.jar

[Default]
HeartbeatInt=30
ReconnectInterval=5

[Session]
Sender=Sender1
Target=Target1

[Session]
Sender=Sender2
Target=Target2
AllowUnknownMsgFields=Y
Abidi
  • 7,846
  • 14
  • 43
  • 65

1 Answers1

2

This is a bug in QuickFIX/J which is going to be resolved in version 3.0.0. We have no release date, though. Problem is that the dictionaries (along with their configured validation options) are cached based on their name.

https://www.quickfixj.org/jira/browse/QFJ-982

https://github.com/quickfix-j/quickfixj/pull/245

As a workaround you could copy your dictionary for the second session and apply the desired validation options.

Christoph John
  • 3,003
  • 2
  • 13
  • 23
  • That make sense, for now we're doing what you suggested. Edited the question, would you please comment on that too. – Abidi Nov 21 '20 at 07:16
  • Regarding your edit: this has nothing to do with the data dictionary. What I would suggest is to take a thread dump of the application the next time this is happening. Maybe there is a deadlock. – Christoph John Nov 21 '20 at 11:12
  • If there was a deadlock, you would expect that part of application blocked, but I see other sessions doing the logons, heartbeating and receiving messages? Could it be because we use one initiator for all sessions? Is this recommended? – Abidi Nov 21 '20 at 11:51
  • 1
    But some part of your application is actually blocked. Otherwise it would connect to all of the sessions, right? I think it would be the best if you opened a new question. Ideally you could already add thread dumps there. You could also check if using a newer QFJ version corrects this. I'll have to check if there was done something related in the last versions. – Christoph John Nov 21 '20 at 15:21
  • I'll grab a thread dump and open a new connection if there is no deadlock. Generally, do you have a biased/recommendation towards using one initiator per session? – Abidi Nov 21 '20 at 16:25
  • https://stackoverflow.com/a/61623972/4962355 In general it is a matter of taste. – Christoph John Nov 22 '20 at 00:04