question

Upvotes
Accepted
1 0 0 2

UPA NIProvider application throws java exception

Hi all,

My name is Sarun from ET 3rd level support. ET product is able to consume MarketByVolume rate from OMM feed. Therefore, ET bank normally writes their own application to feed MarketByVolume rate to ET.

This also applies to the client, the ET bank that implement their feed application based on NIProvider. The Bank (SB) usually mentions that when the application runs for a while, there is an error thrown from UPA.

Therefore, I need a consult from the community for a possible cause. Here is an error shown in the application log.

2019-09-10 09:11:09,049 ERROR [com.sb.ec.upa.runtime.UpaCtxImpl] - Error in call context UpaCtx [error=null]: com.sb.ec.upa.UpaException
2019-09-10 09:11:09,049 ERROR [com.sb.ec.upa.common.UpaChannelSession] - Error encoding message: com.sb.ec.upa.udm.marketbyvolume.VectorPriceUpdateMsg@c75e488 <{}>
2019-09-10 09:11:09,049 ERROR [com.sb.ec.util.concurrent.ConflatingFunnel] - Failed to consume item
com.sb.ec.upa.UpaException: null
    at com.sb.ec.upa.runtime.UpaCtxImpl.throwException(UpaCtxImpl.java:90) ~[SB-upa-2.26.0.jar:?]
    at com.sb.ec.upa.common.UpaChannelSession.write(UpaChannelSession.java:650) ~[SB-upa-2.26.0.jar:?]
    at com.sb.ec.upa.common.UpaChannelSession.send(UpaChannelSession.java:549) ~[SB-upa-2.26.0.jar:?]
    at com.sb.ec.upa.niprovider.NIProvider.lambda$null$4(NIProvider.java:242) ~[SB-upa-2.26.0.jar:?]
    at com.sb.ec.upa.ext.PriceProvider.lambda$null$8(PriceProvider.java:42) ~[SB-upa-2.26.0.jar:?]
    at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_74]
    at com.sb.ec.upa.ext.PriceProvider.lambda$subscribe$9(PriceProvider.java:37) ~[SB-upa-2.26.0.jar:?]
    at com.sb.ec.pricing.retladderedpublisher.service.Subscription.push(Subscription.java:35) ~[Pricing-RetLadderedPublisher-2.26.0.jar:?]
    at com.sb.ec.pricing.retladderedpublisher.service.SpotFxPriceLadderSource.lambda$start$1(SpotFxPriceLadderSource.java:45) ~[Pricing-RetLadderedPublisher-2.26.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel.notifyListener(ConflatingFunnel.java:143) ~[Pricing-Common-5.5.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel.consumeWaitingItem(ConflatingFunnel.java:135) ~[Pricing-Common-5.5.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel.consumeWaitingItem(ConflatingFunnel.java:126) ~[Pricing-Common-5.5.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel.consumeWaitingItems(ConflatingFunnel.java:112) ~[Pricing-Common-5.5.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel.access$000(ConflatingFunnel.java:18) ~[Pricing-Common-5.5.0.jar:?]
    at com.sb.ec.util.concurrent.ConflatingFunnel$1.run(ConflatingFunnel.java:98) ~[Pricing-Common-5.5.0.jar:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]



elektronelektron-sdktreprrteta-apielektron-transport-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.

Upvote
Accepted
11.5k 16 7 10

Hello @Sarun

The given exception message seems to be generated from the application source code, not the ETA API. The "com.sb.ec" package is not official UPA/ETA API package (ETA package is "com.thomsonreuters.upa").

Does the application use a modification of ETA open source code? Please confirm with the client.

Please note that the client can submit a ticket to Development team directly via GitHub issue page.

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.

Hi @Wasin, Thanks for looking into this. Yes, the client implement the application on top of UPA package. Therefore, the package name is arranged as com.sb.ec.

Hi All

My concern is my customer wouldn't want to reveal source code on that github page. Please advise the proper support channel where I can upload customer's source code.

regards,
Tor.

private void consumeWaitingItem(final T item, final int producerId) {
if (item == null) {
return;
}
try {
notifyListener(item, producerId);
}
catch (final Exception ex) {
LOG.error("Failed to consume item", ex);
}
}
Upvote
7.6k 15 6 9

@Sarun

MarketByVolume seems to be data from Matching Server so I guess that client currently uses MAPI or Matching API provided by transaction dev team and they do not use UPA API directly so you should contact MAPI support team instead.

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.

Hi Morahodkrit,

Thanks for your suggestion. However, it is by designed that the ET application consume the MarketByVolume data. It does not come from Matching Server, but it is client generated price. Therefore, it is advised to use UPA from the beginning.


Upvotes
23k 22 9 14

Hello @Sarun,

This forum is dedicated to general questions and discussions of Refintiiv API.

If we can guide a customer to a solution within the format of the forum, we, moderators of this forum, always strive to help.

In the case if a customer needs an in-depth review of their code, reproduction of an issue within a long-running application, or exchange of a private information, this type of scenario can be best addressed by Refinitiv Premium Support, also known as Refinitiv Developer Connect.

If the customer is already a member of RDC, please advise them to have their RDC users to open a premium support case providing all the relevant information, and a dedicated API expert will be assigned to work on the support case.

If they are not, please have the contact their Refinitiv account team about becoming an RDC member.

I hope these details are of help.

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