The connection between my application and the Reuters Centers died again, I can't receive quotaion n
Hi @Pimchaya.Wongrukun,
The connection died again, I have the log by using:
<Consumer>
<Name value="Consumer_1"/>
...
<XmlTraceToStdout value="1"/>
</Consumer>
Can you tell me your email, so that we can talk about this problem better.
Answers
-
Hello @Raj.Huang
To be able to support you directly via email, please login to
https://customers.thomsonreuters.com/developer/crmcontactus/support.aspx
using your company's email then you can submit the problem to my team directly.
Next, a case will be created and we will respond to you directly via the case's email.
If you cannot access or submit the problem, please contact RDC admin(
rdc.administrator@thomsonreuters.com)
Note: Only registered users for TRDC contact can be submitted the problems to our web form. For details to register for our service,please contact RDC admin.
0 -
Hi @Pimchaya.Wongrukun, I can't open the link.. reply here then. I found after received below data, there is no quotation data received anymore.But normal message still comes.
<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/192.168.2.170:32613 remote=/122.144.182.146:14002] -->
<!-- Tue Sep 19 14:42:39 CST 2017 --><STATUS domainType="MARKET_PRICE" streamId="5" containerType="NO_DATA" flags="0x08 (HAS_MSG_KEY)" dataSize="0">
<key flags="0x07 (HAS_SERVICE_ID|HAS_NAME|HAS_NAME_TYPE)" serviceId="257" name="GBP=" nameType="1"/>
<dataBody>
</dataBody></STATUS>
0 -
Can I have all results from the console output via a file attachment?
Normally, Market Price Status Message conveys state change information associated with an item stream, not the connection status.
In fact, if a connection problem does occur, EMA should rather logs the similar result below (e.g. ChannelDown) to console.
See ema-channel-down-message-log.txt for more message details.
0 -
Hi @Nipat Kunvutipongsak, I have uploaded the part of log, because it's too big. So I cut out some important logs for you.logdetail-question.zip
0 -
Hello @Raj.Huang,
I've checked the log file, and I can assure you that the connection's down on 15:44:41.772 (see below).
Received ChannelDownReconnecting event on channel Channel
This was generated from Reactor (underlying layer to indicate that this channel down event can be recoverable).
The connection was actually recovered on 15:44:42.789 as conveyed by the following text message:
Received ChannelUp event on channel Channel
Anyway, a streamId and item name conflict to each other. Considering the STATUS message type, we suspected that it should be a multi-threaded application, am I correct?
0 -
Hi @Nipat Kunvutipongsak,
Of course it is a multi-threaded application, as you said, the connection's down on 15:44:41.772. However, my application can't decode data from the message since 14:42, after receiving
Incoming Reactor message containerType="NO_DATA",
Though it still received normal data:
containerType="FIELD_LIST"
And at 15:44:42.789, it did recovered, my application could decode data again. I mean the time interval is too long reaching 1 hour, I would like a better solution for this connection.
0 -
And can you tell me why the reuter server send the message:
<STATUS domainType="MARKET_PRICE" streamId="5" containerType="NO_DATA" flags="0x08 (HAS_MSG_KEY)" dataSize="0">
<key flags="0x07 (HAS_SERVICE_ID|HAS_NAME|HAS_NAME_TYPE)" serviceId="257" name="GBP=" nameType="1"/>
<dataBody>
</dataBody>
</STATUS>or in which case the reuter server will send the message?
0 -
Hello @Raj.Huang,
To clarify this again,
- EMA can recover connection around 1 minutes (15:44:41.772 to 15:44:42.789).
- After EMA received the status event for AUD=, it did receive one update after this status. You can observe incoming data via an xml comment tag
<!-- Incoming Reactor message -->
Still, it's quite suspicious because why EMA didn't any further receive data after 14:42:40, then the connection was cut on 15:44:41.772.
For my suggestion, I suggest you try to replicate this problem using a simple EMA example such as example 100 MarketPriceStreaming (see the attachment).
0 -
P.S. You may need to change the host, port, service feed value according to your environment.
consumer = EmaFactory.createOmmConsumer(config.host("host:port").username("user"));
ReqMsg reqMsg = EmaFactory.createReqMsg();
consumer.registerClient(reqMsg.serviceName("service").name("JPY="), appClient);
reqMsg.clear();<br>Also, I've set the example runtime to 2 days
Thread.sleep(/*1 minute*/60000 * 60 * 24 * 2 /* -> total 2 days */); // API calls onRefreshMsg(), onUpdateMsg() and onStatusMsg()<br>
0 -
Hi @Nipat Kunvutipongsak,
Thank you very much for answering my question.
I suspect the EMAConsumer may die or exit when it receives the NO_DATA message. So I want to know why(or when) the reuter server send the message:containerType="NO_DATA"? I have asked above.
<STATUS domainType="MARKET_PRICE" streamId="5" containerType="NO_DATA" flags="0x08 (HAS_MSG_KEY)" dataSize="0">
<key flags="0x07 (HAS_SERVICE_ID|HAS_NAME|HAS_NAME_TYPE)" serviceId="257" name="GBP=" nameType="1"/>
<dataBody>
</dataBody>
</STATUS>0 -
Hello @Raj.Huang ,
According to this thread; https://community.developers.refinitiv.com/questions/18912/can-i-simulate-the-reuters-to-send-item-messages-t.html,
Does this problem still persist with the local provider with the NO_DATA STATUS message?
0 -
Hello @Raj.Huang ,
Just want to confirm whether plain examples in EMA Java (see below) also encounter this problem or not.
- com.thomsonreuters.ema.examples.training.consumer.series100.example100__MarketPrice__Streaming
- com.thomsonreuters.ema.examples.training.consumer.series100.example120__MarketPrice__FieldListWalk
Have you have a chance to test the same scenario with these examples yet?
0 -
@Raj.Huang, it's me who provided you how to send NO_DATA message in the other thread.
<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/127.0.0.1:62453 remote=localhost/127.0.0.1:14002] -->
<!-- Wed Oct 11 16:22:25 ICT 2017 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<STATUS domainType="MARKET_PRICE" streamId="3" containerType="NO_DATA" flags="0x00" dataSize="0">
<dataBody>
</dataBody>
</STATUS>
<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/127.0.0.1:62453 remote=localhost/127.0.0.1:14002] -->
<!-- Wed Oct 11 16:22:26 ICT 2017 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<UPDATE domainType="MARKET_PRICE" streamId="3" containerType="FIELD_LIST" flags="0x00" updateType="0" dataSize="14">
<dataBody>
<fieldList flags="0x08 (HAS_STANDARD_DATA)">
<fieldEntry fieldId="22" data="0C0F A2"/>
<fieldEntry fieldId="30" data="0E15"/>
</fieldList>
</dataBody>
</UPDATE>
<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/127.0.0.1:62453 remote=localhost/127.0.0.1:14002] -->
<!-- Wed Oct 11 16:22:27 ICT 2017 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<UPDATE domainType="MARKET_PRICE" streamId="3" containerType="FIELD_LIST" flags="0x00" updateType="0" dataSize="14">
<dataBody>
<fieldList flags="0x08 (HAS_STANDARD_DATA)">
<fieldEntry fieldId="22" data="0C0F A3"/>
<fieldEntry fieldId="30" data="0E16"/>
</fieldList>
</dataBody>
</UPDATE>As you can see, the first message in the snippet is NO_DATA, and the com.thomsonreuters.ema.examples.training.consumer.series100.example100__MarketPrice__Streaming consumer application can continue receiving further updates. Please check the log file here: emaj-continues-get-data-regardless-no-data-message.txt
- What's the version of EMA Java used (displayed in the log from both of Consumer and IProvider example -- you can check yours similar to the screenshot below)?
- Can I have the log files from both of series100.example (Consumer and IProvider)?
0 -
Hi @Nipat Kunvutipongsak,
As I said before, it do receive incoming messages as your capture shown, but the onUpdateMsg() method at Consumer.java won't be called, so we can't decode data then. You can print a log after the method being called like below, so that you can check if the method being called or not.
0 -
@Raj.Huang I got your point; onUpdateMsg() isn't called after the status message.
I'll cross check this behavior with the other APIs and will get back to you.
0 -
@Raj.Huang
I've submitted a new issue to the development team on your behalf already (https://github.com/thomsonreuters/Elektron-SDK/issues/37).
So, you can communicate and follow up with the development team directly.
In the future, if you suspect there is an EMA bug/non-support feature or improper implementation/configuration in application level via GitHub at https://github.com/thomsonreuters/Elektron-SDK/issues, click "New issue" button, and put detailed information, then submit it to the Developer team.
0 -
@Raj.Huang Regarding the STATUS message, actually it is used to convey state change information, so this message normally doesn't have a payload data (NO_DATA).
Refer to <Elektron-Package>\Ema\Docs\EMAJ_RDMUsageGuide.pdf
The problem should be why the server sent STATUS without any STATE information, which had no meaning for the subscription stream. So, this case should be investigated by the server team.
You can submit a ticket to them via https://my.thomsonreuters.com/ContactUsNew, and select Product as 'Elektron Edge' which is the server that the applciation is conecting to.
0 -
Hi @Raj.Huang
Based on the GitHub issue page, this issue has been fixed in Elektron SDK 1.1.2 G1 version.
1
Categories
- All Categories
- 6 AHS
- 39 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 60 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛