question

Upvotes
Accepted
22 7 9 11

EMA API Reissue not working

Hi Refinitiv Support,

I have a use case where I open a streaming request for an item with 2 fields. After some time, I add 2 more fields to the item and invoke reissue on the consumer passing in the original item handle. The reissue is getting ignored as I still continue to receive only the initial 2 fields. I debuged and observed that the reissue request is throwing "reissue not allowed on an openstream" exception.

I checked the user guide and it appears you can invoke reissue this way without explicitly closing the stream.

Any idea what am doing wrong? Am using Java.

Regards,

josa

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
Accepted
22 7 9 11

Hi @Wasin Waeosri,

This is working now after I upgraded from version 3.2.0.1 to 3.3.0.1. Please close the ticket.

Regards,

josa

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Upvotes
11.5k 16 7 10

Hello @josa

I did a quick test with EMA Java 3.4.0 (ESDK - Java 1.4.0) example360_MarketPrice_View example application. The example can send a reissue request and receive new set of fields successfully.

My main Consumer.java function:

AppClient appClient = new AppClient();
consumer  = EmaFactory.createOmmConsumer(EmaFactory.createOmmConsumerConfig().host("172.20.33.30:14002").username("user"));
appClient.setOmmConsumer(consumer);

ElementList view = EmaFactory.createElementList();
OmmArray array = EmaFactory.createOmmArray();
array.fixedWidth(2);

array.add(EmaFactory.createOmmArrayEntry().intValue(22)); //BID
array.add(EmaFactory.createOmmArrayEntry().intValue(25)); //ASK

view.add(EmaFactory.createElementEntry().uintValue(EmaRdm.ENAME_VIEW_TYPE, 1));
view.add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_VIEW_DATA, array));

consumer.registerClient(EmaFactory.createReqMsg().serviceName("ELEKTRON_AD").name("/EUR=").payload(view), appClient);

My AppClient class:

public void onRefreshMsg(RefreshMsg refreshMsg, OmmConsumerEvent event){
...
if (refreshMsg.state().streamState() == OmmState.StreamState.OPEN && refreshMsg.state().dataState() == OmmState.DataState.OK && !hasFirstRefresh ){
   System.out.println("Receive First Refresh!!");
   ElementList view = EmaFactory.createElementList();
   OmmArray array = EmaFactory.createOmmArray();

   array.fixedWidth(2);
   array.add(EmaFactory.createOmmArrayEntry().intValue(22)); //BID
   array.add(EmaFactory.createOmmArrayEntry().intValue(25)); //ASK
   array.add(EmaFactory.createOmmArrayEntry().intValue(15)); //CURRENCY 
   array.add(EmaFactory.createOmmArrayEntry().intValue(11)); //NETCHNG_1

   view.add(EmaFactory.createElementEntry().uintValue(EmaRdm.ENAME_VIEW_TYPE, 1));
   view.add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_VIEW_DATA, array));

   _ommConsumer.reissue(EmaFactory.createReqMsg().serviceName("ELEKTRON_AD").name("IBM.N").payload(view), event.handle());

   System.out.println("Reissue Sent!!!");
   hasFirstRefresh = true;
   }
}

Result:

Item Name: /EUR=
Service Name: ELEKTRON_AD
Item State: Open / Ok / None / 'All is well'
Fid: 22 Name = BID DataType: Real Value: 1.1009
Fid: 25 Name = ASK DataType: Real Value: 1.1013
Receive First Refresh!!
Reissue Sent!!!
Item Name: /EUR=
Service Name: ELEKTRON_AD
Item State: Open / Ok / None / 'All is well'
Fid: 11 Name = NETCHNG_1 DataType: Real Value: 0.0011
Fid: 15 Name = CURRENCY DataType: Enum Value: USD
Fid: 22 Name = BID DataType: Real Value: 1.1009
Fid: 25 Name = ASK DataType: Real Value: 1.1013


Could you please share your EMA Java version, you reissue source code and the XML trace file when the problem occurs?

You can enable the EMA Java trace messages by setting <XmlTraceToStdout value="1"/> in the EmaConfig.xml file.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea