question

Upvotes
Accepted
3 5 6 10

Giving specific location to the emaconfig.xml file

Is there way to give specific location to the emaconfig.xml file instead of using the default location (where the binary is available)

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.

Upvotes
Accepted
9.6k 10 7 7

In EMA Java, it's hard code to read EmaConfig.xml where the EMA application is run from. The source code is loadFile() of ConfigReader.java in <Elektron SDK java package>\Ema\Src\main\java\impl\com\thomsonreuters\ema\access as shown below:

You can modify the source code above to read EmaConfig.xml which is not in application run directory. For example to read EmaConfig.xml in D:\workspace:

protected void loadFile() 
{
	_configFileName = "EmaConfig.xml";
        _configFileLocation = "D:\\workspace\\";
        errorTracker().append( "reading configuration file [" )
		.append( _configFileName )
		.append( "] from [" ).append( _configFileLocation ).append		("]")
		.create(Severity.INFO);
	XMLConfiguration config = null;
	try 
	{
	  config = new XMLConfiguration(_configFileLocation+_configFileName);
	} 
	catch (ConfigurationException e) 
	{
	  errorTracker().append(e.getMessage()).create(Severity.ERROR);
	  return;
	}

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

Is this similar in c++.

We have to modify the source code and build it to give specific path other than binary location

@thimalk

Yes, this is similar in EMA C++. You can find the related source code in the EmaConfigImpl::readXMLconfiguration() function of the EmaConfigImpl.cpp file.

Upvotes
25.3k 87 12 25

Hi @thimalk

For the C++ version, you may also be interested in "example 421__MarketPrice__ProgrammaticConfig"

This shows how you can populate the OmmConsumerConfig programmatically - rather than relying on EmaConfig.xml

As you know if EmaConfig.xml is missing then EMA defaults values - as described in the EMACPP ConfigGuide

You could then override the defaults programatically using your config values read from another location.

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
18 0 0 1

The next ESDK release - ESDK release 1.1.1 - will include a feature that allows application developers to supply an optional path to a configuration file. The path may be a directory, in which case the library will load a file named EmaConfig.xml from that directory, or a filename.

In Java, one will supply this path as an argument to createOmmConsumerConfig; see the example111__MarketPrice__UserSpecifiedFileConfig example for more details. This example is new for this release.

In C++, one will supply this path as an argument to the OmmConsumerConfig constructor; see the 111__MarketPrice__UserSpecifiedFileConfig example for more details. This example is new for this release.

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.

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.