I have this code for posting contributions, which is working correctly to contribute updates to our items. (I have ommited the serviceName and RIC names)
// create an update message for our item
UpdateMsg nestedUpdateMsg = EmaFactory.createUpdateMsg()
.streamId(_postID)
.payload(fieldList);
// create a post message, and embed the update
PostMsg postMsg = EmaFactory.createPostMsg()
.postId(_postID++)
.serviceName("ServiceName")
.name("RICname")
.solicitAck(true)
.payload(nestedUpdateMsg)
.complete(true);
// send to realtime distribution system
_ommConsumer.submit(postMsg, _streamHandle);
I would like to send an entirely fresh set of data to overwrite what is currently in the item by using a RefreshMsg rather than an UpdateMsg. So I embedd a RefreshMsg into the PostMsg in order to send this new data as an image, as shown below:
// create a refresh message for our item
RefreshMsg nestedUpdateMsg = EmaFactory.createRefreshMsg();
nestedUpdateMsg.payload(fieldList).complete(true);
nestedUpdateMsg.state(OmmState.StreamState.OPEN, OmmState.DataState.OK);
// create a post message, and embed the refresh
PostMsg postMsg = EmaFactory.createPostMsg()
.postId(_postID++)
.serviceName("serviceName")
.name("RICname")
.solicitAck(true)
.payload(nestedUpdateMsg)
.complete(true);
// send to realtime distribution system
_ommConsumer.submit(postMsg, _streamHandle);
Now when posting this to RCC, I get the following NACK.
AckMsg
streamId="1"
domain="MarketPrice Domain"
ackId="0"
nackCode="DeniedBySource"
text="PostMsg received with no update as payload"
name="------------"
nameType="1"
serviceId="259"
AckMsgEnd
Am I going about doing this wrong? How can I post a fresh set of data to my item?