EMA JAVA - CIAM migration - Failed to copy OAuth credential for enabling the session management; OAu

Since migrating our code to CIAM, we managed to connect to the API. However, we suddenly no longer are able to connect with the following error.


SEVERE: component named 'reutersUpdater' failed, class .RateSheetUpdater, fault type 'Elektron Connection Failure'

Exception Type='OmmInvalidUsageException', Text='loggerMsg

ClientName: ChannelCallbackClient

Severity: Error

Text: Failed to add RsslChannel(s) to RsslReactor. Channel name(s)

Instance Name Consumer_Frost_1

RsslReactor @37047ae6

RsslChannel null

Error Id -6

Internal sysError 0

Error Location Reactor.copyOAuthCredentialForSessionManagement

Error Text Failed to copy OAuth credential for enabling the session management; OAuth password does not exist.

loggerMsgEnd


', Error Code='-6'

at com.refinitiv.ema.access.OmmBaseImpl.ommIUExcept(OmmBaseImpl.java:1602)

at com.refinitiv.ema.access.ChannelCallbackClient.initializeReactor(ChannelCallbackClient.java:919)

at com.refinitiv.ema.access.ChannelCallbackClient.initializeConsumerRole(ChannelCallbackClient.java:991)

at com.refinitiv.ema.access.OmmConsumerImpl.handleAdminDomains(OmmConsumerImpl.java:489)

at com.refinitiv.ema.access.OmmBaseImpl.initialize(OmmBaseImpl.java:277)

at com.refinitiv.ema.access.OmmConsumerImpl.<init>(OmmConsumerImpl.java:41)

at com.refinitiv.ema.access.EmaFactory.createOmmConsumer(EmaFactory.java:237)

Best Answer

  • Jirapongse
    Jirapongse admin
    Answer ✓

    @andre.malenfant

    Thank you for reaching out to us.

    It seems that you are still using the Version 1 Authentication code which requires a username, password, and client ID.

    To use Version 2 Authentication (CIAM) which requires a client ID and client secret, you need to use RTSDK version 2.0.5 (EMA/ETA API version 3.6.5) and above.

    The code looks like this:

    OmmConsumer consumer = null;
     
    AppClient appClient = new AppClient();
    OmmConsumerConfig config = EmaFactory.createOmmConsumerConfig();
     
    consumer = EmaFactory.createOmmConsumer(config.consumerName("Consumer_1").clientId(clientId).clientSecret(clientSecret));
     
    consumer.registerClient(EmaFactory.createReqMsg().serviceName("ELEKTRON_DD").name(itemName), appClient);

    For more information, please refer to the EMA Java API: Refinitiv Real-Time Optimized Version 2 Authentication Migration Guide article.

Answers

  • My code is exactly like this. However, you made me realize that the build did include 3.6.1. I will correct that and test again. Thanks

  • The issue was the packaging of the app. The wrong version of the ema libs were included. The code works with the right version now. Thanks!