为什么收到的数据payloadDataType==128

产品为real time API,在订阅LIBOR= 的数据时,payloadDataType==128被过滤了,什么情况下payloadDataType会==128,如何解决?

Best Answer

  • Jirapongse
    Answer ✓

    @235601

    Thank you for reaching out to us.

    The payload data type 128 could be NoDataEnum.

    NoDataEnum = 128,        /*!< No Omm data value is present. */

    It could happen when the message doesn't have any payload, such as status messages.

    void AppClient::onStatusMsg( const StatusMsg& statusMsg, const OmmConsumerEvent& ) 
    {
        if ( statusMsg.hasName() )
            cout << endl << "Item Name: " << statusMsg.getName();
        
        if ( statusMsg.hasServiceName() )
            cout << endl << "Service Name: " << statusMsg.getServiceName();


        if ( statusMsg.hasState() )
            cout << endl << "Item State: " << statusMsg.getState().toString();
        
        if (DataType::NoDataEnum == statusMsg.getPayload().getDataType()) {
            cout << endl << "No Data";
        }


        cout << endl;
    }
    Item Name: IBMxx.N
    Service Name: ELEKTRON_DD
    Item State: Closed / Suspect / Not found / '***The record could not be found'
    No Data

    You may need to enable tracing in the API to verify the retrieved data.

    Please refer to the EMA configuration guide regarding how to enable XML trace.