question

Upvotes
Accepted
1 1 3 7

Can't open request for whole directory with EMA C++ in custom application

Hello,

can somebody tell me how i can open request for MMT_DIRECTORY of all sources in custom application. If I try this, as described in RDM USAGE GUIDE, I got the following Message:

loggerMsg
TimeStamp: 12:47:51.941
ClientName: DirectoryCallbackClient
Severity: Error
Text: Internal error: failed to encode RsslRDMDirectoryMsg in DirectoryCa
llbackClient::processCallback()
RsslChannel 0x0000000000000000
Error Id -21
Internal sysError 0
Error Location rsslRDMDirectoryMsg.c:644
Error Text (ret = rsslEncodeElementEntry(pEncodeIter, &elementEntry, &pL
oad->openLimit)) == RSSL_RET_SUCCESS
loggerMsgEnd

If I request directory for a single source by setting a source name, it works, as expected.

Setting SEVERTITY to VERBOSE I see, that the hole dictionary was downloaded previous by the consumer.

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

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

Upvotes
Accepted
1 1 3 7

hi @Umer Nalla

we currently have 11 souces in our TREP and I use v1.1. As I told before the throuble must be in configuration of the ADS. With one of our six ADS it works fine.

Thank you

icon clock
10 |1500

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

Upvotes
9.7k 49 38 60

Hi @Reinhold.Blank,

Within the ESDK package contains the 300 Series example: 331_Directory_Streaming which demonstrates basic usage of the EMA Library for accessing and parsing of OMM Directory data.


ahs.png (71.4 KiB)
icon clock
10 |1500

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

Upvotes
1 1 3 7

Hi @nick.zincone.1,

I used this Sample for testing this pupose. I just remove service name as descriped in USAGE GUID to get a complete source directory with all services existing in our TREP.

But it doesn't work!

icon clock
10 |1500

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

Upvotes
9.7k 49 38 60

Hi @Reinhold.Blank,

I was able to remove the service name and received a complete source directory, i.e.

This was my output:

I assume you are doing the same. Can you confirm which version of the ESDK you are using and show your output window?

thanks.


ahs2.png (15.0 KiB)
ahs.png (97.3 KiB)
icon clock
10 |1500

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

Upvotes
20.3k 73 10 20

Hi @Reinhold.Blank

Can you confirm how many services there are on your TREP? And also what version of EMA you are using?

There was a bug in an older version of ESDK - I just tried the 331 example in v.1.1 and it failed with a large source directory.

When I tried the same example in ESDK v1.2 it worked with the same large source directory.

icon clock
10 |1500

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

Upvotes
1 1 3 7

Hi @nick.zincone.1,

I using EMA SDK 3.3.1. Below you see the result.

But I found out, where the throuble must be. We have 6 ADS. With one off them it works fine. On the other 5 the request fails. So I called our admins, that they check the configuration of this ADS.

Thank you for your assistance


1cdwy.png (17.0 KiB)
icon clock
10 |1500

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

Thanks @Reinhold.Blank.

Did you mean EMA 3.1.1? The latest version is 3.2.0 which was just recently released. It would be interesting if you get a chance to try the latest version to see if you get an internal error with those specific ADS processes.

Upvotes
38.1k 71 35 53

@Reinhold.Blank

Error Id -21 is RSSL_RET_BUFFER_TOO_SMALL. It looks like the allocated buffer is too small to encode the retrieved directory before sending to the application. I have tested with the ADS that provides a lot of services and found the same error in EMA 3.1.1..

loggerMsg
    TimeStamp: 11:41:04.700
    ClientName: DirectoryCallbackClient
    Severity: Error
    Text:    Internal error: failed to encode RsslRDMDirectoryMsg in DirectoryCallbackClie
nt::processCallback()
        RsslChannel 0x0000000000000000
        Error Id -21
        Internal sysError 0
        Error Location rsslRDMDirectoryMsg.c:375
        Error Text (ret = rsslEncodeElementEntry(pEncodeIter, &elementEntry, &pInfo->serviceName)) == RSSL_RET_SUCCESS
loggerMsgEnd

However, after testing with EMA 3.2.0.L1, it works fine.

EMA 3.2.0.L1 has been restructured and it uses CMake to generate build files. Please refer to ESDK_C_Migration_Guide.pdf in the package for more information.

icon clock
10 |1500

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

Click below to post an Idea Post Idea