question

Upvotes
Accepted
3 0 0 4

EMA OMMConsumer - channel out of buffers

Hi,

after subscribing to a symbol list with around 1600 symbols I subscribe to those symbols individually.

I start receiving updates to individual symbols but after a short period of time (10s or so) i get below exception:

2017-03-22 08:02:10,948 [pool-3-thread-1] ERROR com.thomsonreuters.ema.access.OmmConsumerImpl - loggerMsg
    ClientName: EmaConsumer_1
    Severity: Error
    Text:    Call to rsslReactorDispatchLoop() failed. Internal sysError='0' Error text='channel out of buffers errorId=-4 errorText=channel out of buffers'. 
loggerMsgEnd

Can you please advise?

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apiOMMbuffer
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.

1 Answer

Upvotes
Accepted
9.6k 10 6 7

Hello @m87

This seems to be the same problem as

https://community.developers.refinitiv.com/questions/9781/ema-java-channel-out-of-buffers-errorid-4-error-wi.html

Please set GuaranteedOutputBuffers in EmaConfig.xml read by the application to increase buffer size used when writing data. For more detail of the configuration, please refer to EMA Configuration Guide(<EMA package>\Ema\Docs\EMAJ_ConfigGuide.pdf)

For example:

<Channel>
	    <Name value="Channel_1"/>
            <ChannelType value="ChannelType::RSSL_SOCKET"/>
            <GuaranteedOutputBuffers value="5000"/>
            ...  
</Channel>

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, I have the same error with the API version below. I don't have a EmaConfig.xml file. How can I increase the GuaranteedOutputBuffers in this version without using an EmaConfig.xml file?

<groupId>com.thomsonreuters.ema</groupId>

<artifactId>ema</artifactId>

<version>3.2.0.2</version>


This is the error I have:

ClientName: SingleItem

Severity: Error

Text: Internal error: rsslChannel.submit() failed in SingleItem.submit(PostMsg)RsslChannel 0

Error Id -3

Internal sysError 0

Error Location Watchlist.encodeIntoBufferAndQueue

Error Text channel out of buffers errorId=-4 errorText=channel out of buffers

EmaConfig.zip

I managed to resolve the issue by creating an EmaConfig.xml file and placing it in the root folder of my application. I found that is the default location the API looks in for the file. I set the GuaranteedOutputBuffers in the file and that fixed the issue. I have attached an example of the EmaConfig.xml file I created.

emaconfig.zip (1.0 KiB)