question

Upvotes
1 0 0 0

Elektron Message API Java Edition 3.5.X traces incoming messages to files only when XmlTraceToStdout=1

EMA tracing of incoming messages with XmlTraceRead=1 to file(s) does not work properly.

Reactor read messages are written to files only when XmlTraceToFile=1, XmlTraceRead=1 and XmlTraceToStdout=1. Simultaneosly these messages logged to stdout as well.

It seems there is an error in the code, see https://github.com/Refinitiv/Real-Time-SDK/blob/206e4e5a3255da3afcfa75f5da151a8efef6de8e/Java/Eta/ValueAdd/src/main/java/com/refinitiv/eta/valueadd/reactor/Reactor.java#L4809

I guess it should be _reactorOptions.xmlTraceToFile() instead of _reactorOptions.xmlTracePing() in the if condition.


Documentation link: https://github.com/Refinitiv/Real-Time-SDK/blob/master/Java/Ema/Docs/EMAJ_ConfigGuide.pdf Page 12

RTDSK version is 3.7.3.0

To reproduce use the following XML configurations and compare the logs:

<?xml version="1.0" encoding="UTF-8"?><EmaConfig>
<ConsumerGroup>
<DefaultConsumer value="Consumer_0"/>
<ConsumerList>
<Consumer>
<Name value="Consumer_0"/>
<ChannelSet value="Channel_0"/>
<XmlTraceRead value="1"/>
<XmlTraceToFile value="1"/>
<XmlTraceFileName value="ema-trace"/>
<XmlTraceToMultipleFiles value="1"/>
<XmlTraceMaxFileSize value="100000"/>
</Consumer>
</ConsumerList>
</ConsumerGroup>
<ChannelGroup>
<ChannelList>
<Channel>
<Name value="Channel_0"/>
<Host value="localhost"/>
<Port value="14002"/>
</Channel>
</ChannelList>
</ChannelGroup>
</EmaConfig>


<?xml version="1.0" encoding="UTF-8"?><EmaConfig>
<ConsumerGroup>
<DefaultConsumer value="Consumer_0"/>
<ConsumerList>
<Consumer>
<Name value="Consumer_0"/>
<ChannelSet value="Channel_0"/>
<XmlTraceRead value="1"/>
<XmlTraceToStdout value="1"/>
<XmlTraceToFile value="1"/>
<XmlTraceFileName value="ema-trace"/>
<XmlTraceToMultipleFiles value="1"/>
<XmlTraceMaxFileSize value="100000"/>
</Consumer>
</ConsumerList>
</ConsumerGroup>
<ChannelGroup>
<ChannelList>
<Channel>
<Name value="Channel_0"/>
<Host value="localhost"/>
<Port value="14002"/>
</Channel>
</ChannelList>
</ChannelGroup>
</EmaConfig>

#technologyema-api#product
icon clock
10 |1500

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

<Private Comment>

Hi @VadimVashkevich

The issue has been tracked as Issue #273 on GitHub. However, if you need a support ticket for this issue, please contact your colleague tyndall.nguyen@ubs.com to help you submit a support ticket to the Real-Time APIs support team (RDC).

<AHS>

GitHub Issue#273 status is open. Extend triage for a month.

1 Answer

· Write an Answer
Upvotes
24.7k 54 17 14

Hello @VadimVashkevich

Thank you for reaching out to us. I can replicate the same behavior with EMA Java 3.7.3.0 and ex100_MP_Streaming example. My EmaConfig.xml file is as follows:

<Consumer>
    <!-- Name is mandatory    -->
    <Name value="Consumer_1"/>
    <!-- Channel is optional: defaulted to "RSSL_SOCKET + localhost + 14002" -->
    <!-- Channel or ChannelSet may be specified -->
    <Channel value="Channel_1"/>
    <!-- Dictionary is optional: defaulted to "ChannelDictionary" -->
    <Dictionary value="Dictionary_2"/>
    <XmlTraceToStdout value="0"/>
    <XmlTraceToFile value="1"/>
    <XmlTraceFileName value="C:\\logs\\api.log"/>
</Consumer>
  • With <XmlTraceToFile value="1"/> + <XmlTraceToStdout value="0"/>, the API logs only outgoing messages
  • With <XmlTraceToFile value="1"/> + <XmlTraceToStdout value="1"/>, the API logs both incoming and outgoint messages

I have created the GitHub - Issue #273 on your behalf on the RTSDK GitHub repository. You can track the issue or contact the RTSDK team directly via this https://github.com/Refinitiv/Real-Time-SDK/issues/273 link.

icon clock
10 |1500

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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