Hi,
Im trying to write java program using EMA API to create RIC record on ATS. I have been following all the steps as documented here :
Implementing Refinitiv Real-Time APIs applications to work with ATS - Part 1 | Refinitiv Developers
But still got ack that says [900]: Service Denied. Referring to refinitiv documentation, it says "the record is incorrect or does not exist".
Here is the post message sent to ATS:
<!-- Outgoing Reactor message --> <!-- java.nio.channels.SocketChannel[connected local=/10.21.248.34:64121 remote=/10.18.31.20:14002] --> <!-- Wed May 18 10:53:59 ICT 2022 --> <!-- rwfMajorVer="14" rwfMinorVer="1" --> <POST domainType="MARKET_PRICE" streamId="1" containerType="MSG" flags="0x66 (HAS_POST_ID|HAS_MSG_KEY|POST_COMPLETE|ACK)" postId="1" postUserId="24820" postUserAddr="10.21.248.34" dataSize="42"> <key flags="0x03 (HAS_SERVICE_ID|HAS_NAME)" serviceId="262" name="ATS_INSERT_S"/> <dataBody> <REFRESH domainType="MARKET_PRICE" streamId="0" containerType="FIELD_LIST" flags="0x00" groupId="0" State: Open/Ok/None - text: "" dataSize="26"> <dataBody> <fieldList flags="0x08 (HAS_STANDARD_DATA)"> <fieldEntry fieldId="-1" data="4D59 5F4E 4557 5F52 4943"/> <fieldEntry fieldId="22" data="0F0C"/> <fieldEntry fieldId="25" data="0F0F"/> </fieldList> </dataBody> </REFRESH> </dataBody> </POST>
And here is the ack :
<!-- Incoming Reactor message --> <!-- java.nio.channels.SocketChannel[connected local=/10.21.248.34:64121 remote=/10.18.31.20:14002] --> <!-- Wed May 18 10:53:59 ICT 2022 --> <!-- rwfMajorVer="14" rwfMinorVer="1" --> <ACK domainType="MARKET_PRICE" streamId="1" containerType="NO_DATA" flags="0x32 (HAS_TEXT|HAS_MSG_KEY|HAS_NAK_CODE)" ackId="1" nakCode="132" text="[900]: Service Denied " dataSize="0"> <key flags="0x07 (HAS_SERVICE_ID|HAS_NAME|HAS_NAME_TYPE)" serviceId="262" name="ATS_INSERT_S" nameType="1"/> <dataBody> </dataBody> </ACK> 2022-05-18 10:53:59.323 INFO 24820 --- [pool-2-thread-1] c.t.e.ommconsumer.SubmissionAppClient : AckMsg streamId="1" domain="MarketPrice Domain" ackId="1" nackCode="Unknown NackCode value 132" text="[900]: Service Denied" name="ATS_INSERT_S" nameType="1" serviceId="262" AckMsgEnd
I have set ENABLE_INSERT_CONTRIB to TRUE in ats.params. I have also add X_RIC_NAME in both my local RDMFieldDictionary and ATS server RDMFieldDictionary (/opt/thomsonreuters/globalConfig/RDMFieldDictionary) as specified in rdms.cnf.
Anyone has idea why it still fails ?
And a few questions though. Why RDMFieldDictionary by default doesn't come with negative fid such as X_RIC_NAME so that we have to add it manually ?
is ENABLE_INSERT_CONTRIB the only thing i have to set in ATS server ? do i have to set any permission or some other things ?
What is NACK code 132 and how it could be unknown.
Thank you for your help.