Replies: 2 comments 1 reply
-
Are you using a stand alone app or e.g. Spring Boot or an application server? If one of the latter, it could be worth trying to use its data source. |
Beta Was this translation helpful? Give feedback.
1 reply
-
This can happen if it takes too long to process an incoming messages in the same receiving thread, i.e. more than 30 seconds in your case. Although you received the heartbeat, if you block the receiving thread by taking too long (>30s) to write to the database, the heartbeat cannot be processed in time and the connection is considered stale. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have an application that connects to a server via the FIX protocol. The dependency
QuickfixJ 2.3.0
is used. We used Oracle to save the sequence in thequickfix_sessions
table since QuickfixJ stores incoming and outgoing sequences in the database.Recently we switched from Oracle to PostgreSQL, and as a result, we began experiencing time-out problems. The TestRequest was made, and it timed out waiting for the heartbeat response. However, the response was recorded as received in the FIX messages log.
The session finally managed to log back in after the application failed to reconnect and timed out on a logon response that was being logged as received.
We occasionally observe no disconnections during the day, but occasionally they occur twice or three times. There is no consistent pattern for when it disconnects—it can happen in four hours or just one hour. However, the logs show no database issues.
The heartbeat interval is
heartbeatInt = 30s
Sample logs:
Disconnecting: Timed out waiting for logon response Initiated logon request Disconnecting: Timed out waiting for logon response
Beta Was this translation helpful? Give feedback.
All reactions