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

...OAuth password does not exist.

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 ✭✭✭✭✭
    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