Does EMA C++ support Posting? Is there a sample app I can reference?
Does EMA C++ support Posting? Is there a sample app I can reference?
There are two examples in the 300 series training programme,
I am asking me the same question.
I build a test consumer based on the training examples
Examples/Training/Consumer/300_Series/341__MarketPrice__OffStreamPost
Examples/Training/Consumer/300_Series/340__MarketPrice__OnStreamPost
and a test provider.
On consumer side the post requests are answered after some time with
an AckMsg saying "Acknowledgement timed out." This applies to "offstream post"
as well as to "onstream post".
(The wait period can be configured with element "PostAckTimeout" within the
consumer element in the EmaConfig.xml, e.g. <PostAckTimeout value="2000"/>.)
Obviously these messages are generated on consumer side, because no response from
the provider is received.
Therefore I stepped with a debugger through the provider program and found out,
that in fact the handling of post messages on provider side is not implemented.
The method "onPostMsg( const PostMsg& postMsg, const OmmProviderEvent& event )"
in OmmProviderClient is never called.
In module Access/Impl/MarketItemHandler.cpp you can find at line 384 this block:
case RSSL_MC_POST:
{
if (OmmLoggerClient::VerboseEnum >= ommServerBaseImpl->getActiveConfig().loggerConfig.minLoggerSeverity)
{
EmaString temp("Received post message.");
temp.append(CR).append("Stream Id ").append(pRsslMsg->msgBase.streamId)
.append(CR).append("Client handle ").append(clientSession->getClientHandle())
.append(CR).append("Instance Name ").append(ommServerBaseImpl->getInstanceName())
.append(CR).append("Post message is not support for this release.").append(ommServerBaseImpl->getInstanceName());
ommServerBaseImpl->getOmmLoggerClient().log(_clientName, OmmLoggerClient::VerboseEnum, temp);
}
break;
}
Conclusion: Post ist not implemented in EMA ...
I found no hints in the documents for this behaviour.