question

Upvotes
Accepted
5 0 0 3

EMA consumer error 107

Here is my Code, according to C++ EMA Cons113:


OmmConsumerConfig config;

EmaString itemName = "EUR=";


EmaString consumerName = "Consumer_4";



config.username("xxxxxx");

config.password("xxxxxx");

config.clientId("xxxxxx");


OmmConsumer consumer( config.consumerName( consumerName ) );


consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( itemName ), *this );

sleep( 900000 ); // API calls onRefreshMsg(), onUpdateMsg(), or onStatusMsg()

} catch ( const OmmException& excp ) {

cout << excp << endl;


It runs to line " OmmConsumer consumer( config.consumerName( consumerName ) );" and blocked here,with log as follow:


loggerMsg

TimeStamp: 15:40:45.631

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_4

Instance Name Consumer_4_1

RsslReactor 0x0xb6d74a0

RsslChannel 0x0xb6d74a0

Error Id -1

Internal sysError 107

Error Location

Error Text </local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/rtsdk/Cpp-C/Eta/Impl/Transport/ripcsslutils.c:2049> Error: 1002 ripcSSLConnect() client connect() failed. System errno: (107)

loggerMsgEnd


loggerMsg

TimeStamp: 15:40:47.649

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_4

Instance Name Consumer_4_1

RsslReactor 0x0xb6d74a0

RsslChannel 0x0xb6d74a0

Error Id -1

Internal sysError 107

Error Location

Error Text </local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/rtsdk/Cpp-C/Eta/Impl/Transport/ripcsslutils.c:2049> Error: 1002 ripcSSLConnect() client connect() failed. System errno: (107)

loggerMsgEnd


loggerMsg

TimeStamp: 15:40:52.755

ClientName: ChannelCallbackClient

Severity: Warning

Text: Received ChannelDownReconnecting event on channel Channel_4

Instance Name Consumer_4_1

RsslReactor 0x0xb6d74a0

RsslChannel 0x0xb6d74a0

Error Id -1

Internal sysError 107

Error Location

Error Text </local/jenkins/workspace/ESDKCore_RCDEV/OS/OL7-64/rcdev/source/rtsdk/Cpp-C/Eta/Impl/Transport/ripcsslutils.c:2049> Error: 1002 ripcSSLConnect() client connect() failed. System errno: (107)

loggerMsgEnd


The demo Cons113 on the same server runs Okay, while my codes reprort the former errors.

Please help check it, thanks.

#technologyema-apierrorc++refinitiv-realtime-optimised
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.

Hello @shenping22975

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS


Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,
AHS

1 Answer

· Write an Answer
Upvotes
Accepted
78.6k 248 52 74

@shenping22975

Sorry about the issue that you are facing.

I tested the code and it works fine on my machine.

void AppClient::onRefreshMsg( const RefreshMsg& refreshMsg, const OmmConsumerEvent& ) 
{
    cout << "Refresh" << endl;
     //cout << refreshMsg << endl;        // defaults to refreshMsg.toString()
}

void AppClient::onUpdateMsg( const UpdateMsg& updateMsg, const OmmConsumerEvent& ) 
{
    cout << "Update" << endl;
    //cout << updateMsg << endl;        // defaults to updateMsg.toString()
}

void AppClient::onStatusMsg( const StatusMsg& statusMsg, const OmmConsumerEvent& ) 
{
    cout << statusMsg << endl;        // defaults to statusMsg.toString()
}

int main( int argc, char* argv[] )
{ 
    try { 
        AppClient client;
        OmmConsumerConfig config;
        EmaString itemName = "EUR=";
        EmaString consumerName = "Consumer_4";
        config.username("username");
        config.password("password");
        config.clientId("clientID");
        OmmConsumer consumer(config.consumerName(consumerName));
        consumer.registerClient(ReqMsg().serviceName("ELEKTRON_DD").name(itemName), client);
        sleep(900000); // API calls onRefreshMsg(), onUpdateMsg(), or onStatusMsg()
    }
    catch (const OmmException& excp) {
        cout << excp << endl;
    }
    return 0;
}

You may check the EMAConfig.XML which contains the correct configurations.

        <Consumer>
            <Name value="Consumer_4"/>


            <!-- ChannelSet specifies an ordered list of Channels to which OmmConsumer will attempt to    -->
            <!-- connect, one at a time, if the previous one fails to connect                            -->
            <ChannelSet value="Channel_4"/>


            <Logger value="Logger_1"/>
            <Dictionary value="Dictionary_2"/>
            <XmlTraceToStdout value="0"/>
            <XmlTraceToFile value="0"/>
            <RestEnableLog value="0"/>
        </Consumer>


...
...
        <Channel>
            <Name value="Channel_4"/>
            <ChannelType value="ChannelType::RSSL_ENCRYPTED"/>
            <CompressionType value="CompressionType::None"/>       
            <GuaranteedOutputBuffers value="5000"/>
            <!-- EMA discovers a host and a port from RDP service discovery for the specified location 
                when both of them are not set and the session management is enable. -->
            <Location value="us-east-1"/>
            <EnableSessionManagement value="1"/>
            <EncryptedProtocolType value="EncryptedProtocolType::RSSL_SOCKET"/>
            <!-- ObjectName is optional: defaulted to ""                                                -->
            <ObjectName value=""/>
        </Channel>

I hope that this information is of help

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.