question

Upvotes
Accepted
1 0 1 4

How to set OpenLimit in EMAConfig for IProvider

I need to pass OpenLimit by IProvider to TREP.

I found EMACPP_RDMUserGuide.pdf that OpenLimit belongs to Source Directory Load Filter Entry. But from EMACPP_ConfigGuide.pdf: "The EMA supports only the RDM entries InfoFilter and StateFilter.". The required LoadFilter is not mentioned there.

Is there a way how can I pass OpenLimit to TREP with EMA?

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-api
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.

@dmitry.vasilenko
Thank you for your participation in the forum. Are any of the replies below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply that best answers your question. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.
Thanks,
-AHS

Alex, unfortunately my last question was left without the answer.

<AHS>

Extend triage.

<AHS>

I have checked GitHub issue #119, the issue remains open. Extend triage.

<AHS>

The GitHub issue #119 is still opened, extend triage for a month.

<AHS>

The GitHub issue #119 is still opened, extend triage for a month.

Show more comments
Upvotes
Accepted
78.8k 250 52 74

@dmitry.vasilenko

The GitHub issue #119 has been closed. The issue has been fixed in RTSDK C++/C 2.0.1.L1.


--------------------------------------------
RTSDK C++/C Release 2.0.1.L1 (Mar 4, 2021)
---------------------------------------------


EMA C++ 3.6.1.L1 Issues Resolved
--------------------------------
...
- [RTSDK-4402] - Support additional Source Directory attributes via EmaConfig [GitHub # 119]


1626686463148.png


1626686463148.png (60.5 KiB)
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
7.6k 15 6 9

@dmitry.vasilenko

From the EMA Configuration Guide, it looks like currently, EMA XML configuration file supports only the RDM entries InfoFilter and StateFilter. If we set LoadFilter to the XML file, EMA will detect the config as unsupported configuration.

As far as I understand, If you want to publish directory with the LoadFilter containing OpenLimit element, you have to add EMA codes to handle Directory Request by setting adminControlDirectory to UserControlEnum like below codes from Example 331__Directory__UserControl which locates under a folder “<EMA Install Folder>\Cpp-C\Ema\Examples\Training\IProvider\300_Series\”

OmmProvider provider( OmmIProviderConfig().adminControlDirectory( OmmIProviderConfig::UserControlEnum ), appClient );

And then add codes to publish LoadFilter with OpenLimit when the application receive onReqMsg callback like below sample codes from IProvider.cpp.

void AppClient::onReqMsg( const ReqMsg& reqMsg, const OmmProviderEvent& event )
{
	switch ( reqMsg.getDomainType() )
	{
	...
	case MMT_DIRECTORY:
		processDirectoryRequest( reqMsg, event );
		break;
	...
}
void AppClient::processDirectoryRequest(const ReqMsg&, const OmmProviderEvent& event)
{
	event.getProvider().submit(RefreshMsg().domainType(MMT_DIRECTORY).filter(SERVICE_INFO_FILTER | SERVICE_STATE_FILTER | SERVICE_LOAD_FILTER).
		payload(Map().
		addKeyUInt(2, MapEntry::AddEnum, FilterList().
		add(SERVICE_INFO_ID, FilterEntry::SetEnum, ElementList().
			addAscii(ENAME_NAME, "DIRECT_FEED").
			addArray(ENAME_CAPABILITIES, OmmArray().
				addUInt(MMT_MARKET_PRICE).
				addUInt(MMT_MARKET_BY_PRICE).
				complete()).
			addArray(ENAME_DICTIONARYS_USED, OmmArray().
						addAscii("RWFFld").
						addAscii("RWFEnum").
						complete()).
				complete()).
		add(SERVICE_STATE_ID, FilterEntry::SetEnum, ElementList().
			addUInt(ENAME_SVC_STATE, SERVICE_UP).
			complete()).
		add(SERVICE_LOAD_ID, FilterEntry::SetEnum, ElementList().
			addUInt(ENAME_OPEN_LIMIT, 2000).
		        complete()).
		complete()).
	complete()).complete().solicited(true), event.getHandle());
}
					
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.

Thanks for your answer. But does it mean I have to pass all the config this way now. Or is it still possible to use EmaConfig.xml but set only LoadFilter this way from code?

You can still use EmaConfig.xml but for directory message, you have to handle the directory request in your codes and publish the whole directory message using the codes instead.

The Directory config section contains all the services list with all theirs configuration. And now all this should be implemented in code, am I right?

Show more comments
Upvotes
1 0 1 4

>>>>>>>>>>>>

Umer Nalla

dmitry.vasilenko May 31 at 7:07 PM

0 Like Share

Hi @dmitry.vasilenko

I will refer your questions onto the Product manager and get back to you - once I hear from him.

------------------------------

Guys, any update on this?

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.

Hi @dmitry.vasilenko

I did chase the PM - I will ping again.

@Umer Nalla

Do we have any update from the product manager?

Hi, never did get an answer from PM - especially with his role change etc.

I will open a GitHub request.

Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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