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?