[QFJ-824] QuickFIXJ stops sending and processing heartbeats Created: 02/Feb/15  Updated: 12/Nov/18  Resolved: 12/Nov/18

Status: Closed
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.5.3
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Wongsakorn Chantrapornsyl Assignee: Unassigned
Resolution: Incomplete Votes: 1
Labels: QuickfixJ, timeout
Environment:

Microsoft Windows Server 2008



 Description   

I have a problem that QuickFIXJ stops sending the heartbeat. Please see the QuickFIXJ log below.

The heartbeat interval is set to 4.

20150127-01:01:34: 8=FIXT.1.19=7535=034=318541128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:34.78910=197
20150127-01:01:36: 8=FIXT.1.19=9535=034=3237749=TMSQ03226252=20150127-01:01:36.80256=TR MATCHING57=FXM142=TRFXMJP53776xxx10=130
20150127-01:01:38: 8=FIXT.1.19=7535=034=318551128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:38.89910=204
20150127-01:01:41: 8=FIXT.1.19=9535=034=3237849=TMSQ03226252=20150127-01:01:41.73956=TR MATCHING57=FXM142=TRFXMJP53776xxx10=136
----- After this time FIXQuickJ stops sending the heartbeart ---- only receive the heartbeat from other side. ----
20150127-01:01:42: 8=FIXT.1.19=7535=034=318561128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:42.96410=193
20150127-01:01:50: 8=FIXT.1.19=7535=034=318571128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:47.03910=192
20150127-01:01:51: 8=FIXT.1.19=9035=134=318581128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:48.063112=HBTO-3185810=242
20150127-01:01:52: 8=FIXT.1.19=7535=034=318591128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:52.12910=190
------ It seems that FIXQuickJ received heartbeat and testrequest but FIXQuickJ does not process them as QuickFIXJ send the testrequest to other side. -----
20150127-01:01:51: 8=FIXT.1.19=10435=134=3237949=TMSQ03226252=20150127-01:01:51.89656=TR MATCHING57=FXM142=TRFXMJP53776xxx112=TEST10=200
------ The other side disconnect because it does not receive heartbeat -------

Do you have any idea why QuickFIXJ stops sending the heartbeat and also does not process the message from other side.



 Comments   
Comment by Christoph John [ 02/Feb/15 ]

Looks like a deadlock to me (at least from what can be seen from the log output). A stack trace at that time would be very useful.

Comment by Christoph John [ 02/Feb/15 ]

Do you happen to have a stack trace? Otherwise I cannot tell where the problem is.

Comment by Anupam Sinha [ 02/Feb/15 ]

I am unable to edit my comments. Can you please grant me the required permissions.

Otherwise you can delete my comment and I will post more info for the same.

Comment by Christoph John [ 02/Feb/15 ]

Deleted your previous comment.

Comment by Anupam Sinha [ 02/Feb/15 ]

Thanks Christoph!

I have added the logs from our connector as well. There is no stack trace that was generated hence unable to attach the same.

8=FIX.4.4^A9=60^A35=0^A49=<SENDER>^A56=<INITIATOR>^A34=9323^A52=20150202-05:18:58.924^A10=134^A
8=FIX.4.4^A9=60^A35=0^A34=8999^A49=<INITIATOR>^A52=20150202-05:18:59.396^A56=<SENDER>^A10=156^A
8=FIX.4.4^A9=60^A35=0^A49=<SENDER>^A56=<INITIATOR>^A34=9324^A52=20150202-05:19:03.925^A10=127^A
8=FIX.4.4^A9=82^A35=1^A49=<SENDER>^A56=<INITIATOR>^A34=9325^A52=20150202-05:19:05.405^A112=20150202-05:19:05^A10=179^A
8=FIX.4.4^A9=60^A35=0^A49=<SENDER>^A56=<INITIATOR>^A34=9326^A52=20150202-05:19:10.405^A10=120^A
8=FIX.4.4^A9=106^A35=A^A34=9000^A49=<INITIATOR>^A52=20150202-05:19:16.203^A56=<SENDER>^A98=0^A108=5^A553=<INITIATOR>@====.com^A554=<PWD>^A10=129^A
8=FIX.4.4^A9=71^A35=A^A49=<SENDER>^A56=<INITIATOR>^A34=9327^A52=20150202-05:19:16.454^A98=0^A108=5^A10=129^A

We are also on 1.5.3 and facing the same issue.

[02 Feb 2015 05:18:58,926][QFJ Message Processor][INFO ][resources.FIXMessageConnectionFactoryAgent]-session FIX.4.4:<INITIATOR>-><SENDER>, fromAdmin : 8=FIX.4.4,9=60,35=0,34=9323,49=<SENDER>,52=20150202-05:18:58.924,56=<INITIATOR>,10=134,
[02 Feb 2015 05:18:59,396][QFJ Timer][INFO ][resources.FIXMessageConnectionFactoryAgent]-toAdmin : 8=FIX.4.4,9=60,35=0,34=8999,49=<INITIATOR>,52=20150202-05:18:59.396,56=<SENDER>,10=156,
[02 Feb 2015 05:19:11,512][SocketConnectorIoProcessor-0.0][INFO ][quickfix.Session]-[FIX.4.4:<INITIATOR>-><SENDER>] Disconnecting: IO Session closed
[02 Feb 2015 05:19:11,513][SocketConnectorIoProcessor-0.0][INFO ][resources.FIXMessageConnectionFactoryAgent]-Logout of FIX session with exchangeFIX.4.4:<INITIATOR>-><SENDER>
[02 Feb 2015 05:19:11,513][SocketConnectorIoProcessor-0.0][INFO ][util.ConnectionStatusHistory]-02/02/2015 05:19:11.513 GMT     FIXMessageConnectionFactoryAgent      Disconnected
[02 Feb 2015 05:19:16,203][SocketConnectorIoProcessor-0.0][INFO ][initiator.InitiatorIoHandler]-MINA session created for FIX.4.4:<INITIATOR>-><SENDER>: local=/11.161.40.160:22770, class org.apache.mina.transport.socket.nio.SocketSessionImpl, remote=<SENDER>-hc-nat/IP.add.res.ss:port
[02 Feb 2015 05:19:16,204][QFJ Timer][INFO ][resources.FIXMessageConnectionFactoryAgent]-toAdmin : 8=FIX.4.4,9=71,35=A,34=9000,49=<INITIATOR>,52=20150202-05:19:16.203,56=<SENDER>,98=0,108=5,10=109,
[02 Feb 2015 05:19:16,529][QFJ Message Processor][INFO ][resources.FIXMessageConnectionFactoryAgent]-Logout of FIX session with exchangeFIX.4.4:<INITIATOR>-><SENDER>
Comment by Christoph John [ 02/Feb/15 ]

The stack trace is not automatically generated. If the issue appears, then you need to do a "jstack <PID>" on the java process. On Windows you could also press ctrl+break on the application's window which should send the stack trace into the log file.

What happens in "resources.FIXMessageConnectionFactoryAgent-toAdmin"??
Could you please also post your configuration?

I think this is no general issue so without a stack trace we won't get far. Unless you are able to reproduce the issue in a unit test.

Comment by Anupam Sinha [ 02/Feb/15 ]

Any suggestions on how to issue the jstack command when the issue occurs? It will be difficult to predict when the issue occurs and issue a command then.

Comment by Christoph John [ 02/Feb/15 ]

You could trigger that e.g. when a TestRequest comes in (which most of the time means that the counterparty missed heartbeats from your side).

What about my other points?

Comment by Wongsakorn Chantrapornsyl [ 03/Feb/15 ]

Unfortunately, I found this issue on the client's machine (production). I cannot run the command after the issue appears.

In this case, after disconnection, it can reconnect to the FIX server again and then work fine.

However, they do not want any disconnection.

Here is the configuration.

--------------------------------------------------
[DEFAULT]
ConnectionType=initiator
HeartBtInt=4
ReconnectInterval=30
StartDay=Sun
StartTime=13:00:00
EndDay=Sat
EndTime=00:00:00
UseDataDictionary=Y
ValidateFieldsOutOfOrder=N
ValidateFieldsHaveValues=N
EnableExpectedNextSeqNumOnLogon=Y
SocketUseSSL=N

ReLogonInterval=30000
RetryUserSessionLogonInterval=30

Comment by garima gangwar [ 03/Feb/15 ]

On Behalf of Anupam Sinha, Configurations are:

connectionType=initiator
useDataDictionary=Y
rejectInvalidMessage=N
heartBtInt=5
startDay=Sunday
startTime=16:00:00
endDay=Friday
endTime=23:00:00
resetOnLogon=N
reconnectInterval=120
checklatency=N
timeZone=GMT
socketUseSSL=N
buffersize=100

Comment by Anupam Sinha [ 03/Feb/15 ]

What happens in "resources.FIXMessageConnectionFactoryAgent-toAdmin"?

Simply logs the request when the request is NOT a logon request.

Comment by Christoph John [ 03/Feb/15 ]

Wongsakorn Chantrapornsyl : OK, so the client has a software which uses QuickFIX/J?
What are the configurations ReLogonInterval and RetryUserSessionLogonInterval? I cannot find them in the configuration page (http://quickfixj.org/quickfixj/usermanual/1.5.3/usage/configuration.html). Are you manually fiddling with the Logon or FIX session logic?

garima gangwar, Anupam Sinha: what is bufferSize config? Is it SocketSend/ReceiveBufferSize??

@all: what was the last application message that was processed prior to this problem? Is it always the same app message or is the time span after the last application message the same before the session breaks?
Does it always break at the same time? Or after same intervals?
Is there only one FIX session configured? I assume there are not much messages transmitted? So this should be no performance problem, shouldn't it?
I currently cannot say much without having a stack trace. But I assume it is no general error.
If you provide the client software you should be able to provide some mechanism to create stack trace or debug information in the log file.

Comment by Wongsakorn Chantrapornsyl [ 03/Feb/15 ]

Hi Christoph John

ReLogonInterval and RetryUserSessionLogonInterval are the internal configuration. They are not the QuickFIXJ configuration.

what was the last application message that was processed prior to this problem?
Ans: The last message was heartbeat. The client and server send/receive the heartbeat for a while and then the issue occurs.

Is it always the same app message or is the time span after the last application message the same before the session breaks?
Ans: This is the first time which I enabled the QuickFIXJ log. I cannot tell that it is the same behavior before this time. However, I think it should be the same.

Does it always break at the same time? Or after same intervals?
Ans: No, randomly.

Is there only one FIX session configured?
Ans: Yes, it is only one FIX session.

I assume there are not much messages transmitted?
Ans: Yes, there are only heartbeat between this client and the server before the issue occurred.

So this should be no performance problem, shouldn't it?
Ans: Agree. It is not performance problem.

I currently cannot say much without having a stack trace. But I assume it is no general error.
If you provide the client software you should be able to provide some mechanism to create stack trace or debug information in the log file.
Ans: Can you advise how to collect the stack trace? After the issue occurred, as the QuickFIXJ does not send the heartbeat, the server end the connection. Can we run the command to collect stack trace before the incident?

If it must be run when the issue occurs, it is quite hard to notice the problem occurs.

Thank you.

Comment by Christoph John [ 03/Feb/15 ]

Hi,

a heartbeat is no application message. An ExecutionReport/NewOrderSingle/... are application messages. However, you said that only heartbeats were received.

Regarding your initial log output in the issue description: you say that the engine does receive Heartbeats/TestRequests but does not answer them. So I would change the fromAdmin method of your application to check if the received message is a TestRequest. If yes, then create a stack trace and/or check for deadlocked threads. This can be achieved with some MBeans which are included in Java6 and up (ManagementFactory.getThreadMXBean())

Moreover, when I look at the log there seems to be a problem with the times. E.g. the first messages arrive in time (comparing the log time stamp and field 52/SendingTime). However, afterwards there is a gap of about three seconds. So this either means your network is flaky or the application/computer is heavily loaded and does not get the messages in time.

Comment by Wongsakorn Chantrapornsyl [ 03/Feb/15 ]

From the sniffer message, I can see that the ACK of the heartbeat is sent immediately after the heartbeat arrived. Then I think the QuickFIXJ process the heartbeat delayed.

The last activity from QuickFIXJ was sending the Test Request. You can see that QuickFIXJ has already received heatbeat but QuickFIXJ sent test request. Then I think QuickFIXJ does not process the heartbeat.

I do not understand why QuickFIXJ can send the test request but does not send the heartbeat.
---------------------------------------------------------------------
20150127-00:59:56: 8=FIXT.1.19=7535=034=318301128=949=TR MATCHING56=TMSQ03226252=20150127-00:59:56.96010=198
20150127-00:59:58: 8=FIXT.1.19=9535=034=3235349=TMSQ03226252=20150127-00:59:58.67356=TR MATCHING57=FXM142=TRFXMJP53776xxx10=146
20150127-01:00:00: 8=FIXT.1.19=7535=034=318311128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:01.04410=169
20150127-01:00:02: 8=FIXT.1.19=9535=034=3235449=TMSQ03226252=20150127-01:00:02.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=124
20150127-01:00:05: 8=FIXT.1.19=7535=034=318321128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:05.11910=177
20150127-01:00:06: 8=FIXT.1.19=9535=034=3235549=TMSQ03226252=20150127-01:00:06.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=129
20150127-01:00:09: 8=FIXT.1.19=7535=034=318331128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:09.21410=178
20150127-01:00:10: 8=FIXT.1.19=9535=034=3235649=TMSQ03226252=20150127-01:00:10.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=125
20150127-01:00:13: 8=FIXT.1.19=7535=034=318341128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:13.29710=185
20150127-01:00:14: 8=FIXT.1.19=9535=034=3235749=TMSQ03226252=20150127-01:00:14.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=130
20150127-01:00:17: 8=FIXT.1.19=7535=034=318351128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:17.39210=186
20150127-01:00:18: 8=FIXT.1.19=9535=034=3235849=TMSQ03226252=20150127-01:00:18.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=135
20150127-01:00:21: 8=FIXT.1.19=7535=034=318361128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:21.46610=184
20150127-01:00:22: 8=FIXT.1.19=9535=034=3235949=TMSQ03226252=20150127-01:00:22.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=131
20150127-01:00:25: 8=FIXT.1.19=7535=034=318371128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:25.54110=183
20150127-01:00:26: 8=FIXT.1.19=9535=034=3236049=TMSQ03226252=20150127-01:00:26.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=127
20150127-01:00:29: 8=FIXT.1.19=7535=034=318381128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:29.61710=192
20150127-01:00:30: 8=FIXT.1.19=9535=034=3236149=TMSQ03226252=20150127-01:00:30.67456=TR MATCHING57=FXM142=TRFXMJP53776xxx10=123
20150127-01:00:33: 8=FIXT.1.19=7535=034=318391128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:33.68210=190
20150127-01:00:34: 8=FIXT.1.19=9535=034=3236249=TMSQ03226252=20150127-01:00:34.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=129
20150127-01:00:37: 8=FIXT.1.19=7535=034=318401128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:37.74810=189
20150127-01:00:38: 8=FIXT.1.19=9535=034=3236349=TMSQ03226252=20150127-01:00:38.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=134
20150127-01:00:41: 8=FIXT.1.19=7535=034=318411128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:41.81410=179
20150127-01:00:42: 8=FIXT.1.19=9535=034=3236449=TMSQ03226252=20150127-01:00:42.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=130
20150127-01:00:45: 8=FIXT.1.19=7535=034=318421128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:45.87910=195
20150127-01:00:46: 8=FIXT.1.19=9535=034=3236549=TMSQ03226252=20150127-01:00:46.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=135
20150127-01:00:49: 8=FIXT.1.19=7535=034=318431128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:49.95310=193
20150127-01:00:50: 8=FIXT.1.19=9535=034=3236649=TMSQ03226252=20150127-01:00:50.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=131
20150127-01:00:53: 8=FIXT.1.19=7535=034=318441128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:54.01810=182
20150127-01:00:54: 8=FIXT.1.19=9535=034=3236749=TMSQ03226252=20150127-01:00:54.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=136
20150127-01:00:58: 8=FIXT.1.19=7535=034=318451128=949=TR MATCHING56=TMSQ03226252=20150127-01:00:58.09310=190
20150127-01:00:58: 8=FIXT.1.19=9535=034=3236849=TMSQ03226252=20150127-01:00:58.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=141
20150127-01:01:02: 8=FIXT.1.19=7535=034=318461128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:02.15810=183
20150127-01:01:02: 8=FIXT.1.19=9535=034=3236949=TMSQ03226252=20150127-01:01:02.67556=TR MATCHING57=FXM142=TRFXMJP53776xxx10=132
20150127-01:01:06: 8=FIXT.1.19=7535=034=318471128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:06.25310=184
20150127-01:01:06: 8=FIXT.1.19=9535=034=3237049=TMSQ03226252=20150127-01:01:06.67656=TR MATCHING57=FXM142=TRFXMJP53776xxx10=129
20150127-01:01:10: 8=FIXT.1.19=7535=034=318481128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:10.31810=182
20150127-01:01:10: 8=FIXT.1.19=9535=034=3237149=TMSQ03226252=20150127-01:01:10.67656=TR MATCHING57=FXM142=TRFXMJP53776xxx10=125
20150127-01:01:14: 8=FIXT.1.19=7535=034=318491128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:14.40210=181
20150127-01:01:14: 8=FIXT.1.19=9535=034=3237249=TMSQ03226252=20150127-01:01:14.67656=TR MATCHING57=FXM142=TRFXMJP53776xxx10=130
20150127-01:01:18: 8=FIXT.1.19=7535=034=318501128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:18.47810=190
20150127-01:01:18: 8=FIXT.1.19=9535=034=3237349=TMSQ03226252=20150127-01:01:18.84856=TR MATCHING57=FXM142=TRFXMJP53776xxx10=136
20150127-01:01:22: 8=FIXT.1.19=7535=034=318511128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:22.53310=178
20150127-01:01:23: 8=FIXT.1.19=9535=034=3237449=TMSQ03226252=20150127-01:01:23.72356=TR MATCHING57=FXM142=TRFXMJP53776xxx10=125
20150127-01:01:26: 8=FIXT.1.19=7535=034=318521128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:26.61010=179
20150127-01:01:27: 8=FIXT.1.19=9535=034=3237549=TMSQ03226252=20150127-01:01:27.81756=TR MATCHING57=FXM142=TRFXMJP53776xxx10=134
20150127-01:01:30: 8=FIXT.1.19=7535=034=318531128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:30.73410=182
20150127-01:01:32: 8=FIXT.1.19=9535=034=3237649=TMSQ03226252=20150127-01:01:32.67656=TR MATCHING57=FXM142=TRFXMJP53776xxx10=134
20150127-01:01:34: 8=FIXT.1.19=7535=034=318541128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:34.78910=197
20150127-01:01:36: 8=FIXT.1.19=9535=034=3237749=TMSQ03226252=20150127-01:01:36.80256=TR MATCHING57=FXM142=TRFXMJP53776xxx10=130
20150127-01:01:38: 8=FIXT.1.19=7535=034=318551128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:38.89910=204
20150127-01:01:41: 8=FIXT.1.19=9535=034=3237849=TMSQ03226252=20150127-01:01:41.73956=TR MATCHING57=FXM142=TRFXMJP53776xxx10=136
20150127-01:01:42: 8=FIXT.1.19=7535=034=318561128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:42.96410=193
20150127-01:01:50: 8=FIXT.1.19=7535=034=318571128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:47.03910=192
20150127-01:01:51: 8=FIXT.1.19=9035=134=318581128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:48.063112=HBTO-3185810=242
20150127-01:01:52: 8=FIXT.1.19=7535=034=318591128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:52.12910=190
20150127-01:01:51: 8=FIXT.1.19=10435=134=3237949=TMSQ03226252=20150127-01:01:51.89656=TR MATCHING57=FXM142=TRFXMJP53776xxx112=TEST10=200
20150127-01:02:06: 8=FIXT.1.19=15435=A34=3238049=TMSQ03226252=20150127-01:01:58.11556=TR MATCHING57=FXM142=TRFXMJP53776xxx98=0108=4553=DCUA554=BTMU1234789=318581137=91407=10010=071
---------------------------------------------------------------------

Comment by Christoph John [ 03/Feb/15 ]

I do not understand why QuickFIXJ can send the test request but does not send the heartbeat.

This is triggered by two different threads. There is a separate thread which sends out heartbeats. The processing of incoming messages is in a separate thread (message processor thread). Incoming messages are also handled on the message processor thread. This will also call your application callbacks fromAdmin/fromApp. So I would start searching there.
When looking at your log it starts to "get slow" at 01:01:50:

20150127-01:01:50: 8=FIXT.1.19=7535=034=318571128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:47.03910=192
20150127-01:01:51: 8=FIXT.1.19=9035=134=318581128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:48.063112=HBTO-3185810=242

The 52/SendingTime is off by three seconds. So actually you "simply" have to find out what happens there. Maybe it is not even within your application but the machine starts to get slow.
Moreover, at the end of the log there is a message from 01:01:51 again??

20150127-01:01:52: 8=FIXT.1.19=7535=034=318591128=949=TR MATCHING56=TMSQ03226252=20150127-01:01:52.12910=190
20150127-01:01:51: 8=FIXT.1.19=10435=134=3237949=TMSQ03226252=20150127-01:01:51.89656=TR MATCHING57=FXM142=TRFXMJP53776xxx112=TEST10=200

So the log file goes "backwards"?! In my opinion you are doing something nasty that you probably shouldn't do. I think the problem might be somewhere in your application. You are either doing something concurrently that shouldn't be done or your application is doing some time-consuming logic at some point. Are you concurrently modifying quickfix.Message objects? What are you doing anyway in your application code?

Comment by Anupam Sinha [ 04/Feb/15 ]

garima gangwar, Anupam Sinha: what is bufferSize config? Is it SocketSend/ReceiveBufferSize??

This value is now not being used anymore. What is SocketSend/ReceiveBufferSize?

@all: what was the last application message that was processed prior to this problem?
There was no application message that was received between the occurrences of the problem.

Is it always the same app message or is the time span after the last application message the same before the session breaks?

Does it always break at the same time? Or after same intervals?
No specific time. Sometimes it goes on for hours together and then sometimes it occurs within an interval of around 2 mins.

Is there only one FIX session configured? I assume there are not much messages transmitted? So this should be no performance problem, shouldn't it?
There is only one FIX session.

Comment by Christoph John [ 12/Nov/18 ]

Closing due to inactivity and old version used.

Generated at Sun Apr 28 06:33:27 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.