Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • Elektron /
  • EMA /
avatar image
Question by markus.fehn · Jun 06, 2019 at 02:11 AM · elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apijavaOMMrcc-apierror-message

Message "Attempt to get servieId while it is not set" on client registering and no progress after it

Hallo!

I am trying to run the TRCC Contribution example.

It goes until calling of consumer.registerClient, then i see message "Attempt to get servieId while it is not set" and no progress anymore. Debug all doesn't show any helpful information except of handshaking logs.

Channel config:

		<Channel>
			<Name value="Channel_1"/>
			<ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
			<Host value="chp02-emea1.thomsonreuters.com"/>
			<Port value="443"/>
		</Channel>

Code:

OmmConsumerClient appClient = new OmmConsumerClientImpl();

OmmConsumer consumer = EmaFactory.createOmmConsumer(EmaFactory.createOmmConsumerConfig().tunnelingKeyStoreFile(PATH).tunnelingKeyStorePasswd(PASSWORD));

ClassOfService cos = EmaFactory.createClassOfService()
	.authentication(EmaFactory.createCosAuthentication()
		.type(CosAuthentication.CosAuthenticationType.NOT_REQUIRED))
	.dataIntegrity(EmaFactory.createCosDataIntegrity()
		.type(CosDataIntegrity.CosDataIntegrityType.RELIABLE))
	.flowControl(EmaFactory.createCosFlowControl()
		.type(CosFlowControl.CosFlowControlType.BIDIRECTIONAL)
		.recvWindowSize(1200))
	.guarantee(EmaFactory.createCosGuarantee()
		.type(CosGuarantee.CosGuaranteeType.NONE));

System.out.println("Starting tunnel stream...");
TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest()
    .classOfService(cos)
	.domainType(EmaRdm.MMT_SYSTEM)
	.name("TUNNEL1")
	.serviceName("TEST_SERVICE");

long tunnelStreamHandle = consumer.registerClient(tsr, appClient);

Output without -Djavax.net.debug=all:

Contributing to TR Contributions Channel
Starting encrypted connection...
Jun 06, 2019 8:09:01 AM com.thomsonreuters.ema.access.ChannelCallbackClient reactorChannelEventCallback
INFORMATION: loggerMsg
    ClientName: ChannelCallbackClient
    Severity: Info
    Text:    Received ChannelUp event on channel Channel_1
	Instance Name Consumer_1_1
	Component Version eta3.1.1.L1.linux.rrg 64-bit Static
loggerMsgEnd

<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/192.168.178.24:52225 remote=chp02-emea1.thomsonreuters.com/159.220.25.3:443] -->
<!-- Thu Jun 06 08:09:02 CEST 2019 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REQUEST domainType="LOGIN" streamId="1" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x26 (HAS_NAME|HAS_NAME_TYPE|HAS_ATTRIB)" name="Stephan" nameType="1" attribContainerType="ELEMENT_LIST">
        <attrib>
            <elementList flags="0x08 (HAS_STANDARD_DATA)">
                <elementEntry name="ApplicationId" dataType="ASCII_STRING" data="256"/>
                <elementEntry name="ApplicationName" dataType="ASCII_STRING" data="ema"/>
                <elementEntry name="Position" dataType="ASCII_STRING" data="192.168.178.24/DESKTOP-UKCVPSB"/>
                <elementEntry name="Role" dataType="UINT" data="0"/>
            </elementList>
        </attrib>
    </key>
    <dataBody>
    </dataBody>
</REQUEST>

<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/192.168.178.24:52225 remote=chp02-emea1.thomsonreuters.com/159.220.25.3:443] -->
<!-- Thu Jun 06 08:09:02 CEST 2019 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REFRESH domainType="LOGIN" streamId="1" containerType="NO_DATA" flags="0x168 (HAS_MSG_KEY|SOLICITED|REFRESH_COMPLETE|CLEAR_CACHE)" groupId="0" State: Open/Ok/None - text: "" dataSize="0">
    <key flags="0x26 (HAS_NAME|HAS_NAME_TYPE|HAS_ATTRIB)" name="Stephan" nameType="1" attribContainerType="ELEMENT_LIST">
        <attrib>
            <elementList flags="0x08 (HAS_STANDARD_DATA)">
                <elementEntry name="ApplicationId" dataType="ASCII_STRING" data="256"/>
                <elementEntry name="ApplicationName" dataType="ASCII_STRING" data="ema"/>
                <elementEntry name="Position" dataType="ASCII_STRING" data="192.168.178.24/DESKTOP-UKCVPSB"/>
                <elementEntry name="SingleOpen" dataType="UINT" data="0"/>
                <elementEntry name="SupportOMMPost" dataType="UINT" data="1"/>
                <elementEntry name="SupportBatchRequests" dataType="UINT" data="5"/>
            </elementList>
        </attrib>
    </key>
    <dataBody>
    </dataBody>
</REFRESH>

<!-- Outgoing Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/192.168.178.24:52225 remote=chp02-emea1.thomsonreuters.com/159.220.25.3:443] -->
<!-- Thu Jun 06 08:09:02 CEST 2019 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REQUEST domainType="SOURCE" streamId="2" containerType="NO_DATA" flags="0x04 (STREAMING)" dataSize="0">
    <key flags="0x08 (HAS_FILTER)" filter="63"/>
    <dataBody>
    </dataBody>
</REQUEST>

<!-- Incoming Reactor message -->
<!-- java.nio.channels.SocketChannel[connected local=/192.168.178.24:52225 remote=chp02-emea1.thomsonreuters.com/159.220.25.3:443] -->
<!-- Thu Jun 06 08:09:02 CEST 2019 -->
<!-- rwfMajorVer="14" rwfMinorVer="1" -->
<REFRESH domainType="SOURCE" streamId="2" containerType="MAP" flags="0x168 (HAS_MSG_KEY|SOLICITED|REFRESH_COMPLETE|CLEAR_CACHE)" groupId="0" State: Open/Ok/None - text: "" dataSize="249">
    <key flags="0x08 (HAS_FILTER)" filter="63"/>
    <dataBody>
        <map flags="0x00" countHint="0" keyPrimitiveType="UINT" containerType="FILTER_LIST" >
            <mapEntry flags="0x00" action="ADD" key="10" >
                <filterList containerType="ELEMENT_LIST" countHint="0" flags="0x00">
                    <filterEntry id="1" action="SET" flags="0x00" containerType="ELEMENT_LIST">
                        <elementList flags="0x08 (HAS_STANDARD_DATA)">
                            <elementEntry name="Name" dataType="ASCII_STRING" data="DDS_TRCE"/>
                            <elementEntry name="Vendor" dataType="ASCII_STRING" data="Thomson Reuters RTTG Core Development"/>
                            <elementEntry name="Capabilities" dataType="ARRAY">
                                <array itemLength="0" primitiveType="UINT">
                                    <arrayEntry data="6"/>
                                    <arrayEntry data="127"/>
                                </array>
                            </elementEntry>
                            <elementEntry name="QoS" dataType="ARRAY">
                                <array itemLength="0" primitiveType="QOS">
                                    <arrayEntry Qos: Realtime/TickByTick/Static - timeInfo: 0 - rateInfo: 0/>
                                </array>
                            </elementEntry>
                        </elementList>
                    </filterEntry>
                    <filterEntry id="2" action="SET" flags="0x00" containerType="ELEMENT_LIST">
                        <elementList flags="0x08 (HAS_STANDARD_DATA)">
                            <elementEntry name="ServiceState" dataType="UINT" data="1"/>
                            <elementEntry name="AcceptingRequests" dataType="UINT" data="1"/>
                            <elementEntry name="Status" dataType="STATE" State: Open/Ok/None - text: ""/>
                        </elementList>
                    </filterEntry>
                    <filterEntry id="4" action="SET" flags="0x00" containerType="ELEMENT_LIST">
                        <elementList flags="0x08 (HAS_STANDARD_DATA)">
                            <elementEntry name="OpenWindow" dataType="UINT" data="6"/>
                        </elementList>
                    </filterEntry>
                    <filterEntry id="6" action="SET" flags="0x02 (HAS_CONTAINER_TYPE)" containerType="MAP">
                        <map flags="0x00" countHint="0" keyPrimitiveType="ASCII_STRING" containerType="ELEMENT_LIST" >
                            <mapEntry flags="0x00" action="ADD" key="DDS_TRCE" >
                                <elementList flags="0x08 (HAS_STANDARD_DATA)">
                                    <elementEntry name="Type" dataType="UINT" data="1"/>
                                    <elementEntry name="LinkState" dataType="UINT" data="1"/>
                                </elementList>
                            </mapEntry>
                        </map>
                    </filterEntry>
                </filterList>
            </mapEntry>
        </map>
    </dataBody>
</REFRESH>


Starting tunnel stream...
Registering client...
Attempt to get servieId while it is not set.

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

5 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by Jirapongse · Jun 06, 2019 at 02:50 AM

@markus.fehn

I think that the service name should be "DDS_TRCE", not "TEST_SERVICE".

TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest() .classOfService(cos) .domainType(EmaRdm.MMT_SYSTEM) .name("TUNNEL1") .serviceName("DDS_TRCE");
Comment

People who like this

0 Show 1 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
markus.fehn · Jun 06, 2019 at 02:56 PM 0
Share

Thanks for your suggestion, already tried many different service names and this one also :)

avatar image
REFINITIV
Answer by wasin.w · Jun 06, 2019 at 02:36 AM

Hello @markus.fehn

I assume that you are using TRCC example Contributor.java file. Could you please share your modification Contributor.java, EmaConfig.xml files? Please also remove your credentials detail from the code before you share it in this post.

Comment

People who like this

0 Show 3 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
markus.fehn · Jun 06, 2019 at 02:59 PM 0
Share
Thanks for support!

<?xml version="1.0" encoding="UTF-8"?>
<EmaConfig>
<ConsumerGroup>
	<DefaultConsumer value="Consumer_1"/>
	<ConsumerList>
		<Consumer>
			<Name value="Consumer_1"/>
			<Channel value="Channel_1"/>			
			<Logger value="Logger_2"/>
			<Dictionary value="Dictionary_2"/>
			<XmlTraceToStdout value="1"/>
		</Consumer>
	</ConsumerList>
</ConsumerGroup>
<ChannelGroup>
	<ChannelList>
		<Channel>
			<Name value="Channel_1"/>
			<ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
			<Host value="chp02-emea1.thomsonreuters.com"/>
			<Port value="443"/>
		</Channel>
	</ChannelList>
</ChannelGroup>
<DictionaryGroup>
	<DictionaryList>
		<Dictionary>
			<Name value="Dictionary_2"/>
			<DictionaryType value="DictionaryType::FileDictionary"/>
			<RdmFieldDictionaryFileName value="win32/etc/RDMFieldDictionary"/>
			<EnumTypeDefFileName value="win32/etc/enumtype.def"/>
		</Dictionary>
	</DictionaryList>
</DictionaryGroup>
</EmaConfig>
avatar image
markus.fehn · Jun 06, 2019 at 03:07 PM 0
Share
public class Contributor {
	public static void main(String[] args) {
		try {
			System.out.println("Contributing to TR Contributions Channel");
			OmmConsumerClientImpl appClient = new OmmConsumerClientImpl();
			System.out.println("Starting encrypted connection...");
			OmmConsumer consumer = EmaFactory.createOmmConsumer(EmaFactory.createOmmConsumerConfig()
					.tunnelingKeyStoreFile(KS).tunnelingKeyStorePasswd(PWD));

			ClassOfService cos = EmaFactory.createClassOfService().authentication(EmaFactory.createCosAuthentication().type(CosAuthentication.CosAuthenticationType.NOT_REQUIRED)).dataIntegrity(EmaFactory.createCosDataIntegrity().type(CosDataIntegrity.CosDataIntegrityType.RELIABLE)).flowControl(EmaFactory.createCosFlowControl().type(CosFlowControl.CosFlowControlType.BIDIRECTIONAL).recvWindowSize(1200)).guarantee(EmaFactory.createCosGuarantee().type(CosGuarantee.CosGuaranteeType.NONE));
			System.out.println("Starting tunnel stream...");
			TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest().classOfService(cos)
					.domainType(EmaRdm.MMT_SYSTEM).name("TUNNEL1").serviceName("TEST_SERVICE");
			System.out.println("Registering client...");
			long tunnelStreamHandle = consumer.registerClient(tsr, appClient);
			appClient.setOmmConsumer(consumer);
			appClient.setTunnelHandle(tunnelStreamHandle);
			System.out.println("Application client is configred!");
			Thread.sleep(60000);
		} catch (Exception excp) {
			System.out.println(excp.getMessage());
		}
	}


}

avatar image
markus.fehn · Jun 06, 2019 at 03:13 PM 0
Share

ommconsumerclientimpl.zip

ommconsumerclientimpl.zip (1.1 KiB)
avatar image
REFINITIV
Answer by wasin.w · Jun 07, 2019 at 12:47 AM

Hi @markus.fehn

Like @jirapongse.phuriphanvichai suggestion, based on the xml trace log, your TRCC service name is "DDS_TRCE" not "TEST_SERVICE". Did you try to use "DDS_TRCE" service name yet?



I can replicate the issue in my environment using your code, your configuration (the same

chp02-emea1.thomsonreuters.com server) with my TRCC account.

With your "TEST_SERVICE" code, I got the same "Attempt to get servieId while it is not set." error message.

TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest().classOfService(cos)
        .domainType(EmaRdm.MMT_SYSTEM).name("TUNNEL1").serviceName("TEST_SERVICE");

Result:

Starting tunnel stream...
Registering client...
Attempt to get servieId while it is not set.

But when I change the code to "DDS_TRCE" that match the actual service name, the post application works fine.

TunnelStreamRequest tsr = EmaFactory.createTunnelStreamRequest().classOfService(cos)
    .domainType(EmaRdm.MMT_SYSTEM).name("TUNNEL1").serviceName("DDS_TRCE");

Result:

----- Ack message ----
AckMsg
    streamId="5"
    domain="MarketPrice Domain"
    ackId="1"
AckMsgEnd

Continue posting...

Please see my detail in my log files. app-logs-issue.txt


config.png (74.0 KiB)
app-logs-issue.txt (6.6 KiB)
Comment
markus.fehn

People who like this

1 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
REFINITIV
Answer by wasin.w · Jun 07, 2019 at 12:48 AM

@markus.fehn

Please see my success log with serviceName("DDS_TRCE") code here app-logs-work.txt


app-logs-work.txt (29.1 KiB)
Comment
markus.fehn

People who like this

1 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

avatar image
Answer by markus.fehn · Jun 07, 2019 at 06:32 AM

Thanks a lot! Yes, it is working with DDS_TRCE now!

I remembering that tried it, but may be i am wrong!

Thanks again!

Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

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

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
10 People are following this question.

Related Questions

OmmConsumer and DACS onbehalf

(JAVA) Does using interestAfterRefresh(false) remove the need for deregistering items with Elektron?

Initial image with large number of instruments

Auto listener occupies 70-100% of CPU as we are waiting for the update(Consumer.dispatch)

NullPointerException when printing FieldList content from update message to screen

  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Electronic Trading
    • Generic FIX
    • Local Bank Node API
    • Trading API
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Intelligent Tagging
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open Calais
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • RDMS
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • Workspace SDK
    • Element Framework
    • Grid
  • World-Check Data File
  • 中文论坛
  • Explore
  • Tags
  • Questions
  • Badges