I think this is related to when more than one process is logged in to the same account.
Here is the log of process A on machine A:
2015-03-04 03:35:19.351 ERROR TransportClient - Client disconnected, secondary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=915)>
at com.dukascopy.dds4.transport.client.TransportClient.controlSynchRequest(TransportClient.java:851)
at com.dukascopy.dds4.transport.client.TransportClient.pingIoSession(TransportClient.java:648)
at com.dukascopy.dds4.transport.client.TransportClient.pingConnection(TransportClient.java:681)
at com.dukascopy.dds4.transport.client.TransportClient.access$200(TransportClient.java:54)
at com.dukascopy.dds4.transport.client.TransportClient$1.run(TransportClient.java:365)
at java.lang.Thread.run(Thread.java:935)
2015-03-04 03:35:29.355 ERROR TransportClient - Client disconnected, primary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=916)>
at com.dukascopy.dds4.transport.client.TransportClient.controlSynchRequest(TransportClient.java:851)
at com.dukascopy.dds4.transport.client.TransportClient.pingIoSession(TransportClient.java:648)
at com.dukascopy.dds4.transport.client.TransportClient.pingPrimarySession(TransportClient.java:702)
at com.dukascopy.dds4.transport.client.TransportClient.pingConnection(TransportClient.java:693)
at com.dukascopy.dds4.transport.client.TransportClient.access$200(TransportClient.java:54)
at com.dukascopy.dds4.transport.client.TransportClient$1.run(TransportClient.java:365)
at java.lang.Thread.run(Thread.java:935)
2015-03-04 03:35:37.021 ERROR TimeManager - Request to DFS timed out, timeout [10000], request [<ServerTimeRequestMessage(,requestId=496)>]
com.dukascopy.charts.data.datacache.DataCacheException: Request to DFS timed out, timeout [10000], request [<ServerTimeRequestMessage(,requestId=496)>]
at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.processMessage(CurvesJsonProtocolHandler.java:1228)
at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.processMessage(CurvesJsonProtocolHandler.java:1148)
at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.loadServerTime(CurvesJsonProtocolHandler.java:1248)
at com.dukascopy.charts.data.datacache.time.TimeManager$3.run(TimeManager.java:226)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:472)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:935)
2015-03-04 03:35:39.061 INFO ClientConnector - Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
2015-03-04 03:35:39.298 INFO ClientProtocolHandler - Disconnect task in queue, reason [CONNECTION_PROBLEM], server address [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443], transport name [nul
l]
2015-03-04 03:35:52.637 INFO AuthorizationClient - Selecting the best server...
2015-03-04 03:35:53.272 INFO AuthorizationClient - retry count = 1, properties request time = 2015-03-04 03:35:53
2015-03-04 03:36:06.454 INFO AuthorizationClient - retry count = 1, properties response time = 2015-03-04 03:36:06
2015-03-04 03:36:06.607 INFO ClientConnector - Primary connect successfull, primarySession is [MinaIoSessionWrapper [session=(SOCKET, R: d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443, L: /192
.168.0.52:1263, S: d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443)]], address is [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
2015-03-04 03:36:07.148 INFO GreedClientAuthorizationProvider - !!!:Thread[ClientConnector,5,main]
2015-03-04 03:36:08.293 INFO ClientConnector - Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
And here is the log of process B on machine B(happening it the same time):
4 Mär 01:49:13 SEVERE Client disconnected, secondary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=6238)>
at com.dukascopy.dds4.transport.client.TransportClient.controlSynchRequest(TransportClient.java:851)
at com.dukascopy.dds4.transport.client.TransportClient.pingIoSession(TransportClient.java:648)
at com.dukascopy.dds4.transport.client.TransportClient.pingConnection(TransportClient.java:681)
at com.dukascopy.dds4.transport.client.TransportClient.access$200(TransportClient.java:54)
at com.dukascopy.dds4.transport.client.TransportClient$1.run(TransportClient.java:362)
at java.lang.Thread.run(Unknown Source)
4 Mär 01:49:15 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
4 Mär 03:35:18 SEVERE Client disconnected, secondary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=6855)>
at com.dukascopy.dds4.transport.client.TransportClient.controlSynchRequest(TransportClient.java:851)
at com.dukascopy.dds4.transport.client.TransportClient.pingIoSession(TransportClient.java:648)
at com.dukascopy.dds4.transport.client.TransportClient.pingConnection(TransportClient.java:681)
at com.dukascopy.dds4.transport.client.TransportClient.access$200(TransportClient.java:54)
at com.dukascopy.dds4.transport.client.TransportClient$1.run(TransportClient.java:362)
at java.lang.Thread.run(Unknown Source)
4 Mär 03:35:20 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
4 Mär 03:35:28 SEVERE Client disconnected, primary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=6856)>
at com.dukascopy.dds4.transport.client.TransportClient.controlSynchRequest(TransportClient.java:851)
at com.dukascopy.dds4.transport.client.TransportClient.pingIoSession(TransportClient.java:648)
at com.dukascopy.dds4.transport.client.TransportClient.pingPrimarySession(TransportClient.java:702)
at com.dukascopy.dds4.transport.client.TransportClient.pingConnection(TransportClient.java:693)
at com.dukascopy.dds4.transport.client.TransportClient.access$200(TransportClient.java:54)
at com.dukascopy.dds4.transport.client.TransportClient$1.run(TransportClient.java:362)
at java.lang.Thread.run(Unknown Source)
The problem is that the
disconnect signal is send for A but not for B.
A is just used for receiving market ticks while B is used for sending orders.
Please send disconnect for all processes so that reconnect programs can jump in.
I want to avoid writing my own heartbeat thread.