question

Upvotes
Accepted
3 0 0 1

Plz Help! : Internal Error. Failed to allocated TransportBuffer in TunnelItem.submitSubItemMsg​

ClientName: TunnelItem   
Severity: Error    
Text:    Internal Error. Failed to allocated TransportBuffer in TunnelItem.submitSubItemMsg 
elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-api
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.

Upvotes
Accepted
21 0 0 1

Hello Khun @jirapongse.phuriphanvichai,

I'm Ohm from the same team with @lenny.cm.

How can we call the value of GuaranteedOutputBuffers in EmaConfig.xml to be used in tsr in our code?

This is our code when creating a tunnel connection

    val consumer = EmaFactory
      .createOmmConsumer(
        EmaFactory
          .createOmmConsumerConfig("/path/to/EmaConfig.xml")
          .tunnelingKeyStoreFile(emaConfig.privateKey)
          .tunnelingKeyStorePasswd(emaConfig.privateKeyPassword)
      )

    val tsr: TunnelStreamRequest = EmaFactory
      .createTunnelStreamRequest()
      .classOfService(
        EmaFactory.createClassOfService
          .authentication(EmaFactory.createCosAuthentication.`type`(CosAuthentication.CosAuthenticationType.NOT_REQUIRED))
          .dataIntegrity(EmaFactory.createCosDataIntegrity.`type`(CosDataIntegrity.CosDataIntegrityType.RELIABLE))
          .flowControl(EmaFactory.createCosFlowControl.`type`(CosFlowControl.CosFlowControlType.BIDIRECTIONAL).recvWindowSize(1200))
          .guarantee(EmaFactory.createCosGuarantee.`type`(CosGuarantee.CosGuaranteeType.NONE))
      )
      .domainType(EmaRdm.MMT_SYSTEM)
      .name("tunnel")
      .serviceName("DDS_TRCE")

    //tunnel stream handle (a.k.a. parentHandle)
    val tunnelStreamHandle = consumer.registerClient(tsr, this)


And this is our EmaConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<EmaConfig>
<!-- see EMAJ_ConfigGuide.pdf for details -->
<ConsumerGroup>
    <DefaultConsumer value="Consumer_TRCC"/>
    <ConsumerList>
        <Consumer>
            <Name value="TRCC_CONSUMER"/>
            <Channel value="Channel_TRCC"/>
            <Dictionary value="Dictionary_TRCC"/>
            <XmlTraceToStdout value="0" />
        </Consumer>
    </ConsumerList>
</ConsumerGroup>
<ChannelGroup>
    <ChannelList>
        <Channel>
            <Name value="Channel_TRCC"/>
            <ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
            <TcpNodelay value="1"/>
            <GuaranteedOutputBuffers value="5000"/>
            <ConnectionPingTimeout value="30000"/>
            <Host value="contrib01-apac1.platform.refinitiv.biz"/>
            <Port value="443"/>
        </Channel>
    </ChannelList>
</ChannelGroup>
<DictionaryGroup>
    <DictionaryList>
        <Dictionary>
            <Name value="Dictionary_TRCC"/>
            <DictionaryType value="DictionaryType::FileDictionary"/>
            <RdmFieldDictionaryFileName value="/path/to/RDMFieldDictionary"/>
            <EnumTypeDefFileName value="/path/to/enumtype.def"/>
        </Dictionary>
    </DictionaryList>
</DictionaryGroup>
</EmaConfig>


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.

@ohm.cm

As I know, OmmConsumerConfig is designed for a client to set config info, not for reading. You can't use OmmConsumerConfig to access the value.

You need to develop a function to parse that EmaConfig.xml file and read the GuaranteedOutputBuffers and then set it to tsr.guaranteedOutputBuffers(int outBuffers);

Upvotes
3 0 0 1

Hello Refinitiv Team, please kindly help with these errors we got the errors to message multiple times, our application using EMA java

Is this something about the limitation with the message size and rate? would be great if you could shed the light on this issue for us, many thanks.


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.

Upvote
78.8k 250 52 74

@lenny.cm

It looks similar to this question.

I think the answer can also apply to EMA Java.


1614226034795.png (9.7 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.

Thank you khun Jiraponse for the quick reply, I will share this with our Dev team

Upvotes
3 0 0 1

FYI : not sure this would related or not, in my EMA config file the current setup

              <TcpNodelay value="1"/>
                        <GuaranteedOutputBuffers value="5000"/>
                        <ConnectionPingTimeout value="30000"/>


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.

If you are using TunnelStreamRequest, you need to set it in the TunnelStreamRequest.

Upvotes
24.6k 54 17 14

Hello @ohm.cm @lenny.cm

I noticed that your <DefaultConsumer value="Consumer_TRCC"/> and the consumer name configurations are not matching.

I have tried your EmaConfig.xml file with the Contribution example (from this article) and the following code and it works fine.

OmmConsumer consumer = EmaFactory.createOmmConsumer(
        EmaFactory.createOmmConsumerConfig("C:\drive_d\Project\APIs\EMA_Code\EMA_Java_200_Maven\src\main\java\com\refinitiv\ema\examples\training\consumer\series300\ex342_MP_RCC\\EmaConfigAHS.xml")
        .consumerName("TRCC_CONSUMER").tunnelingKeyStoreFile(keyStoreFileName)
        .tunnelingKeyStorePasswd(keyStorePassword)
);

ema-config.png (21.3 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.

Upvotes
21 0 0 1

Kob khun krub,


This is very helpful. We'll let our dev team know this info.

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.