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.