Override location to load dictionary from in ema java

We are attempting to identify origin of latency by subscribing to different layers of our infrastructure.
1. At the client ADS level - from our alias "trep-pcarl..." - this rmdstestclient and the app from which this code snippet is taken - runs ok.
2. When connected to the MFA, The command line run and the app throws this error. It is my understanding that the MFA may not be honoring the dictionary fetch request. How do I perform the "-dfile" override
of the location from which to load the dictionary into my app?
/aim/gfs/quad/cib-market-data-mgmt/trep-tools/${versionLinkName}/vendor/rhel6_x86_64/rmdstestclient -S MBPIPE -h
198.75.43.19 -p 14003 -of stdout -v -m -d 3 -X -a -dfile $RSSLCONSUMER_DICTIONARY -itemList "kyJPM_US_Equity"
echo $RSSLCONSUMER_DICTIONARY
/aim/gfs/quad/cib-market-data-mgmt/trep-dictionaries/prd-namr-carl-a/config/RDMFieldDictionary
Gets an expected result
Java code:
AppClient appClient = new AppClient();
OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();
String server = "198.75.43.19:14003";
String user = "xxx";
consumer = EmaFactory.createOmmConsumer(config.host(server).username(user));
ReqMsg reqMsg = EmaFactory.createReqMsg();
String source = "MBPIPE";
String symbol = "JPM";
consumer.registerClient(reqMsg.serviceName(source).name(symbol), appClient);
Thread.sleep(60000); // API calls onRefreshMsg(), onUpdateMsg() and onStatusMsg()
}
Thows this error
c 09:28:59.594 [reactor-http-epoll-2] com.jpmorgan.mds.snapcacheExerciser.trep.TrepConnection.connectToTrep(TrepConnection.java:79) INFO com.jpmorgan.m
ds.snapcacheExerciser.trep.TrepConnection - {"maximumSymbols":"5000","now":"2022-05-26T09:28:59.583","server":"198.75.43.19:14003","user":"xxx"}
c 09:29:00.225 [reactor-http-epoll-2] com.refinitiv.ema.access.ChannelCallbackClient.reactorChannelEventCallback(ChannelCallbackClient.java:336) INFO c
om.refinitiv.ema.access.OmmConsumerImpl - loggerMsg
ClientName: ChannelCallbackClient
Severity: Info
Text: Received ChannelUp event on channel Channel
Instance Name EmaConsumer_1
Component Version rfa8.2.0.linux.L1 64-bit
loggerMsgEnd
c 09:29:45.333 [reactor-http-epoll-2] com.refinitiv.ema.access.OmmConsumerImpl.loadDictionary(OmmConsumerImpl.java:523) ERROR com.refinitiv.ema.access.O
mmConsumerImpl - loggerMsg
ClientName: EmaConsumer_1
Severity: Error
Text: dictionary retrieval failed (timed out after waiting 45000 milliseconds) for 198.75.43.19:14003)
loggerMsgEnd
c 09:29:45.339 [reactor-http-epoll-2] com.refinitiv.ema.access.ChannelDictionary.processCallback(DictionaryCallbackClient.java:1170) WARN com.refinitiv
.ema.access.OmmConsumerImpl - loggerMsg
ClientName: C
ClientName: ChannelDictionary
Severity: Warning
Text: RDMDictionary stream was closed with status message
streamId 3
Reason State: Closed/Suspect/None - text: "Login stream was closed."
loggerMsgEnd
c 09:29:45.339 [reactor-http-epoll-2] com.refinitiv.ema.access.ChannelDictionary.processCallback(DictionaryCallbackClient.java:1170) WARN com.refinitiv
.ema.access.OmmConsumerImpl - loggerMsg
ClientName: ChannelDictionary
Severity: Warning
Text: RDMDictionary stream was closed with status message
streamId 4
Reason State: Closed/Suspect/None - text: "Login stream was closed."
loggerMsgEnd
c 09:29:45.353 [reactor-http-epoll-2] com.jpmorgan.moneta.boot.logging.StructuredLogger.info(StructuredLogger.java:37) INFO MONETA_RESPONSE - EVENT=[RE
SPONSE] STATUS=[500]
c 09:29:45.353 [reactor-http-epoll-2] com.jpmorgan.moneta.boot.logging.StructuredLogger.info(StructuredLogger.java:37) INFO MONETA_PERF - EVENT=[WEB] T
IME=[45825]
c 09:29:45.402 [reactor-http-epoll-2] org.springframework.core.log.CompositeLog.error(CompositeLog.java:122) ERROR org.springframework.boot.autoconfigur
e.web.reactive.error.AbstractErrorWebExceptionHandler - [7c13942e-1] 500 Server Error for HTTP GET "/trep/connect"
com.refinitiv.ema.access.OmmInvalidUsageExceptionImpl: dictionary retrieval failed (timed out after waiting 45000 milliseconds) for 198.75.43.19:14003)
at com.refinitiv.ema.access.OmmBaseImpl.ommIUExcept(OmmBaseImpl.java:1636) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ Handler com.jpmorgan.mds.snapcacheExerciser.controller.Router$$Lambda$447/1136768342@f492092 [DispatcherHandler]
|_ checkpoint ⇢ com.jpmorgan.moneta.boot.logging.reactive.RequestLoggingWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [D
|_ checkpoint ⇢ HTTP GET "/trep/connect" [ExceptionHandlingWebHandler]
Stack trace:
at com.refinitiv.ema.access.OmmBaseImpl.ommIUExcept(OmmBaseImpl.java:1636) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.refinitiv.ema.access.OmmConsumerImpl.loadDictionary(OmmConsumerImpl.java:525) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.refinitiv.ema.access.OmmConsumerImpl.handleAdminDomains(OmmConsumerImpl.java:618) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.refinitiv.ema.access.OmmBaseImpl.initialize(OmmBaseImpl.java:288) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.refinitiv.ema.access.OmmConsumerImpl.<init>(OmmConsumerImpl.java:47) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.refinitiv.ema.access.EmaFactory.createOmmConsumer(EmaFactory.java:237) ~[ema-3.6.5.0.jar!/:emaj3.6.5.L1.all.rrg]
at com.jpmorgan.mds.snapcacheExerciser.trep.TrepConnection.connectToTrep(TrepConnection.java:84) ~[classes!/:0.0.0-SNAPSHOT]
at com.jpmorgan.mds.snapcacheExerciser.trep.TrepConnection.lambda$connect$0(TrepConnection.java:60) ~[classes!/:0.0.0-SNAPSHOT]
at com.jpmorgan.mds.snapcacheExerciser.trep.TrepConnection$$Lambda$767/227364473.accept(Unknown Source) ~[?:?]
at reactor.core.publisher.FluxCreate.subscribe(FluxCreate.java:94) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) [reactor-core-3.4.9.jar!/:3.4.9]
at org.springframework.http.server.reactive.ChannelSendOperator.subscribe(ChannelSendOperator.java:77) [spring-web-5.3.9.jar!/:5.3.9]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) [reactor-core-3.4.9.jar!/:3.4.9]
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) [reactor-core-3
..
adExecutorMap.java:74) [netty-common-4.1.67.Final.jar!/:4.1.67.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.67.Final.jar!/:4.1.67.Final]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
...
Best Answer
-
Hi @Patrick Sweeney,
What is MFA?
I would recommend that you start by using the step-by step tutorials described here - https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-java/tutorials
All the configuration entries can be moved into the EMA config xml file. To load the data dictionary from local files, define the dictionary entry for your consumer and point that dictionary to load DD from local files:
<Consumer>
<Name value="Consumer_2"/>
<Channel value="Channel_2"/>
<Logger value="Logger_2"/>
<Dictionary value="Dictionary_2"/>
</Consumer>
...
<Dictionary>
<Name value="Dictionary_2"/>
<DictionaryType value="DictionaryType::FileDictionary"/>
<RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>
<EnumTypeDefFileName value="./enumtype.def"/>
</Dictionary>0
Answers
-
Thanks for that. In looking at other questions related to mine, people were pointed to "example 350", I will look at that as well.
MFA is a third-party provider of a implementation of the Refinitiv API's, i.e. a publisher. Since the interaction worked with rmdstestclient, the working assumption here is that since it is working correctly and there's an error/missing step in my code.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 37 Alpha
- 167 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 708 Datastream
- 1.5K DSS
- 633 Eikon COM
- 5.3K Eikon Data APIs
- 14 Electronic Trading
- 1 Generic FIX
- 7 Local Bank Node API
- 6 Trading API
- 3K Elektron
- 1.5K EMA
- 259 ETA
- 570 WebSocket API
- 40 FX Venues
- 16 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 25 Messenger Bot
- 4 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 284 Open PermID
- 47 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 24 RDMS
- 2.2K Refinitiv Data Platform
- 890 Refinitiv Data Platform Libraries
- 5 LSEG Due Diligence
- 1 LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 124 Open DACS
- 1.1K RFA
- 108 UPA
- 196 TREP Infrastructure
- 232 TRKD
- 921 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 105 Workspace SDK
- 11 Element Framework
- 5 Grid
- 19 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛