question

Upvotes
Accepted

example100__MarketPrice__Streaming

I just downloaded the Elektron-SDK1.1.1.E2.java.zip.

I tried to manage to run "example100_MarketPrice_Streaming" on mac. I am using config.host as <xxx>.streaming.cp.<xxx>.com with Eikon credential.

I ran this script "example100__MarketPrice__Streaming.ksh".

And here is the result.

What I did wrong?

Can I use "streaming.cp" as the host?

Does it support Eikon credential?

Or do you have any alpha/beta environment that I can test the sample app with it?

My purpose; I am going to create a monitoring test that simulate realtime requesting similar to eikon app. To ensure, Eikon customer can get realtime data.

eikonelektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
Accepted
9.5k 10 5 7

Hello @niroot.techa-amnouywit
Yes. You logged in to the server successfully as the login stream opened(the state is Open/Ok/None) as shown below:

<REFRESH domainType="LOGIN" ...State: Open/Ok/None - text: "Login accepted by host STCP-HMDP2PD04." dataSize="0">

To allow me investigate your problem, please send the following:

  • The complete EMA trace log file when the problem occurs
  • The EMA application's source code
  • EmaConfig.xml read by the application

You may compress all above into a zip file and upload the zip file to this question or send them to my email.

In additional, if you have any new question/problem, please post it as a separated/new question. This will allow anyone who can help you to see your question/problem obviously.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

The client confirmed that he needed Encrypted Connection type. I have suggested him to use EMA Java version 1.1.3.G1 which supports this connection type. The source code is available on Elektron-SDK GitHub ; it has not been available on Elektron SDK Java Download page yet. To build the source code, refer to README.md under Java folder. The client can start with example112__MarketPrice__TunnelingConnection which demonstrates how to use Encrypted Connection type.

Upvote
9.5k 10 5 7

Hello @niroot.techa-amnouywit

Please make sure that you set a valid token in username(..) and correct host in host(..) which returns the result of the login request. For example:

consumer  = EmaFactory.createOmmConsumer(config.host(<server:port>).username(<token>));

Normally, EMA sends a login request once then it expects the result of the login request. If the logging in to the host is successful, EMA can request an item from the server specified in host(..).

If you find any error, you can check if the error is from the server side or EMA by adding XmlTraceToStdout parameter of the Consumer node your application uses(default is "Consumer_1") to be 1. The parameter is in EmaConfig.xml file your application uses (the default is in the application run directory).

<Consumer>
  <Name value="Consumer_1"/>
  ...
  <XmlTraceToStdout value="1"/>
</Consumer>

Then, EMA traces its received messages(Incoming Reactor message) and sent messages(Outgoing Reactor message) in XML format to stdout/console where the application's output is shown as well.

The example failed login sent from the server:

<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.61.200:61960 remote=/192.168.27.49:14002] -->
<!-- Tue Apr 10 17:48:48 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<STATUS domainType="LOGIN" streamId="1" containerType="NO_DATA" flags="0x28 (HAS_MSG_KEY|HAS_STATE)" State: Closed/Suspect/Not entitled - text: "pimchayax, unknown to system." dataSize="0">
    <key flags="0x06 (HAS_NAME|HAS_NAME_TYPE)" name="pimchayax" nameType="1"/>
    <dataBody>
    </dataBody>
</STATUS>

Hence, the component(the server or EMA) generates the error should be investigated/fixed.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes

Thank you, @Pimchaya.Wongrukun.

As I talked to you yesterday, I could get data as your given TREP hostname. It worked as expected.

Now, I changed to "apac1.streaming.cp.thomsonreuters.com" and put the valid token.

I got this response.

<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:40:31 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REFRESH domainType="LOGIN" streamId="1" containerType="NO_DATA" flags="0x168 (HAS_MSG_KEY|SOLICITED|REFRESH_COMPLETE|CLEAR_CACHE)" groupId="0" State: Open/Ok/None - text: "Login accepted by host STCP-HMDP2PD04." dataSize="0">
    <key flags="0x26 (HAS_NAME|HAS_NAME_TYPE|HAS_ATTRIB)" name="AQIC5wM2LY4SfcycE27y2YL%2FTn0p3dI4kcd2VMQpvh7P7Pw%3D%40AAJTSQACMzAAAlNLABQtODk2NTAyNTUxMTQyOTI2MDA5NgACUzEAAjI0%23" nameType="1" attribContainerType="ELEMENT_LIST">
        <attrib>
            <elementList flags="0x08 (HAS_STANDARD_DATA)">
                <elementEntry name="AllowSuspectData" dataType="UINT" data="1"/>
                <elementEntry name="ApplicationId" dataType="ASCII_STRING" data="256"/>
                <elementEntry name="ApplicationName" dataType="ASCII_STRING" data="ADS"/>
                <elementEntry name="Position" dataType="ASCII_STRING" data="10.42.87.199/niroots-mbp.ten.thomsonreuters.com"/>
                <elementEntry name="ProvidePermissionExpressions" dataType="UINT" data="1"/>
                <elementEntry name="ProvidePermissionProfile" dataType="UINT" data="0"/>
                <elementEntry name="SingleOpen" dataType="UINT" data="1"/>
                <elementEntry name="SupportEnhancedSymbolList" dataType="UINT" data="1"/>
                <elementEntry name="SupportOMMPost" dataType="UINT" data="1"/>
                <elementEntry name="SupportPauseResume" dataType="UINT" data="1"/>
                <elementEntry name="SupportStandby" dataType="UINT" data="0"/>
                <elementEntry name="SupportBatchRequests" dataType="UINT" data="7"/>
                <elementEntry name="SupportViewRequests" dataType="UINT" data="1"/>
                <elementEntry name="SupportOptimizedPauseResume" dataType="UINT" data="1"/>
            </elementList>
        </attrib>
    </key>
    <dataBody>
    </dataBody>
</REFRESH>

I think the authentication was succeeded. I have tried to put the invalid token, it showed login denied. So I think my token is good.

But after that there was no dictionary coming in. I saw only outgoing request, no incoming.

<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:40:31 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REQUEST domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x08 (HAS_FILTER)" filter="63"/>
    <dataBody>
    </dataBody>
</REQUEST>
<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:40:46 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<CLOSE domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x00" dataSize="0">
    <dataBody>
    </dataBody>
</CLOSE>
Apr 11, 2018 10:40:46 AM com.thomsonreuters.ema.access.DirectoryCallbackClient rdmDirectoryMsgCallback
WARNING: loggerMsg
    ClientName: DirectoryCallbackClient
    Severity: Warning
    Text:    RDMDirectory stream state was changed to suspect with status message 
        State: State: Open/Suspect/None - text: "null"
loggerMsgEnd
<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:40:46 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REQUEST domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x08 (HAS_FILTER)" filter="63"/>
    <dataBody>
    </dataBody>
</REQUEST>
<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:41:01 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<CLOSE domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x00" dataSize="0">
    <dataBody>
    </dataBody>
</CLOSE>
Apr 11, 2018 10:41:01 AM com.thomsonreuters.ema.access.DirectoryCallbackClient rdmDirectoryMsgCallback
WARNING: loggerMsg
    ClientName: DirectoryCallbackClient
    Severity: Warning
    Text:    RDMDirectory stream state was changed to suspect with status message 
        State: State: Open/Suspect/None - text: "null"
loggerMsgEnd
<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/10.42.87.199:63300 remote=apac1.streaming.cp.thomsonreuters.com/159.220.16.33:14002] -->
<!-- Wed Apr 11 10:41:01 ICT 2018 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REQUEST domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x08 (HAS_FILTER)" filter="63"/>
    <dataBody>
    </dataBody>
</REQUEST>

I tried to config to use the local dictionary file as well. But the result is the same.

Do you have any suggestion?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes

Now, I can retrieve data properly. I just created a keystore file. The example is working perfect.

Thank you so much.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea