question

Upvotes
Accepted
5 0 0 2

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.

ema-apierror#technologyc++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.

1 Answer

Upvotes
Accepted
55.7k 144 45 65

@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.