使用实时行情RTSDK CPP Linux,连接到RTO成功,但是有时无法得到refresh的结果

已经配好了private link,但是发现有时可以得到订阅的实时行情refresh的结果,有时什么都不能收到。使用相同的application,相同的账号,订阅相同的RIC,在机器A上(使用proxy,没有打通private link)没有问题,在机器B上(打通了private link)有时候会收不到任何实时行情,但有时候又可以收到。请问有人知道这个可能的原因吗?谢谢!

EmaConfig使用的是Consumer_4,success.txt和fail.txt是在机器B上同样的程序运行了两次产生的不同结果,success.txt中最后两行说明成功refresh了数据,fail.txt中说明没有任何反应,也没有收到数据。


1. EmaConfig.xml:

<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"/>

<RestEnableLog value="1"/>


<Logger value="Logger_1"/>

<Dictionary value="Dictionary_1"/>

<XmlTraceToStdout 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"/>

<EnableSessionManagement value="1"/>

<EncryptedProtocolType value="EncryptedProtocolType::RSSL_SOCKET"/>

<!-- ObjectName is optional: defaulted to "" -->

<ObjectName value=""/>

</Channel>




2. success.txt:

--- REST REQUEST ---


<!-- Time: 1:23:23:825 -->

URL: https://api.refinitiv.com/auth/oauth2/v1/token

HTTP method POST

HTTP header data:

Accept : application/json

Content-Type : application/x-www-form-urlencoded

HTTP body data: grant_type=password&username=GE-A-00515443-3-7804&client_id=17fcf22002bd4fbe849fa189b266e305b9157c71&scope=trapi.streaming.pricing.read&takeExclusiveSignOnControl=true

Request timeout: 90


--- REST RESPONSE ---


<!-- Time: 1:23:24:242 -->

HTTP header data:

Date : Wed, 13 Oct 2021 05:23:24 GMT

Content-Type : application/json

Transfer-Encoding : chunked

Connection : keep-alive

Content-Encoding : gzip

X-Amzn-Trace-Id : Root=1-61666d4b-1fb28dbd6e8dc7c51ae7fd49

X-Served-By : region=us-east-1; cid=677eb9aab6654a5183cab694fe6e6b6d

X-Tr-Requestid : e7e3a1f7-2148-4bd3-9c24-9c87686a9dd7

HTTP body data: { "access_token":"eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImRMdFd2Q0tCSC1NclVyWm9YMXFod2pZQ2t1eDV0V2ZSS2o4ME9vcjdUY28ifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiTEZSMzJLczFfRmt6Nm9oYUJ3Mk8yM09xalZRbzNPWnVyQUpPZUpwZkpDRllEX0FmVUdQby1xNDlzWl8xM2pWZ2h6dkxUWlBvZnRFTmR4eW9NenNZSUc1VW53QWo1M0IxMmFGeHJSUTZncm1vMDRuMjNidnE3N0lnT2lCbmNHSVpPdkhFZ1FuQjNtTFhSQ0RabUVqZVlGTnlXOS01UTBvNUxaa0M0QU90dHp3OXU0QVpBNERva285UDNpTGExeXRIeWpUeVp1SGdVSHpDbE12QVd3ZHJzeVBzVkFLbEZ2SE5xTHk1RHh6UjhKdk91VzFJTjNxTEp1TDM5YTdtZFQ3OVYwOXdsNEEyNDVCN0xwTm5JR1pjZ0hBaU9rakZzaWsyWHd5SE1Gbm04Yk9WWTFnVlk2UVExTE1PcElpeG15d2wtWkZTMGp3SHZHZVhEM2UxT0k0M1MyQnpiQ3cyMHhzSjJtZGN2NHZzenZ4N2NmeGFkZkNFaW9hTXEtcnR4RVNCXCIsXCJpdlwiOlwibXBhaGZtbnZZWmNVdlU4OVwiLFwicHJvdGVjdGVkXCI6XCJleUpoYkdjaU9pSkJWMU5mUlU1RFgxTkVTMTlCTWpVMklpd2laVzVqSWpvaVFUSTFOa2REVFNJc0lucHBjQ0k2SWtSRlJpSjlcIixcInJlY2lwaWVudHNcIjpbe1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQkFIaU9SY2FQaF9pWjNta2pFbVE2QWh6QzliR3hySTRfV2hWSFg1T0ZyNjU4MFFGeVVSRUQ4TGtEMDlYaDMyMjFFTmhlQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNQ2hHdGt6dTE1OUlvSWFnOUFnRVFnRHZsbjcxeEZkVkhGdmZCVUl0Q1VWazd0T0w5YU9jV3NuejJxMUJNX3h1SE5MSEpQUDg1MnRqV2xjeWN1Zkp4eFFjbFpNTkwwNjcxWTZxaTZRXCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOnVzLWVhc3QtMTo4OTgwODQ5ODQ4Nzc6a2V5LzFmZmY2NzkzLTY1ZGUtNDdjNC1iNzY2LTc2Y2QzYzE5NGVmMVwifX0se1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQ0FIaFd2Y0hYck1ZV1V5ZFZybGc1dU1sX1FpSDZnS3RzWm5kWEJYMmpIbjY5M3dFNlJ5cHFWSmJJZ1ZPdWpoUGlRRFFEQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNVFVFaWxXN1JBMnNRT09BREFnRVFnRHVtWmota0hJdXVOLW9TMU94ZXQyYXNIaTFESlRjMkRfNEZrLVppX1pCeng5RTkzQ040aDZkVGszZWQ1SDNNYjZITEp0VEs0RlFKZjFEWlB3XCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOmV1LXdlc3QtMTo4OTgwODQ5ODQ4Nzc6a2V5LzZhODY1OTJmLTM2MTQtNDgxNi05YzQzLTgxMWJlZmRhNmQ2MFwifX0se1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQ0FIaExHNjU4XzJxZ1JMRGVwbHQtS1Y5MVAtMlFSSHJjS1MxdnI3cjNXclpCOWdFdDRnQW5aWlB6YVVpYXRKa2cyWm5SQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNcTdkOWFNbThPWkVzTjl4MEFnRVFnRHZ4WnNGb3FTTkFfNFN4TGpUTzZMTHFlaG41bXIzX0QzdDQxaFpVTk8tN3MwamJkNXRINHpyclc1ZVllQkdVWUVJMFEtcnhCTlFjNThnNU1nXCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOmFwLXNvdXRoZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvZTQ4NzBiMWMtOWNjNy00NDc4LWI5NTAtYzU2NTliNWM1NjhmXCJ9fV0sXCJ0YWdcIjpcImdmckpmNW5POWUyYjduczdYc09ORlFcIn0iLCJyczEiOiI1MmZkM2M2YmI0MmFjMTVhZmVhNzYzYTUwNGMyMzAxZDQzZmQ1ODFhIiwiYXVkIjoiMTdmY2YyMjAwMmJkNGZiZTg0OWZhMTg5YjI2NmUzMDViOTE1N2M3MSIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHkuY2lhbS5yZWZpbml0aXYuY29tL2FwaS9pZGVudGl0eS9zdHNfcHJvZCIsImV4cCI6MTYzNDEwMzIwNCwiaWF0IjoxNjM0MTAyNjA0fQ.tNSs-aWdXNkonGygg3A4VIeu0W8ozDIIHuMXIXQQjwzo0dJwSvmPuPQIiplaDvxaHqV8v-aErtUaHXGkOnXBdWBnsr3_CLZhK-7kALF9uIuA6dRvBW2EIqaXtERJXuYB54uz3C0X1yC3VeR70L7HXzGr74I4klFEcoBDHYFG_y_vAYjJSwf2IfbxvhaNE8zprijWoofeiIF6En29IfXB08GJJnCRNwzGADUWLbsZUMMj2yBB1GrwRpcRk63Pu1WJb883TjTY55rgqSqLlagd89PhO_kJPko7btuowufY-GNwlv6lAZi6vCQPefF-JoAluqTvWaA1krvPNNftszjRZQ", "refresh_token":"5c559b9b-e5c2-460e-a193-89219ac1cd85", "expires_in":"600" , "scope":"trapi.streaming.pricing.read", "token_type":"Bearer" }

Protocol version: HTTP/1.1

HTTP status code: 200


--- REST REQUEST ---


<!-- Time: 1:23:24:242 -->

URL: https://api.refinitiv.com/streaming/pricing/v1/?transport=tcp

HTTP method GET

HTTP header data:

Authorization : Bearer eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImRMdFd2Q0tCSC1NclVyWm9YMXFod2pZQ2t1eDV0V2ZSS2o4ME9vcjdUY28ifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiTEZSMzJLczFfRmt6Nm9oYUJ3Mk8yM09xalZRbzNPWnVyQUpPZUpwZkpDRllEX0FmVUdQby1xNDlzWl8xM2pWZ2h6dkxUWlBvZnRFTmR4eW9NenNZSUc1VW53QWo1M0IxMmFGeHJSUTZncm1vMDRuMjNidnE3N0lnT2lCbmNHSVpPdkhFZ1FuQjNtTFhSQ0RabUVqZVlGTnlXOS01UTBvNUxaa0M0QU90dHp3OXU0QVpBNERva285UDNpTGExeXRIeWpUeVp1SGdVSHpDbE12QVd3ZHJzeVBzVkFLbEZ2SE5xTHk1RHh6UjhKdk91VzFJTjNxTEp1TDM5YTdtZFQ3OVYwOXdsNEEyNDVCN0xwTm5JR1pjZ0hBaU9rakZzaWsyWHd5SE1Gbm04Yk9WWTFnVlk2UVExTE1PcElpeG15d2wtWkZTMGp3SHZHZVhEM2UxT0k0M1MyQnpiQ3cyMHhzSjJtZGN2NHZzenZ4N2NmeGFkZkNFaW9hTXEtcnR4RVNCXCIsXCJpdlwiOlwibXBhaGZtbnZZWmNVdlU4OVwiLFwicHJvdGVjdGVkXCI6XCJleUpoYkdjaU9pSkJWMU5mUlU1RFgxTkVTMTlCTWpVMklpd2laVzVqSWpvaVFUSTFOa2REVFNJc0lucHBjQ0k2SWtSRlJpSjlcIixcInJlY2lwaWVudHNcIjpbe1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQkFIaU9SY2FQaF9pWjNta2pFbVE2QWh6QzliR3hySTRfV2hWSFg1T0ZyNjU4MFFGeVVSRUQ4TGtEMDlYaDMyMjFFTmhlQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNQ2hHdGt6dTE1OUlvSWFnOUFnRVFnRHZsbjcxeEZkVkhGdmZCVUl0Q1VWazd0T0w5YU9jV3NuejJxMUJNX3h1SE5MSEpQUDg1MnRqV2xjeWN1Zkp4eFFjbFpNTkwwNjcxWTZxaTZRXCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOnVzLWVhc3QtMTo4OTgwODQ5ODQ4Nzc6a2V5LzFmZmY2NzkzLTY1ZGUtNDdjNC1iNzY2LTc2Y2QzYzE5NGVmMVwifX0se1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQ0FIaFd2Y0hYck1ZV1V5ZFZybGc1dU1sX1FpSDZnS3RzWm5kWEJYMmpIbjY5M3dFNlJ5cHFWSmJJZ1ZPdWpoUGlRRFFEQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNVFVFaWxXN1JBMnNRT09BREFnRVFnRHVtWmota0hJdXVOLW9TMU94ZXQyYXNIaTFESlRjMkRfNEZrLVppX1pCeng5RTkzQ040aDZkVGszZWQ1SDNNYjZITEp0VEs0RlFKZjFEWlB3XCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOmV1LXdlc3QtMTo4OTgwODQ5ODQ4Nzc6a2V5LzZhODY1OTJmLTM2MTQtNDgxNi05YzQzLTgxMWJlZmRhNmQ2MFwifX0se1wiZW5jcnlwdGVkX2tleVwiOlwiQVFJQ0FIaExHNjU4XzJxZ1JMRGVwbHQtS1Y5MVAtMlFSSHJjS1MxdnI3cjNXclpCOWdFdDRnQW5aWlB6YVVpYXRKa2cyWm5SQUFBQWZqQjhCZ2txaGtpRzl3MEJCd2FnYnpCdEFnRUFNR2dHQ1NxR1NJYjNEUUVIQVRBZUJnbGdoa2dCWlFNRUFTNHdFUVFNcTdkOWFNbThPWkVzTjl4MEFnRVFnRHZ4WnNGb3FTTkFfNFN4TGpUTzZMTHFlaG41bXIzX0QzdDQxaFpVTk8tN3MwamJkNXRINHpyclc1ZVllQkdVWUVJMFEtcnhCTlFjNThnNU1nXCIsXCJoZWFkZXJcIjp7XCJraWRcIjpcImFybjphd3M6a21zOmFwLXNvdXRoZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvZTQ4NzBiMWMtOWNjNy00NDc4LWI5NTAtYzU2NTliNWM1NjhmXCJ9fV0sXCJ0YWdcIjpcImdmckpmNW5POWUyYjduczdYc09ORlFcIn0iLCJyczEiOiI1MmZkM2M2YmI0MmFjMTVhZmVhNzYzYTUwNGMyMzAxZDQzZmQ1ODFhIiwiYXVkIjoiMTdmY2YyMjAwMmJkNGZiZTg0OWZhMTg5YjI2NmUzMDViOTE1N2M3MSIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHkuY2lhbS5yZWZpbml0aXYuY29tL2FwaS9pZGVudGl0eS9zdHNfcHJvZCIsImV4cCI6MTYzNDEwMzIwNCwiaWF0IjoxNjM0MTAyNjA0fQ.tNSs-aWdXNkonGygg3A4VIeu0W8ozDIIHuMXIXQQjwzo0dJwSvmPuPQIiplaDvxaHqV8v-aErtUaHXGkOnXBdWBnsr3_CLZhK-7kALF9uIuA6dRvBW2EIqaXtERJXuYB54uz3C0X1yC3VeR70L7HXzGr74I4klFEcoBDHYFG_y_vAYjJSwf2IfbxvhaNE8zprijWoofeiIF6En29IfXB08GJJnCRNwzGADUWLbsZUMMj2yBB1GrwRpcRk63Pu1WJb883TjTY55rgqSqLlagd89PhO_kJPko7btuowufY-GNwlv6lAZi6vCQPefF-JoAluqTvWaA1krvPNNftszjRZQ

Accept : application/json

HTTP body data:

Request timeout: 90


--- REST RESPONSE ---


<!-- Time: 1:23:25:150 -->

HTTP header data:

Date : Wed, 13 Oct 2021 05:23:25 GMT

Content-Type : application/json

Content-Length : 282

Connection : keep-alive

Access-Control-Allow-Headers : authorization,content-type,x-tr-correlationid

Access-Control-Allow-Origin : *

Content-Encoding : gzip

X-Amzn-Trace-Id : Root=1-61666d4c-658700da360d35c4120113a2

X-Served-By : region=us-east-1; cid=37aa5090295147899c136fde03dadbd0

X-Tr-Requestid : 44e97312-cc74-441f-9849-59503f248ef8

HTTP body data: {"services":[{"port":14002,"location":["ap-southeast-1a"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["ap-southeast-1a","ap-southeast-1b"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["ap-southeast-1b"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1a"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1a","eu-west-1b"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1b"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1a"],"transport":"tcp","provider":"aws","endpoint":"amer-1-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1a","us-east-1b"],"transport":"tcp","provider":"aws","endpoint":"amer-3-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1b"],"transport":"tcp","provider":"aws","endpoint":"amer-2-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2a"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2a","us-east-2b"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2b"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]}]}

Protocol version: HTTP/1.1

HTTP status code: 200

loggerMsg

TimeStamp: 01:23:25.178

ClientName: ChannelCallbackClient

Severity: Success

Text: Received ChannelUp event on channel Channel_4

Instance Name Consumer_4_1

Connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit

loggerMsgEnd


--------------------------Consumer Start ------------------------------

status

refresh



3. fail.txt:

--- REST REQUEST ---


<!-- Time: 23:29:11:429 -->

URL: https://api.refinitiv.com/auth/oauth2/v1/token

HTTP method POST

HTTP header data:

Accept : application/json

Content-Type : application/x-www-form-urlencoded

HTTP body data: grant_type=password&username=GE-A-00515443-3-7804&client_id=17fcf22002bd4fbe849fa189b266e305b9157c71&scope=trapi.streaming.pricing.read&takeExclusiveSignOnControl=true

Request timeout: 90


--- REST RESPONSE ---


<!-- Time: 23:29:11:848 -->

HTTP header data:

Date : Wed, 13 Oct 2021 03:29:11 GMT

Content-Type : application/json

Content-Length : 1867

Connection : keep-alive

Content-Encoding : gzip

X-Amzn-Trace-Id : Root=1-61665287-592e95e8139407b917cda8d7

X-Served-By : region=us-east-1; cid=e3a6d998fd504be09f0ccd338d833791

X-Tr-Requestid : 05fb78ad-8e6e-4e99-b88a-f1406a940594

HTTP body data: { "access_token":"eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImRMdFd2Q0tCSC1NclVyWm9YMXFod2pZQ2t1eDV0V2ZSS2o4ME9vcjdUY28ifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiM1dEVUY5OE1ZTW9KcTUtVURTYlpwbnhGRHQ2NXl3RnllZFdEZUFYSkJkbmotZFUyWmdudkZUQ3FKaFR0TDZMOFFtR3liUTNidTBRNlBNMVN6dTN5UFpSTXF1ODlLWmJNQjR4S0pnNmxSSHgxLW9vSVRFbjRqVU5YMGdjajN4TWVrUllCcHVpV2xTaFpwazJHYUR3Njd4b2pjMUFBOEp6U3BtdlUxVWdTWlpsbTFRTVRQLTlqUy1nRkM3bFRCUWJUZFFZVVM1VHZGWVVfNVpYV3ZnN3dSaU01b3dyWDlxaFV2cFdkYzhMejlRVWNZZHRZYUd3YVVjN0VEQW9GZ0xZdU1PSm50TjAyZ21Mc3BWdW1TZjFKQnMxbGxyMGRsTEY2T1dHVWZSRVpjSF8yZmp2dlB0el9EVmRqUW1WZkdyY3NYdW1CNkpxZzJhSDJXSEVxY2hCVkJPYUR6aWpuV1lndUNUR3BncUZvQmR1WVpRZjQxdE9acmJnWFR3ZU45X3dcIixcIml2XCI6XCJGSldSLW1NaHo5ak10bFJJXCIsXCJwcm90ZWN0ZWRcIjpcImV5SmhiR2NpT2lKQlYxTmZSVTVEWDFORVMxOUJNalUySWl3aVpXNWpJam9pUVRJMU5rZERUU0lzSW5wcGNDSTZJa1JGUmlKOVwiLFwicmVjaXBpZW50c1wiOlt7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUV6d2s5SG8tMjE5RVpydlF2aFhYMHRBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU12bkxTU0xBMzFJWmJnT3pZQWdFUWdEc0dZc3BYT3l2UTA4cC16S21fSXNNUkV3aW5yZG0xZTR3S2JSZkdWdEIyQ1pmYm5HbC13RXlaa1Bka1ZnRWViUFUyQW03VkQtbzJwWkxQbWdcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUV6d2s5SG8tMjE5RVpydlF2aFhYMHRBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU12bkxTU0xBMzFJWmJnT3pZQWdFUWdEc0dZc3BYT3l2UTA4cC16S21fSXNNUkV3aW5yZG0xZTR3S2JSZkdWdEIyQ1pmYm5HbC13RXlaa1Bka1ZnRWViUFUyQW03VkQtbzJwWkxQbWdcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlDQUhoV3ZjSFhyTVlXVXlkVnJsZzV1TWxfUWlINmdLdHNabmRYQlgyakhuNjkzd0VQTmV0aUltOVdpQjNMUFdnWWpjX0xBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1adkFRMkR0dnMzc3AwbEZ0QWdFUWdEdUI2WXN0ZmpyZjdVa1AxUjhTampwMWhnMDd6N1ZzTTlrNldVV2x4NHN5Q0NCXzk5aG5pOXhVeThseU1Bc0d0Z2oza1JvV29NSVh3bU1pS3dcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6ZXUtd2VzdC0xOjg5ODA4NDk4NDg3NzprZXkvNmE4NjU5MmYtMzYxNC00ODE2LTljNDMtODExYmVmZGE2ZDYwXCJ9fV0sXCJ0YWdcIjpcImRHSHRVaXJsQ2tzcXVjMkl5VzZzaUFcIn0iLCJyczEiOiIwZmZhMTZjOWQ3ZjlhMzU1NGY0NjE4NjRmNTY1M2YzODY0ZTNmYzIzIiwiYXVkIjoiMTdmY2YyMjAwMmJkNGZiZTg0OWZhMTg5YjI2NmUzMDViOTE1N2M3MSIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHkuY2lhbS5yZWZpbml0aXYuY29tL2FwaS9pZGVudGl0eS9zdHNfcHJvZCIsImV4cCI6MTYzNDA5NjM1MSwiaWF0IjoxNjM0MDk1NzUxfQ.I_UKdbdM3Zx2dCZ8sN8zJMGpfrJ1tYWr_fwzlVMC8hyBGnLpFeorrXVbJtWGJ9coEgUR7uUXRqOZAVSWXSMlH79XagtSW7LhP4hEoX_3ScqfVLFpAN0GWa-tJY2Sxtnz79_OEMyev7MkiBOaIBfCPOp3jwMCAk2R6NMeHe8Vz6bDDgSl3l5vXscL4qxI5FjuJtkaAv37hCizoYwI6hBQ8qRX67Sdzs3ge2wnPu8S0728mC9WNWQJ-NDDk4fpAoDW1YUXcoSwfklmd0uDEszC5cGmVLbAga4mcRG1t7iRKbH0gZ0kmlhZpMwzG542UaPbejYY-NawGwB3eD65nF2C8g", "refresh_token":"7867d169-fb0c-443b-8f32-ebf98bda4316", "expires_in":"600" , "scope":"trapi.streaming.pricing.read", "token_type":"Bearer" }

Protocol version: HTTP/1.1

HTTP status code: 200


--- REST REQUEST ---


<!-- Time: 23:29:11:848 -->

URL: https://api.refinitiv.com/streaming/pricing/v1/?transport=tcp

HTTP method GET

HTTP header data:

Authorization : Bearer eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImRMdFd2Q0tCSC1NclVyWm9YMXFod2pZQ2t1eDV0V2ZSS2o4ME9vcjdUY28ifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiM1dEVUY5OE1ZTW9KcTUtVURTYlpwbnhGRHQ2NXl3RnllZFdEZUFYSkJkbmotZFUyWmdudkZUQ3FKaFR0TDZMOFFtR3liUTNidTBRNlBNMVN6dTN5UFpSTXF1ODlLWmJNQjR4S0pnNmxSSHgxLW9vSVRFbjRqVU5YMGdjajN4TWVrUllCcHVpV2xTaFpwazJHYUR3Njd4b2pjMUFBOEp6U3BtdlUxVWdTWlpsbTFRTVRQLTlqUy1nRkM3bFRCUWJUZFFZVVM1VHZGWVVfNVpYV3ZnN3dSaU01b3dyWDlxaFV2cFdkYzhMejlRVWNZZHRZYUd3YVVjN0VEQW9GZ0xZdU1PSm50TjAyZ21Mc3BWdW1TZjFKQnMxbGxyMGRsTEY2T1dHVWZSRVpjSF8yZmp2dlB0el9EVmRqUW1WZkdyY3NYdW1CNkpxZzJhSDJXSEVxY2hCVkJPYUR6aWpuV1lndUNUR3BncUZvQmR1WVpRZjQxdE9acmJnWFR3ZU45X3dcIixcIml2XCI6XCJGSldSLW1NaHo5ak10bFJJXCIsXCJwcm90ZWN0ZWRcIjpcImV5SmhiR2NpT2lKQlYxTmZSVTVEWDFORVMxOUJNalUySWl3aVpXNWpJam9pUVRJMU5rZERUU0lzSW5wcGNDSTZJa1JGUmlKOVwiLFwicmVjaXBpZW50c1wiOlt7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUV6d2s5SG8tMjE5RVpydlF2aFhYMHRBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU12bkxTU0xBMzFJWmJnT3pZQWdFUWdEc0dZc3BYT3l2UTA4cC16S21fSXNNUkV3aW5yZG0xZTR3S2JSZkdWdEIyQ1pmYm5HbC13RXlaa1Bka1ZnRWViUFUyQW03VkQtbzJwWkxQbWdcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlCQUhpT1JjYVBoX2laM21rakVtUTZBaHpDOWJHeHJJNF9XaFZIWDVPRnI2NTgwUUV6d2s5SG8tMjE5RVpydlF2aFhYMHRBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU12bkxTU0xBMzFJWmJnT3pZQWdFUWdEc0dZc3BYT3l2UTA4cC16S21fSXNNUkV3aW5yZG0xZTR3S2JSZkdWdEIyQ1pmYm5HbC13RXlaa1Bka1ZnRWViUFUyQW03VkQtbzJwWkxQbWdcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6dXMtZWFzdC0xOjg5ODA4NDk4NDg3NzprZXkvMWZmZjY3OTMtNjVkZS00N2M0LWI3NjYtNzZjZDNjMTk0ZWYxXCJ9fSx7XCJlbmNyeXB0ZWRfa2V5XCI6XCJBUUlDQUhoV3ZjSFhyTVlXVXlkVnJsZzV1TWxfUWlINmdLdHNabmRYQlgyakhuNjkzd0VQTmV0aUltOVdpQjNMUFdnWWpjX0xBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1adkFRMkR0dnMzc3AwbEZ0QWdFUWdEdUI2WXN0ZmpyZjdVa1AxUjhTampwMWhnMDd6N1ZzTTlrNldVV2x4NHN5Q0NCXzk5aG5pOXhVeThseU1Bc0d0Z2oza1JvV29NSVh3bU1pS3dcIixcImhlYWRlclwiOntcImtpZFwiOlwiYXJuOmF3czprbXM6ZXUtd2VzdC0xOjg5ODA4NDk4NDg3NzprZXkvNmE4NjU5MmYtMzYxNC00ODE2LTljNDMtODExYmVmZGE2ZDYwXCJ9fV0sXCJ0YWdcIjpcImRHSHRVaXJsQ2tzcXVjMkl5VzZzaUFcIn0iLCJyczEiOiIwZmZhMTZjOWQ3ZjlhMzU1NGY0NjE4NjRmNTY1M2YzODY0ZTNmYzIzIiwiYXVkIjoiMTdmY2YyMjAwMmJkNGZiZTg0OWZhMTg5YjI2NmUzMDViOTE1N2M3MSIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHkuY2lhbS5yZWZpbml0aXYuY29tL2FwaS9pZGVudGl0eS9zdHNfcHJvZCIsImV4cCI6MTYzNDA5NjM1MSwiaWF0IjoxNjM0MDk1NzUxfQ.I_UKdbdM3Zx2dCZ8sN8zJMGpfrJ1tYWr_fwzlVMC8hyBGnLpFeorrXVbJtWGJ9coEgUR7uUXRqOZAVSWXSMlH79XagtSW7LhP4hEoX_3ScqfVLFpAN0GWa-tJY2Sxtnz79_OEMyev7MkiBOaIBfCPOp3jwMCAk2R6NMeHe8Vz6bDDgSl3l5vXscL4qxI5FjuJtkaAv37hCizoYwI6hBQ8qRX67Sdzs3ge2wnPu8S0728mC9WNWQJ-NDDk4fpAoDW1YUXcoSwfklmd0uDEszC5cGmVLbAga4mcRG1t7iRKbH0gZ0kmlhZpMwzG542UaPbejYY-NawGwB3eD65nF2C8g

Accept : application/json

HTTP body data:

Request timeout: 90


--- REST RESPONSE ---


<!-- Time: 23:29:12:368 -->

HTTP header data:

Date : Wed, 13 Oct 2021 03:29:12 GMT

Content-Type : application/json

Content-Length : 282

Connection : keep-alive

Access-Control-Allow-Headers : authorization,content-type,x-tr-correlationid

Access-Control-Allow-Origin : *

Content-Encoding : gzip

X-Amzn-Trace-Id : Root=1-61665287-6bf424ea28b3593f21156ae0

X-Served-By : region=us-east-1; cid=37aa5090295147899c136fde03dadbd0

X-Tr-Requestid : 437d7727-e764-4c8a-80d2-77e03900efd6

HTTP body data: {"services":[{"port":14002,"location":["ap-southeast-1a"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["ap-southeast-1a","ap-southeast-1b"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["ap-southeast-1b"],"transport":"tcp","provider":"aws","endpoint":"ap-southeast-1-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1a"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1a","eu-west-1b"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["eu-west-1b"],"transport":"tcp","provider":"aws","endpoint":"eu-west-1-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1a"],"transport":"tcp","provider":"aws","endpoint":"amer-1-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1a","us-east-1b"],"transport":"tcp","provider":"aws","endpoint":"amer-3-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-1b"],"transport":"tcp","provider":"aws","endpoint":"amer-2-t1.streaming-pricing-api.refinitiv.com","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2a"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-1-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2a","us-east-2b"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-3-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]},{"port":14002,"location":["us-east-2b"],"transport":"tcp","provider":"aws","endpoint":"us-east-2-aws-2-sm.optimized-pricing-api.refinitiv.net","dataFormat":["rwf"]}]}

Protocol version: HTTP/1.1

HTTP status code: 200

loggerMsg

TimeStamp: 23:29:12.396

ClientName: ChannelCallbackClient

Severity: Success

Text: Received ChannelUp event on channel Channel_4

Instance Name Consumer_4_1

Connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit

loggerMsgEnd


--------------------------Consumer Start ------------------------------


Tagged:

Best Answer

  • @Xueying

    If it happened randomly, it could be a problem on the server-side.

    When it failed, the log showed that I could connect to the server properly.

    Text: Received ChannelUp event on channel Channel_4
    Instance Name Consumer_4_1
    Connected component version: ads3.4.2.L1.linux.tis.rrg 64-bit

    You may try to change the location to ap-southeast or eu-west to verify the problem.

    <Location value="ap-southeast"/>

    Moreover, you can enable tracing in the EMA to verify data.

    <XmlTraceToStdout value="1"/>


Answers

  • Hello @Xueying

    You can find more details regarding the EMA C++ logging/tracing from the "EMA C++ Logging" and "XML Trace" sections of the Enterprise Message API (EMA) - Configuration Overview article.

  • Hi @Jirapongse , I tried ap-southeast and the problem still exists.

    I added

    1. <XmlTraceToStdout value="1"/>

    and I only subscribed SPY.NB for testing. In the success case, in the end of the log, I got

    1634190829033.png

    However, in the failure case, I did not see the content about SPY.NB at all.

    The log ends here

    1634190802786.png






  • Hi @wasin.w , in the log file, I see

    Channel IPC descriptor = 12

    What does 12 mean here? I ran the Cons 113 demo and the descriptor is 11 instead of 12. The Cons113 worked just fine and did not have any problem. I wonder does the IPC descriptor indicate something wrong?

  • Hello @Xueying

    The Channel IPC descriptor is the Socket InterProcess Communication (IPC) file-descriptor-based I/O that the API uses for making a network connection with the server. The number value should not relate to the issue.

    Could you please give us more detail about the application and environment that encounters the issue?

    • The version of EMA C++ (or RTSDK) that you are using
    • OS/platform
    • Compiler version

    Additionally, the false case (1634190802786.png) picture does not contain the outgoing request message (see example below). Can you give us more logs?

    request-msg.png

  • Hi @wasin.w , we are using RTSDK-2.0.1.L2.linux.rrg on Red Hat 7.9.

    g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

    cmake 3.10.3


    There is no outgoing message showing in the false case. The picture I present is the very end of the log, namely, nothing shows up after "-----Consumer Start-----".

  • @Xueying

    From the tracing, you got the dictionary. You can use the XmlTraceToFile configuration instead of the XmlTraceToStdout configuration to trace messages to a file.

    <XmlTraceToFile value="1"/>

    You may reduce the file size by loading the dictionary from local files by using the following configurations.

            <Dictionary>
                <Name value="Dictionary_2"/>
                <DictionaryType value="DictionaryType::FileDictionary"/>
                <RdmFieldDictionaryFileName value="./RDMFieldDictionary"/>
                <EnumTypeDefFileName value="./enumtype.def"/>
            </Dictionary>

    Moreover, you can enable the verbose log to see more information.

            <Logger>
                <Name value="Logger_2"/>
                <LoggerType value="LoggerType::File"/>
                <FileName value="emaLog"/>
                <LoggerSeverity value="LoggerSeverity::Verbose"/>
            </Logger>

    Please share the trace and log files when the application succeeded and failed.

  • Hi @Jirapongse , where can I find RDMFieldDictionary and enumtype.def ?

  • @Xueying

    They are in the \Cpp-C\etc folder.



  • @Xueying

    This is strange.

    EMA got the source directory message but it didn't send an item request.

    Can you replicate this issue with the Cons113 example?

  • Hello @Xueying

    Additionally, I found that you are using RTSDK 2.0.1 L2 which was released on April 2021. The latest version of the SDK is 2.0.3 L1.

    Please also re-test the issue with version 2.0.3 L1.

    You can download RTSDK C++ 2.0.3 L1 from Developer Portal and GitHub websites.

  • Hi @Jirapongse / @wasin.w ,

    I tried Cons113 for both 2.0.3.L1 and 2.0.1.L2 version, it has no problem. I think the sample is too easy, it did not use multi-core or BATCH subscribe. My application is kind of a combination of Example Consumer 113, 370(Batch) and 410(multi-thread).

    The problem only happens on my application on two certain machines, not happens on other machines, which is wierd.

  • Hi @Jirapongse @wasin.w , I think I found the problem. It is the Exanple Cons410. I changed some ID setting in this example and run it on our machine. The problem shows up. Sometimes it stucks and I did not receive any data, sometimes it is just fine. I tested both versions of SDK and the problem is the same.

    I can show what I changed in code:

    1.

    ConsumerManager.cpp

    previous:

    // ConsumerManager::ConsumerManager( const EmaString& host, const EmaString& username ) :
    // running( false )
    // {
    // ommConsumer = new OmmConsumer( OmmConsumerConfig().host( host ).username( username ).operationModel( OmmConsumerConfig::UserDispatchEnum ) );
    // }

    now:

    ConsumerManager::ConsumerManager() :
    running( false )
    {
    ommConsumer = new OmmConsumer( OmmConsumerConfig().consumerName( "Consumer_4" ).username("GE-A-00515443-3-7804").password("***").clientId("***").operationModel( OmmConsumerConfig::UserDispatchEnum ) );
    }

    2.

    Consumer.cpp

    I changed main() to:

    try {
    ConsumerManager consumerMgr1();

    AppClient appClient1;
    consumerMgr1.getOmmConsumer().registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).payload( ElementList().addArray( ENAME_BATCH_ITEM_LIST, OmmArray().addAscii( "SPY.NB" ).addAscii( "IBM.NB" ).complete() ).complete() ), appClient1, (void *)"consumerMgr1" );

    consumerMgr1.start();

    sleep( 60000 );// User thread calls onRefreshMsg(), onUpdateMsg(), or onStatusMsg()

    consumerMgr1.stop();
    }


  • @Xueying

    I am still unable to replicate the problem after modifying the cons410 example.

    You may need to raise a query to the RDC support team to verify the problem. If you are an RDC contact, you can contact the RDC support team via Contact Premium Support on this page. Otherwise, you can contact RDC-named users in your company to raise a query on your behalf.