lseg C++ NIProvider query

marlon_T
marlon_T LSEG
edited April 4 in EMA

Raisd on behalf of client

I am testing according to lseg C++ NIProvider tutorial.

I am testing on internal service “DTS_KL” of internal ric “USDFON=MBBGM”, the codes are like the following.

OmmProvider provider(OmmNiProviderConfig("c:\\temp\\process\\x64\\EMAConfig.xml").username("drdwhw"));


UInt64 serviceId = 1000;


UInt64 sourceDirectoryHandle = 1;


UInt64 ibmHandle = 5;


RefreshMsg refresh;


UpdateMsg update;


FieldList fieldList;


Connector::ConnectionStateListener _connectionStateListener;




provider.registerClient(


ReqMsg()


.domainType(MMT_LOGIN)


.name("drdwhw"),


_connectionStateListener,


(void*)0);




provider.submit(


refresh.clear().domainType(MMT_MARKET_PRICE).serviceName("DTS_KL").name("USDFON=MBBGM").state(


OmmState::OpenEnum,


OmmState::OkEnum,


OmmState::NoneEnum,


"UnSolicited Refresh Completed")


.payload(


fieldList


.addReal(22, 4.21, OmmReal::ExponentNeg2Enum) //BID_1 - 23, BID - 22


.addReal(25, 4.22, OmmReal::ExponentNeg2Enum) //ASK_1 - 26, ASK - 25


.complete()).complete(), ibmHandle);




provider.submit(update.clear().domainType(MMT_MARKET_PRICE).serviceName("DTS_KL").name("USDFON=MBBGM")


.payload(fieldList.clear()


.addReal(22, 4.21, OmmReal::ExponentNeg2Enum) //BID_1 - 23, BID - 22


.addReal(25, 4.22, OmmReal::ExponentNeg2Enum) //ASK_1 - 26, ASK - 25


.complete()), ibmHandle);




provider.submit(


StatusMsg()


.state(


OmmState::OpenEnum, // Stream state


OmmState::OkEnum, // Data state


OmmState::NoneEnum, // Data status


"All is good"), // Explanatory text


ibmHandle);



Our IT has checked that the ADH service is running, and I can get call back saying that refresh is completed after I send refresh message.

This shows that I can connect to ADH service.

Now my problem is after I submit the update message the data is not updated.

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @marlon_T

    Thank you for reaching out to us.

    Typically, raising questions on behalf of client is not recommend. You can suggest the clients to post questions by themselves. The forum is public so anyone can access it.

    Regarding this issue, you can change the values of BID and ASK in the update messages. For example:

    provider.submit(update.clear().domainType(MMT_MARKET_PRICE).serviceName("DTS_KL").name("USDFON=MBBGM")

    .payload(fieldList.clear()

    .addReal(22, 5.21, OmmReal::ExponentNeg2Enum) //BID_1 - 23, BID - 22

    .addReal(25, 5.22, OmmReal::ExponentNeg2Enum) //ASK_1 - 26, ASK - 25

    .complete()), ibmHandle);

    I changed the values of BID and ASK to 5.21, and 5.22 respectively.

    Therefore, we will know that the values retrieved by the consumer is from the refresh message or update message.

  • thanks
    will share this with the client

  • Leo_T
    Leo_T Newcomer

    hi, this issue is raised for us, we have changed to values and it does not seem to be working, we check in workspace, the rate was not updated.

    publishing via spreadsheet in the same machine is working.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Leo_T

    Normally Developer Community Forum is for how-to/general questions but your question seems to be more complex and requires investigation e.g. review source code, configurations, try to reproduce the problem etc.

    I recommend you raise a query through the premium support service (RDC). If you are a named user of that service you should see a link "Contact Premium Support" when you are logged into the developer portal.

    If you couldn't see the "Contact Premium Support" button, please contact your LSEG account team or sales team directly and ask for the RDC subscription.