I have an Elektron SDK sample program that runs successfully on my development PC but not when I deploy it to another PC, which is pretty much a vanilla Window 10 box other than the Visual Studio redistributables (VC_redist.x64.exe) that are required to run anything built by VC.
The error log indicates that the SDK is unable to load openSSL libraries. (See below.) Are there additional binaries that need to be deployed along with the application?
For background, the sample is "EMA Consumer - Posting data to TR Contribution Channel" modified with my account details and it successfully posts data. The EXE is a Release build. The following log message repeats several times before the app times out.
Text: Received ChannelDownReconnecting event on channel Channel_1
Instance Name Consumer_1_1
Error Id -1
Internal sysError 126
Error Text <C:\Jenkins\workspace\ESDKCore_RCDEV\OS\VS140-64\rcdev\source\esdk\Cpp-C\Eta\Impl\Transport\rsslSocketTransportImpl.c:7604> Error: 0012 Unable to load openSSL Libraries.
Follow-up: I downloaded OpenSSL DLLs from here: http://wiki.overbyte.eu/arch/openssl-1.1.1a-win64.zip
After I put them in the EXE directory the programs now runs fine. Thanks for your questions -- they helped me resolve this issue.
What version of EMA /ESDK you currently use and Can you share the EMA configuration file?
I tested the TRCC example with ESDK 1.3.1 and connecting the example to the TRCC server for windows and I also configured the EMA config to use open ssl rather than winInet and still not found the issue.
Thanks for your reply.
The version is (from the CHANGELOG file): ESDK C/CPP 1.3.1.L1 aka EMA 3.3.1.L1 and ETA 3.3.1.L1
I attached the Ema config file.
I was just looking at the README.md file and it lists openSSL as an "external module" used by the ESDK. For Windows I assume this would be a DLL? Can you recommend a binary distribution of OpenSSL that would satisfy this requirement?
It looks like you changed EncryptedProtocolType to EncryptedProtocolType::RSSL_SOCKET so EMA uses OpenSSL rather than the default WinInet on windows and that is the reason that it required the OpenSSL library.
It looks like the windows 10 on azure I just created already have openssl lib installed so that why I can't replicate the error.
Yes. The reason that was done was to work-around an incompatibility between the Windows EMA program I built and the server it was trying to login-to. (Apparently, a Windows build that uses WinInet can only connect to Windows servers.) I did that on the advice of a refinitiv engineer. You can refer to that thread here: https://community.developers.refinitiv.com/questions/51027/ema-consumer-app-login-times-out-after-45-seconds.html