OmmInvalidHandleExceptionImpl invalid handle exception

SEVERE: [{"incidentClass":"Uncaught OmmInvalidHandleExceptionImpl in DataPublisher","details":{"pool":"Publisher ","reporter:ClassInfo":{"simpleName":"N6ThreadFactory","module":{"image":"\/server\/images\/server.png","name":"Server"},"name":"com.markit.n6platform.server.system.threads.internal.thread.N6ThreadFactory"}},"stackTrace":"Exception Type='OmmInvalidHandleException', Text='loggerMsg\n ClientName: ItemCallbackClient\n Severity: Error\n Text: Attempt to use invalid Handle on submit(PostMsg). Instance name='Consumer_1_1'.\nloggerMsgEnd\n\n', Handle='2'\r\n\tat com.refinitiv.ema.access.OmmBaseImpl.ommIHExcept(OmmBaseImpl.java:1610)\r\n\tat com.refinitiv.ema.access.OmmConsumerImpl.handleInvalidHandle(OmmConsumerImpl.java:516)\r\n\tat com.refinitiv.ema.access.ItemCallbackClient.submit(ItemCallbackClient.java:2380)\r\n\tat com.refinitiv.ema.access.OmmBaseImpl.submit(OmmBaseImpl.java:552)\r\n\tat com.refinitiv.ema.access.OmmConsumerImpl.submit(OmmConsumerImpl.java:177)\r\n\tat com.ihsmarkit.n6platform.mlip.publishing.internal.RefinitivClient.postMessage(RefinitivClient.java:135)\r\n\tat com.ihsmarkit.n6platform.mlip.publishing.internal.PublisherTask.run(PublisherTask.java:49)\r\n\tat java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\r\n\tat java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\r\n\tat java.base\/java.lang.Thread.run(Thread.java:829)\r\n"}]

Exception Type='OmmInvalidHandleException', Text='loggerMsg

ClientName: ItemCallbackClient

Severity: Error

Text: Attempt to use invalid Handle on submit(PostMsg). Instance name='Consumer_1_1'.

loggerMsgEnd


', Handle='2'

at com.refinitiv.ema.access.OmmBaseImpl.ommIHExcept(OmmBaseImpl.java:1610)

at com.refinitiv.ema.access.OmmConsumerImpl.handleInvalidHandle(OmmConsumerImpl.java:516)

at com.refinitiv.ema.access.ItemCallbackClient.submit(ItemCallbackClient.java:2380)

at com.refinitiv.ema.access.OmmBaseImpl.submit(OmmBaseImpl.java:552)

at com.refinitiv.ema.access.OmmConsumerImpl.submit(OmmConsumerImpl.java:177)

Best Answer

  • umer.nalla
    Answer ✓

    Hi @badal.vishal

    Looking at the above output, I see the Error 'Attempt to use invalid Handle on submit(PostMsg).

    This would suggest that the application is trying to submit a Post using a handle for a stream that has been closed off.

    Are there any other status messages etc to indicate the connection was lost?

    Also, as recommended in the tutorial, are you establishing 'two simultaneous connections, to two different servers' - so that you can handle any connectivity issues and switch to the other connection with minimal interruption?

    I am assuming this was a one-off? If so can you post the date&time of occurrence so I can check with the RCC team if there were any know issues around that time?

Answers

  • Does it go down after a certain time of inactivity like no publishing for 5 mins? Should I send a heartbeat after a certain interval to keep it alive? Or it is just a intermittent lost connectivity issue?
  • Hello @badal.vishal

    Basically, the API automatically sends a heartbeat message between itself and the server.

    How often the issue occurs? Are there any disconnection logs when the problem occurs?

    Beside the information requested by my colleague, if you can replicate the issue on demand, you may enable the RSSL log and share the file in this post (please remove your credentials).

    Please see the "EMA Java Logging" section of the Enterprise Message API (EMA) - Configuration Overview article about how to enable the EMA Log.

  • I have monitored that this error recovers itself.

  • Out of 8203 agreed RICs that we publish data on –

    1. Many of them are “Denied by source” which looks like is that these RICs are disabled at your side
    2. Publishing to many other RICs sends the Ack message with “Symbol unknown”
    3. For some of the publishing, we receive “No Response” timeout or “csg failed to respond” in Ack message.

    Can you please check and confirm these messages?

    Please note that we can’t track all RICs with one of these nack codes as Ack message has no RIC in response.

    Also, I don’t know if this is the right platform to ask but when we publish in high volume, we see issue in getting Ack message for each publishing.

    Can we rely on Ack message to check the successful publishing? Please guide on this as well.

  • Hello @badal.vishal

    The "Denied by source" and "Symbol unknown" issues are permission issues. I suggest you contact your Refinitiv representative to help you verify your permission and the RIC names that allow you to contribute.

    Regarding the 3rd issue, do you connect to RCC via TRDS (ADS-ADH) or a direct connection?

    I suggest you contact the RCC support team to help verify the issue. You can submit a ticket to the RCC support team via my.refinitiv.com website and select the "Refinitiv Contribution Channel" product name.

    rcc-myrefinitiv.png

  • It is a direct connection, what I gather from different sources and this forum is - whatever postId I send, comes back as AckId for that RIC publishing. Am I right in this approach?