quickfixj
quickfixj copied to clipboard
SETTING_MAX_SCHEDULED_WRITE_REQUESTS does not work for TLS session
Describe the bug When a session is a TLS session, for example, a Bloomberg TLS session, SETTING_MAX_SCHEDULED_WRITE_REQUESTS does not work as expected. If we set SETTING_MAX_SCHEDULED_WRITE_REQUESTS to be 10 for a TLS session, when we send (very very slowly) total messages more than 10, the session will be disconnected. It seems that for a TLS session, this number is the accumulated FIX messages we could send out after session logon (35=A).
To Reproduce
- Setup a TLS FIX session
- set SETTING_MAX_SCHEDULED_WRITE_REQUESTS to be 10
- Connect and Logon this TLS session (35=A)
- Send 11 messages very very slowly
- This TLS session is disconnected after 11 messages sent with error message - Disconnecting: Slow consumer
Expected behavior When set SETTING_MAX_SCHEDULED_WRITE_REQUESTS to be 10 for a TLS session, only if total unsent FIX messages in Write Request Queue is greater than 10, then disconnect the TLS session.
system information:
- OS: Linux
- Java version JDK8
- QFJ Version 2.2.0
Additional context SETTING_MAX_SCHEDULED_WRITE_REQUESTS is working fine for non-TLS session, when a FIX message is sent out, the Write Request Queue size will decrease correctly. For a TLS session, it seems that Write Request Queue size does not decrease at all, it just keep increasing forever.
I think this is a MINA bug. At least I saw that a similar issue was reported recently against MINA. Currently on the road, can add details later but maybe you can also l find it in the meantime. Cheers Chris
https://issues.apache.org/jira/browse/DIRMINA-1146