We are trying to do something really simple, connect and contribute to EMA. To cut a long story short, after a month of trying and our network guys analyzing the lines we went back to basics and downloaded the sample application:
We built on windows using Visual studio 2012 compiler linked and run it but just like our main application every time we run it, on the following line:
it throws a OmmException:
0x000000faac6fd9d4 "Exception Type='OmmInvalidUsageException', Text='login failed (timed out after waiting 45000 milliseconds) for chp02-emea2.thomsonreuters.com:443)', ErrorCode='-4052'"
Our network guys believe this error sits firmly on the Reuters side and I can see many people in the past have had simulate issues. We even followed some of their crazier ideas like Windows can't talk to Linux so change the server to have a chwp02-emea2.thomsonreuters.com but that didn't work.
We really need a solution for this, the whole point of an example app is it works and you can use it as a reference point to trouble shoot issues in your main app.
HTTP switches the encryption to use Wininet for TLS 1.2 under Windows. This is required when using the VIPs with the chpw prefix as these VIPs are set to allow the dual connections that the Wininet implementation requires.
The other VIPs are for OpenSSL use only and should not currently be used for Windows implementations as there is an outstanding API fix to be delivered with regard to the OpenSSL implementation under the Windows API.
Please use the following VIPs for any Windows solution and ensure that the encrypted protocol type is set to HTTP to use Wininet.
The EncryptedProtocolType settings are explained in section "184.108.40.206 Implementing Protocols and Encryption Behavior" of the Elektron Message API Development Documentation
I have retested the tutorial for EMA C++ "as is", starting from 0:
I went to EMA Consumer - Posting data to Contribution Channel (in C/C++) and have downloaded tutorial source code.
I run on Win10, from VS 2019. I have opened the project VS150, updated libxml2.lib file location to the current one (the project is for ESDK 1.1 and mine ESDK is 1.5) and was able to run.
I had to update dictionary 2 locations in emaConfig.xml to the actual locations of my file based dictionaries (the project uses Consumer 1 definition from emaConfig.xml)
I was able to connect, per channel 1 definition to "chp02-emea2.thomsonreuters.com" via encrypted channel, received refresh, status, and my next error message was "Not entitled / 'invalid MachineID or Password received'" which was true, I did not provide a valid machineId, so can not post to TRCC.
Just to be sure, this is the same TRCC example that you are testing with, correct?
I think you are on the right track now, by getting first the simplest example working, and only then switching to a custom app.
I would verify the connectivity to chwp02-emea2.thomsonreuters.com, as from your error, you are not connecting properly. And that is usually network connectivity, whether lack of route or firewalling. Otherwise you should see an error on build or run, before that OMMException on connect that you see.
I would in addition try running with the latest ESDK 1.5, many fixes were applied to ESDK since 1.1, and I prefer to run with all the fixes, just n case.
The problem is, on our side we have already escalated this to our networks team who have looked at this and confirmed that as far as they are concerned their is absolutely nothing wrong with the network configuration and they are seeing the connection established and then dropped from Reuters side and believe it's probably a firewall on your side. As I shared with our account manager, every other market vendor whether is be Bloomberg, Quanthouse, Activ or an exchange work with their clients to resolve these issues quickly. We started the Bloomberg contribution at the same time but when we hit connectivity issues their, their account manager assembled a team of network people to troubleshoot it with our network people and it was resolved in a day and we have been contributing for 2 months now increasing the contribution pool an order of magnitude.
The question is where do we as a business go from here? on the one side I have my IT telling me that they don't see any issues with the network and can't do anything more without counterpart help. On the other I have the classic developer line "If works on our PC, must be you".
What I don't have is a way forward from here. We have the latest version of everything and the error occurs in a single line of Reuters API code which we can't step into, so we can't break this down into any smaller chunk.
So we have 4 possible issues:
1: Network issues on our side -- problem here is we pay professionals a lot to manage this and if they say they don't believe that, without any evidence I can't really fight that.
2: Software config issue our side -- We have reduced this to a small Reuters project which you confirmed does work so this seems unlikely.
3: Network issue your side (like our NW team think) -- I confess, I doubt this but it's definitely possible.
4: A network incompatibility between our and your network. This seems most likely but we can't find it alone.
We're happy to try anything to track this down but it feels like we have run out of routes to follow alone and Reuters has removed the sort of network level support needed to fix this.
I hear you and understand your frustration with this delay.
However, this is Refinitiv developers forum, the members of this forum are developers who work with Refinitiv APIs, the moderators are Refinitiv API experts. The framework of a discussion forum is most suited for general questions and discussions centered around Refinitiv API usage. Not for involved, environment-specific troubleshoots.
I am glad to help to the degree that I can. As a developer, here is how I would proceed:
1. Are you familiar with telnet testing? If you are on win 10 it will not come by default, you will need to enable it via control panel first. The, run command shell as Administrator and go
telnet chp02-emea2.thomsonreuters.com 443
It needs to catch and hold, not to error-out immediately. If this does not happen, would take this result to your network team.
If it does, we can proceed further
2. Next, confirm that the example you are running is
You list a link to download area in general, and I would rather be 100% sure, then 99% that you are running this bare-bones contribution example, and not another linked to GitHub. If not the case, this is what I would test with.
3. Next, update to ESDK 1.5 and I would just download the example project again, and point a project to it from scratch, but is possible to re-point from the one that is already setup in IDE. If you are re-pointing includes and libraries, has to be every single one.
4. Just to confirm, you are on 64 bit windows, because EMA is not supported on 32 bit, so would need to be.
5. One direction I am thinking in is that VS 2012 should be supported to run EMA, but is really the earliest that is supported to run EMA. Have not seen anyone lately doing that and VS 2010 was not supported according to API Compatibility Matrix. There may be complexity with it, TRCC This is a very far-fetched guess, but if it is possible on your side to re-build and re-test with a later VS, I would.
6. Another obscure idea, on your machine, in Internet Options, TLS 1.2 is enabled, not unchecked? This is what Contribution Channel uses.
Let us know how this works for you?
Also, in your EMAConfig.xml for the Channel entry, you are using, can you try changing the following parameter?
EncryptedProtocolType::RSSL_HTTP (from the default RSSL_SOCKET)
<Name value="Channel_1"/> <ChannelType value="ChannelType::RSSL_ENCRYPTED"/> <Host value="chpw02-emea2.thomsonreuters.com"/> <Port value="443"/> <EncryptedProtocolType value="EncryptedProtocolType::HTTP"/>
Apologies if you have already tried the above.