call OmmCosumer.registerClient second time, handle does not change in feeder service

Options
Jianping
Jianping Newcomer
edited June 13 in EMA

let me describe the issue in steps with pseudo code:

  1. in Consumer App, call

OmmConsumer.registerClient(reqMsgA, testConsumerClient, closure); // ric A

OmmConsumer.registerClient(reqMsgB, testConsumerClient, closure); // ric B

2. in Data feed service, OmmProviderClient.onReqMsg receives 1st OmmProviderEvent.handle, say 2, which is specific to the ric A.

2a. in onReqMsg, reply with RefreshMsg

3. in Data feed service, OmmProviderClient.onReqMsg receives 2nd OmmProviderEvent.handle, the handle has not changed, it is still 2

Issue:

In step 3, the handle should NOT be 2, but other number, which is specific to different Ric B

If I add a Thread.sleep(100) in Step 1 between the two registerClient, so that RefreshMsg of ric A can be received by the consumer, then the handle is set to 3 other than 2.

I hope the explanation is clear.

Thanks

Jianping

Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @Jianping

    Please also provide the following information.

    1. Are you using snapshot requests?
    2. Is it a direct connection or are you using RTDS (ADH or ADS)?
    3. Please share the xml trace file of the provider application. You can enable the tracing by using the XmlTraceToFile configuration. For example:
        <DefaultIProvider value="Provider_1"/>
        <IProviderList>
    		<IProvider>		
    			<Name value="Provider_1"/>
    		
    			<Server value="Server_1"/>
    			
    			<Directory value="Directory_2"/>
    			<ItemCountHint value="10000"/>
    			<ServiceCountHint value="10000" />
    			<DispatchTimeoutApiThread value="500" />
    			<MaxDispatchCountApiThread value="500" />
    			<MaxDispatchCountUserThread value="500" />
    			<RefreshFirstRequired value="1" />
    			<XmlTraceToFile value="1"/>
    		</IProvider>

Answers