Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Submit JForex API bug reports in this forum only.
    Submit Converter issues in Converter Issues.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

No disconnect send when connection to server is lost
 Post subject: No disconnect send when connection to server is lost Post rating: 0   New post Posted: Tue 03 Mar, 2015, 20:15 
User avatar

User rating: 11
Joined: Tue 27 Mar, 2012, 17:47
Posts: 111
Location: GermanyGermany
Hello Support,

sometimes when the standalone client looses Connection, no disconnect is sent to indicate this.
Here is the log:
3 Mär 16:24:00 SEVERE Client disconnected, secondary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=145)>
   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)

3 Mär 16:24:00 SEVERE Request to DFS timed out, timeout [10000], request [<ServerTimeRequestMessage(,requestId=543)>]
com.dukascopy.charts.data.datacache.DataCacheException: Request to DFS timed out, timeout [10000], request [<ServerTimeRequestMessage(,requestId=543)>]
   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:225)
   at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
   at java.util.concurrent.FutureTask.run(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

3 Mär 16:24:01 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:03 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:04 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:06 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:08 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:09 SEVERE Exception caught
java.io.IOException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
   at sun.nio.ch.SocketDispatcher.read0(Native Method)
   at sun.nio.ch.SocketDispatcher.read(Unknown Source)
   at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
   at sun.nio.ch.IOUtil.read(Unknown Source)
   at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
   at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:218)
   at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:198)
   at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(SocketIoProcessor.java:45)
   at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:485)
   at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
   at java.lang.Thread.run(Unknown Source)

3 Mär 16:24:10 INFO Child session opened for [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443]
3 Mär 16:24:10 INFO Disconnect task in queue, reason [EXCEPTION_CAUGHT], server address [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443], transport name [null]
3 Mär 16:24:10 SEVERE Client disconnected, primary connection ping failed
java.util.concurrent.TimeoutException: No response from server. Request: <HeartbeatRequestMessage(,synchRequestId=146)>
   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 I've created a reconnect strategy when the disconnect is reveived in the ISystemListener.
It is not sent in this case and so I cannot retry to Login.
The problem is not dependent on any strategy, it appears randomly.
The line
3 Mär 16:24:10 INFO Disconnect task in queue, reason [EXCEPTION_CAUGHT], server address [d-ja-gva-101-133-167.dukascopy.com/194.8.15.167:10443], transport name [null]

shows that a disconnect is in the queue, but it is not send to the ISystemListener.
I'm running API 2.12.6 and jClient 2.43.2.


 
 Post subject: Re: No disconnect send when connection to server is lost Post rating: 0   New post Posted: Wed 04 Mar, 2015, 07:41 
User avatar

User rating: 11
Joined: Tue 27 Mar, 2012, 17:47
Posts: 111
Location: GermanyGermany
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.


 
The Best Answer  Post subject: Re: No disconnect send when connection to server is lost Post rating: 0   New post Posted: Thu 05 Mar, 2015, 11:58 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
Could you please send the source code that was used to run the standalone client.


 
 Post subject: Re: No disconnect send when connection to server is lost Post rating: 0   New post Posted: Fri 06 Mar, 2015, 09:05 
User avatar

User rating: 11
Joined: Tue 27 Mar, 2012, 17:47
Posts: 111
Location: GermanyGermany
Error was on my side...fixed.


 

Jump to:  

  © 1998-2025 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com