Not receiving updatemsg for some RICS. Please help understand why?

Vinodhini
Vinodhini Newcomer
edited September 1 in EMA

When publishing price for all rics via postmsg. I didn't receive corresponding onupdatemsg for all rics.

I am able to see price on subscribing to rics. However since updatemsg is not always returned after postmsg. Is there any way we can confirm that publishing has been completed successfully?

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Vinodhini

    Thank you for reaching out to us.

    You can set the solicitAck flag in the post message to receive an acknowledgment in response

     PostMsg().postId( postId++ ).serviceName("<Service>")
    .name( "<RIC>" ).solicitAck( true ).
    ….
    

    With this code, the application will receive acknowledgement messages through the onAckMsg method.

    The ackId in the acknowledgment message will match the postId in the original post message. The application should check the NackCode to identify unsuccessful post attempts.

    	if ( ackMsg.hasNackCode() )
    		cout << "Nack Code: " << ackMsg.getNackCodeAsString() << endl;
    
    
  • Thanks you for responding

    I have set solicit ack as true. I am receiving ackMsg but the price is not updated in refinitiv at the point when I am receiving ackMsg. I also noticed I am getting multiple ack msgs. So I changed my code to wait for onupdatemsg which is received post all ackmsg at the end. But I don't receive onupdatemsg for all rics.

    Is this because of any missing configuration?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Vinodhini

    Are you using off-stream or on-stream postings?

    Please share the code that you are using when positing.

  • IMG_20250901_134023.jpg

    Attaching my code. Please let me know if you any additional details

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Vinodhini

    It looks like to off-stream postings which using a login stream to post messages.

    Therefore, the application will not retrieve update messages of the posted items.

    You may need to subscribe to that item in order to get update messages of that item.

    You can refer to the Cons100 example to subscribe to an item.

  • Thanks

    I am using consumer to subscribe and I see the price is updated in refinitiv while decoding refreshMsg

    I am not sure how long to wait for publishing to complete as I don't get updateMsg..

    Do you have any suggestions?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Vinodhini

    You can enable tracing in the library by using the XmlTraceToFile configuration of the Consumer to verify what the problem is. For example:

    	<DefaultConsumer value="Consumer_1"/>
    	<ConsumerList>
    		<Consumer>			
    			<Name value="Consumer_1"/>		
    			<Channel value="Channel_1"/>			
    			<Dictionary value="Dictionary_1"/>
    			<XmlTraceToFile value="1"/>
    		</Consumer>
    

    Then, the trace file (EmaTrace_xxx.xml) will be create. Please share the trace file.

  • Hi

    I tried XmlTraceToStdOut and I was able to see some additional logs. But trace file is not getting generated on adding XmlTraceToFile.

    I tried XmlTraceFileName and provided folder location but didn't help.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Vinodhini

    Do you have a permission to write or create files on that directory?

    Is it EMA Java? Please also check the version of EMA used by the application.

  • Hi

    Yes doesn't look like permission issue

    Using EMA Java version 3.6.4.0

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    EMA 3.6.4 doesn't support the XmlTraceToFile configution.

    Please use the latest one RTSDK Java 2.3.0.L2 (EMA/ETA 3.9.0.L2).

    You can download it from the Software Downloads. It is in the Product family: MDS API and Products; LSEG Real-Time SDK.

  • Thank you. Can we use EMA version 3.9.0.1 ?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    Yes, you can. It is EMA 3.9.0.L1.

    RTSDK Java 2.3.0.L2 aka EMA/ETA 3.9.0.L2 aka 3.9.0.1