Using RFA Java.
Here is an except from the code;
----
ConsumerEncoder requestEncoder = new ConsumerEncoder();
OMMEncoder _postOMMEncoder = requestEncoder.pool.acquireEncoder();
OMMMsg _postOMMMsg = requestEncoder.pool.acquireMsg();
----
_postOMMMsg.setMsgModelType(RDMMsgTypes.MARKET_PRICE);
_postOMMMsg.setMsgType(OMMMsg.MsgType.POST);
_postOMMMsg.setId(ID_COUNTER.incrementAndGet());
_postOMMMsg.setSeqNum(SEQ_NUMBER_COUNTER.incrementAndGet());
_postOMMMsg.setIndicationFlags(OMMMsg.Indication.POST_INIT | OMMMsg.Indication.POST_COMPLETE | OMMMsg.Indication.NEED_ACK);
_postOMMMsg.setAttribInfo(module, ric, RDMInstrument.NameType.RIC);
_postOMMEncoder.initialize(OMMTypes.MSG, 10000);
_postOMMEncoder.encodeMsgInit(_postOMMMsg, OMMTypes.NO_DATA, OMMTypes.FIELD_LIST);
----
Here we populate fields and value, for example
FidDef fiddef = dictionary.getFidDef("FIELD");
_postOMMEncoder.encodeFieldEntryInit(fid, fiddef.getOMMType());
_postOMMEncoder.encodeString("VALUE", fiddef.getOMMType());
----
Handle handle = getRDMLoginHandle();
OMMMsg sendMessage = (OMMMsg) _postOMMEncoder.getEncodedObject();
int submitStatus = submitMsg(handle, sendMessage, null);
requestEncoder.pool.releaseMsg(_postOMMMsg);
requestEncoder.pool.releaseEncoder(_postOMMEncoder);
----
Message Sent:
Msg Type: MsgType.POST
Msg Model Type: MARKET_PRICE
Indication Flags: POST_INIT | POST_COMPLETE | NEED_ACK
Hint Flags: HAS_ATTRIB_INFO | HAS_SEQ_NUM | HAS_ID
SeqNum: 1
Id: 1
Publisher Address: 0x0
Publisher Id: 0
AttribInfo
ServiceName: TRCC
Name: FABTEST123=FABU
NameType: 1 (RIC)
Payload: 8 bytes
FIELD_LIST
FIELD_ENTRY 393/PRIMACT_1: 0.85
Error Received;
State: UNSPECIFIED, NO_CHANGE, NACK_DENIED_BY_SRC, "PostMsg has not have container type of RSSL_DT_MSG"