state="Open / Suspect / None / 'channel down.' when send Batch request

Hello.
I'm trying to register 4,000 items with batch request.
But It failed with below message, event I deleted all consuming logics at out Application, it still happen.
I'm guessing there might be problem with EmaConfig.xml,, so I attached my config here.
<Consumer>
<Name value="LocalConsumer"/>
<!-- channel is optional: defaulted to "RSSL_SOCKET + localhost + 14002" -->
<Channel value="ChannelReplay1"/>
<!-- logger is optional: defaulted to "Stdout + Success" -->
<Logger value="LoggerFile"/>
<ItemCountHint value="20000"/>
<!--<ServiceCountHint value="655"/>-->
<ObeyOpenWindow value="0"/>
<PostAckTimeout value="10000"/>
<RequestTimeout value="10000"/>
<MaxOutstandingPosts value="90000"/>
<DispatchTimeoutApiThread value="90"/>
<MaxDispatchCountApiThread value="400"/>
<MaxDispatchCountUserThread value="5"/>
<!--ReactorEventFdPort value="75000" -->
<PipePort value="7001"/>
<ReconnectAttemptLimit value="10"/>
<ReconnectMinDelay value="10000" />
<ReconnectMaxDelay value="15000" />
<XmlTraceFileName value="EmaMyTrace"/>
<XmlTraceMaxFileSize value="66666666" />
<XmlTraceToFile value="0" />
<XmlTraceToStdout value="0" />
<XmlTraceToMultipleFiles value="1" />
<XmlTraceWrite value="1"/>
<XmlTraceRead value="1"/>
<XmlTracePing value="1"/>
<XmlTraceHex value="1"/>
<MsgKeyInUpdates value="1"/>
<!-- dictionary is optional: defaulted to "ChannelDictionary" -->
<Dictionary value="DictionaryFile"/>
</Consumer>
<Channel>
<Name value="ChannelReplay1"/>
<!-- channelType possible values are: -->
<!-- ChannelType::RSSL_SOCKET - TCP IP connection type (supported in EAP) -->
<!-- ChannelType::RSSL_HTTP - Http tunnel connection type (not yet supported in EAP) -->
<!-- ChannelType::RSSL_ENCRYPTED - Https tunnel connection type (not yet supported in EAP) -->
<!-- ChannelType::RSSL_RELIABLE_MCAST - MCAST connection type (not yet supported in EAP) -->
<ChannelType value="ChannelType::RSSL_SOCKET"/>
<!-- compressionType is optional: defaulted to None -->
<!-- possible values: None, ZLib, LZ4 -->
<CompressionType value="CompressionType::None"/>
<GuaranteedOutputBuffers value="100000"/>
<NumInputBuffers value = "7000" />
<SysRecvBufSize value= "569823" />
<SysSendBufSize value= "569823" />
<HighWaterMark value= "3000" />
<CompressionThreshold value= "2048" />
<!-- connectionPingTimeout is optional: defaulted to 30000 -->
<ConnectionPingTimeout value="30000"/>
<!-- tcpNodelay is optional: defaulted to 1 -->
<!-- possible values: 1 (tcp_nodelay option set on the channel), 0 (tcp_nodelay not set on the channel) -->
<TcpNodelay value="1"/>
<Host value="10.121.56.11"/>
<Port value="14002"/>
<DirectWrite value= "1" />
</Channel>
Best Answer
-
Thanks for providing the additional log output.
However, there is no problem indicated in the above extract.
- The high water mark message just confirms that the HighWaterMark value that you specified in your config has been successfully set.
- The following 3 Batch Stream Closed status messages are actually normal and expected. When you make a successful batch request, each item in your batch is allocated an individual stream and the originating Batch stream is closed off as it is no longer required - note the incrementing StreamIDs of each subsequent batch request...
The service name hEDD indicates a direct feed - so there could be some configured limitation / restriction on the Direct feed device. OR it could be that due to the high volatility nature of the instrument, your application may be struggling to cope with the update rate for your 12,000 items - causing the disconnect from the server. If this is the case, you may need to split your processing across multiple OmmConsumer instances - using the Horizontal Scaling technique as demonstrated in example 410_MarketPrice_HorizontalScaling. You can off course combine Batch Processing with Horizontal Scaling.
You can also open a support ticket in order to investigate your issue in more detail - which is outside the scope of this forum.
0
Answers
-
- Can you confirm which version of Elektron SDK you are using? I ask because I can 'EAP' references in the config extract your provided above - which suggests an non-official release?.
- I notice very large values for the various Buffer related parameters - were you advised elsewhere to set these values? For much larger watchlists (e.g. 40k items) we usually recommend 50000 for GuaranteedOutputBuffers, SysRecvBufSize and SysSendBufSize.
- Just for reference, if you try less than 4000 items does it succeed?
- Do you successfully receive some RefreshMsg / UpdateMsg etc before you get the ChannelDown?
- Is there any other additional log output you can provide - e.g. item does the Channel Down refer to - the Login stream or Data Items?
0 -
Hi @umer.nalla
1. I'm using Java EMA SDK version 3.2.2.0, I used the excerpt from example.
2. No, I just ended up that value as increasing up until it holds.
3. Yes, it has succeed with small item set.
4~5. I received below messages.
And actual item size was 12,000 including dynamic and delayed RIC.
2019-05-27 12:47:33.565 INFO 19179 --- [ main] c.t.ema.access.OmmConsumerImpl : loggerMsg
ClientName: ChannelCallbackClient
Severity: Info
Text: Received ChannelUp event on channel ChannelReplay1
Instance Name LocalConsumer_1
Component Version rfa7.6.0.L1.win.rrg 32-bit
loggerMsgEnd
2019-05-27 12:47:33.566 INFO 19179 --- [ main] c.t.ema.access.OmmConsumerImpl : loggerMsg
ClientName: ChannelCallbackClient
Severity: Info
Text: high water mark set on channel ChannelReplay1
Instance Name LocalConsumer_1
loggerMsgEnd
2019-05-27 12:47:36.589 ERROR 19179 --- [pool-5-thread-1] c.l.s.consumer.price.AppClientFlux$1 : EMM Abnormal Status Msg received. StatusMsg
streamId="5"
domain="MarketPrice Domain"
state="Closed / Ok / None / 'Stream closed for batch'"
serviceName="hEDD"
StatusMsgEnd
2019-05-27 12:47:36.590 ERROR 19179 --- [pool-5-thread-1] c.l.s.consumer.price.AppClientFlux$1 : EMM Abnormal Status Msg received. StatusMsg
streamId="3796"
domain="MarketPrice Domain"
state="Closed / Ok / None / 'Stream closed for batch'"
serviceName="hEDD"
StatusMsgEnd
2019-05-27 12:47:36.590 ERROR 19179 --- [pool-5-thread-1] c.l.s.consumer.price.AppClientFlux$1 : EMM Abnormal Status Msg received. StatusMsg
streamId="7587"
domain="MarketPrice Domain"
state="Closed / Ok / None / 'Stream closed for batch'"
serviceName="hEDD"
StatusMsgEnd0
Categories
- All Categories
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 33 Data Model Discovery
- 682 Datastream
- 1.4K DSS
- 613 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 248 ETA
- 552 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.8K Refinitiv Data Platform
- 622 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- 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
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 191 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 84 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛