Error using EMA with TREP

Hi,
I'm migrating an application using JFCS Api with MLIP to EMA Api with TRCC to publish data.
I'm connecting over TREP.


I used the Java exemple Consumer - 341 and I get this error:
F62: Tunnel stream aggregation does not support item requests.

Any info about the error? Or better exemple for my use case, I need to send text to quote page for FIDs ROW80_2 to 25 (316 to 339)?
Thanks
Stephane

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hello @Stephane Rossi

    Could you please share your Post message snippet code, full Nack message text, and enable the XML trace message? You can see how to enable the EMA XML trace in "EMA Java Logging" section of the EMA Configuration Overview article.

    Please note that the RCC Off-Stream Post message must have the following conditions:

    • The Ack attribute must be true
    • The message must contain the PostID attribute and value
    • The Key information includes Name and Service attributes that refer to the contribution RIC name and RCC contribution service name
    • The Message payload must be an Update message type
    • The Message payload must contain the same Key information as the Post message

    My modification code is the following:

    FieldList nestedFieldList = EmaFactory.createFieldList();
    nestedFieldList.add(EmaFactory.createFieldEntry().real(22, 34, OmmReal.MagnitudeType.EXPONENT_POS_1));
    nestedFieldList.add(EmaFactory.createFieldEntry().real(25, 35, OmmReal.MagnitudeType.EXPONENT_POS_1));

    // create an update message for our item
    UpdateMsg nestedUpdateMsg = EmaFactory.createUpdateMsg()
        .streamId(postId)
        .name("<CONTRIBUTION_RIC>" )
        .payload(nestedFieldList);

    PostMsg postMsg = EmaFactory.createPostMsg();

    ((OmmConsumer)event.closure()).submit( postMsg.postId( postId++ ).serviceName( "TRCC" )
        .name( "<CONTRIBUTION_RIC>" ).solicitAck( true ).complete(true)
        .payload(nestedUpdateMsg), event.handle() );

Answers

  • Hello @Stephane Rossi,

    You may find useful to review the article

    Contributing your data to Refinitiv,

    toward the bottom of it, please see the links to tutorials, Java and C++,, for example

    EMA Consumer - Posting data to Contribution Channel,

    the tutorial comes with the downloadable code example, which should be useful to get started on the requirement.

    Hope this helps.

  • Hello @Stephane Rossi

    Please be informed that the RCC service supports data contribution only, not data subscription.

    The EMA 341 example (ex341_MP_OffStreamPost) sends the OMM off-stream post message and also subscribes streaming data from Refinitiv Real-Time for the same service by default. The example aims for contributing data to Refinitiv Real-Time infrastructure internal cache or the ATS server scenarios which contribution service also supports data subscription.

    You need to use the RCC example "rcc-contribution-example" which mentioned by my colleague @zoya.farberov above.

  • Hi wasin.waeosri
    Thanks but your exemple it is without TREP. I have TREP on my case then the login is normally different and no need a encrypted tunnel.
    The team from Refinitiv who installed the new TREP/TRCC don't give me RCC login information, only TREP host and port.


    Regards

    Stephane

  • Hello @Stephane Rossi

    Thank you for the information. Please be informed that when the ADS server is connecting to RCC, the RCC service on ADS will support data contribution only, not data subscription (the same as a direct connection).

    If you are trying to subscribe data from the ADS server via that RCC service, the API will get "Item State: Closed / Suspect / None / 'F62: Tunnel stream aggregation does not support item requests.'" from the backend.

    I have modified the ex341_MP_OffStreamPost to subscribe the contribution RIC from service name "ELEKTRON_DD" and sends Off-Stream Post message to my "TRCC" service.

    image

    The application can contribute data to RCC via "TRCC" service and subscribe to the same RIC via "ELEKTRON_DD" service successfully.

  • Hi @wasin.waeosri

    I only need to contribute data, no need to subscribe.
    I try to remove the subscribe part of the ex341 and now I get the "Nack Code" DeniedBySource message when posting.
    Login to TREP work fine:


    Received Refresh. Item Handle: 1 Closure: com.refinitiv.ema.access.OmmConsumerImpl@283b28be

    Item Name: xxxxxx

    Service Name: <not set>

    Item State: Open / Ok / None / 'Login accepted by host xxxxxxxx.'

    Name = AllowSuspectData DataType: UInt Value: 1

    Name = ApplicationId DataType: Ascii Value: 256

    Name = ApplicationName DataType: Ascii Value: ADS

    Name = Position DataType: Ascii Value: 192.168.1.117/xxxxxxxx

    Name = ProvidePermissionExpressions DataType: UInt Value: 1

    Name = ProvidePermissionProfile DataType: UInt Value: 0

    Name = SingleOpen DataType: UInt Value: 1

    Name = SupportEnhancedSymbolList DataType: UInt Value: 1

    Name = SupportOMMPost DataType: UInt Value: 1

    Name = SupportPauseResume DataType: UInt Value: 0

    Name = SupportStandby DataType: UInt Value: 0

    Name = SupportBatchRequests DataType: UInt Value: 7

    Name = SupportViewRequests DataType: UInt Value: 1

    Name = SupportOptimizedPauseResume DataType: UInt Value: 0

  • Thanks, I see now my issue, I used a PostMsg instead of an UpdateMsg.
    Now work fine, I can contribute to my RIC.