FIX available host jumps from h55.* to h33.* and back without warning
FIX available host jumps from h55.* to h33.* and back without warning
30 May 2019, 10:03
I have a FIX "demo" connection which has been working flawlessly for some days now, using my correct credentials and the host name "h55.p.ctrader.com" and port 5201 (plain text), as copied from the Settings -> FIX API option in cTrader Web.
However, at certain random times, this connection stops working for the "Quotes" session. In other words, an empty response is received for a Logon (A) message to the Quotes session, so I cannot logon, hence cannot get market data. Nothing was changed in this logon message.
After checking cTrader Web, I found that the avaiable host name in Settings -> Fix API had changed without warning to "h33.p.ctrader.com". I then changed the FIX application to use this new host name, and hey presto, the "Quotes" session was connecting again and getting market data.
BUT, after a while, THAT host fails to logon, and when I switch back to "h55.p.ctrader.com" I find that the Logon (Quotes) works again ! This goes on intermittently all day at various times, by checking my application output.
Since my application cannot know that the "available" host name has changed - how can it be coded so that it always gets a connection to a known host? And of course, I never use the IP address - the instructions show clearly that this *could* change.
How can this problem be stabilized?
Has anyone else seen this happen?
Replies
aerich48
30 May 2019, 14:06
FIX available host jumps from h55.* to h33.* and back without warning
Thanks for your info and suggestion.
About 1 hour after my last post, I got this report from the FIX trading application, which might help:
Logging Into Quotes...
8=FIX.4.4|35=A|49=pepperstone.3292158|56=CSERVER|50=QUOTE|57=QUOTE|34=1|52=20190530-10:58:25.000|98=0|108=0|141=Y|553=3292158|554=twcfk3Lj|
'Fx.logonsesn()': 'Fix.decmsg': Empty Response Stream
The problem persisted on re-try a number of times.
The host this time was:
h55.p.ctrader.com
The date stamp is UTC, so this may shed light on the problem.
Thanks.
P.S. The problem was then solved by going back again to host "h33.p.ctrader.com", as before (!)
@aerich48
PanagiotisCharalampous
30 May 2019, 14:23
Hi aerich48,
We had a look at this and it seems that at the time you sent the message above you were already logged in, this is why you did not receive a response. Can you please check your implementation? If you already have sessions established then you need to log out first before you can login again.
Best Regards,
Panagiotis
@PanagiotisCharalampous
aerich48
30 May 2019, 15:29
FIX available host jumps from h55.* to h33.* and back without warning
Thanks for that check !
You may be right.
To recap, the application always does this when required:
1. Logon to Quotes
2. Get market data
3. Log out of Quotes
4. Close the Quotes socket
It does this periodically, so that there is reasonable continuity of prices. It *usually* works well, and very fast.
But the application might be closing the Quotes socket too soon after sending the logout message, thus the logout *might* not be getting through, and the session might remain logged in, as you suggest. I will change the implementation to use a delay after sending the Logout(5) message, and see what happens.
Thanks again.
@aerich48
PanagiotisCharalampous
30 May 2019, 11:59
Hi aerich48,
The fact that the nearest proxy is changing in cTrader should not affect your connectivity with other proxies. If it is possible please send us at community@spotware.com the exact message that received an empty response with its timestamp and the proxy to which it was sent so that we can investigate what happened.
Best Regards,
Panagiotis
@PanagiotisCharalampous