question

Upvotes
Accepted
488 15 14 28

How to Post with EMA C++

Does EMA C++ support Posting? Is there a sample app I can reference?

elektronrefinitiv-realtimeelektron-sdktreprrtema-apielektron-message-apic++posting
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
1.2k 23 28 43

There are two examples in the 300 series training programme,

340__MarketPrice__OnStreamPost

341__MarketPrice__OffStreamPost

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1 1 1 5

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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.