question

Upvotes
Accepted
1 0 1 4

Message encoding error in IProvider

I’m developing Interactive Publisher using Elektron SDK v1.2.0.

And I have multiple Services in EmaConfig.xml which are used to publish data and when the number of services is 5 or less everything works fine. All services on the list are identical except the Name and ServiceId fields which differ.

But adding 6th Service to the list I’ve got the following error in emaLog:

loggerMsg
    TimeStamp: 09:39:47.658
    ClientName: DirectoryHandler
    Severity: Error
    Text:    Internal error: failed to encode RsslRDMDirectoryMsg in DirectoryHandler::handleDirectoryRequest()
        Client handle 775567904
        Instance Name Provider_1_1Error Id -21
        Internal sysError 0
        Error Location /local/jenkins/workspace/ESDKCore/OS/RH6-64/esdk/Cpp-C/Eta/Impl/RDM/rsslRDMDirectoryMsg.c:445
        Error Text (ret = rsslEncodeArrayEntry(pEncodeIter, 0, &pInfo->dictionariesUsedList[j])) == RSSL_RET_SUCCESS
loggerMsgEnd

Is there a limit for the number of services or what can I do to add more than 5?

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-apiService
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.

@dmitry.vasilenko
Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query? If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.
Thanks,
-AHS

@dmitry.vasilenko

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the reply. This will guide all community members who have a similar question. Otherwise please post again offering further insight into your question.

Thanks,
-AHS

@dmitry.vasilenko

Hi,

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

AHS

Confirm, increasing the buffer size in the DirectoryHandler::initialize fixes the issue. Thank you!

1 Answer

· Write an Answer
Upvote
Accepted
79.2k 251 52 74

@dmitry.vasilenko

The error ID (-21) is "buffer too small". Therefore, it means that the buffer reserved by EMA is too small to encode the source directory. EMA is open source so you directly increase the buffer size in the DirectoryHandler::initialize(...) method (Cpp-C\Ema\Src\Access\Impl\DirectoryHandler.cpp), and then rebuild the EMA package. Otherwise, you can contact the RDC or development team to fix this issue by:


premium.png (27.8 KiB)
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.