|
From: Florian L. <fl...@un...> - 2020-11-24 09:15:45
|
Hi everyone I have a weird issue that my quickfix initiator works fine when connecting directly to the message supplier, but as soon as we connect via an HTTP proxy, it works for the first n seconds and then the messages stop arriving. I've now managed to trace the problem to the fact that those n seconds are exactly what is configured for the heartbeat interval, i.e. if I set this heartbeat interval higher, then it works longer and if I set it e.g. to 5, then it already stops after 5 seconds. At first I assumed the counter-party just closes the connection if they don't receive the heartbeat on time, but then I learned that after a missing heartbeat message first a test request is sent out and only after that a connection would be closed. So it seems to me that actually the sending out of the heartbeat from the Quickfix/j library (version 2.2.0) via proxy somehow seems to block the incoming traffic, as though the proxy was a one way street. Since the logon message exchange works, I know that communicating both ways actually works, but it seems that sending out a heartbeat while simultaneously processing an incoming stream of messages seems to somehow cut of this incoming stream for good. I can literally see in my logs that the incoming messages are processed via the fromApp method exactly up to the point that my first heartbeat is sent out, so logging this heartbeat via the toAdmin method is always the last thing logged before the communication stops altogether....no new incoming or outgoing messages are logged until the software is restarted. Has anyone come across a similar issue? And is there a solution for it? For the moment we think about just disabling the heartbeat messages altogether (that seems to work for now), but that it more of a hack workaround in my opinion and not an actual solution. Thanks for your support and regards, Florian |