NON-STREAMING (snapshot) mode not detected by the ADS

Hi,

with rfaj7.2.1.L1, I am developing a Batch Market Feed Consumer. I set the Indication Flag NONSTREAMING (snapshot mode), but on the ADS, the connection is displayed as normal open.

Please find in the attachment the request and the screenshot of the ADS. As you can see, the normalOpens = 857 and the snapshotOpens = 0.

Can you explain me if I miss something in the configuration, or if the error is due to a misinterpretation of the ADS?

Thanks in advance

Best regards

screenshot-ads.png

requestmessage.txt

Tagged:

Best Answer

  • zoya faberov
    zoya faberov ✭✭✭✭✭
    Answer ✓

    @Gabriele.Casalinuovo

    Suggestion, JRFA 7.2 comes with BatchVewCons example.

    If you change only the indication in request:

    int indicationFlags = OMMMsg.Indication.NONSTREAMING; //OMMMsg.Indication.REFRESH; 

    And pass on the command line -sendReissue false (in order not to see reissues)

    You should be able to test with batch+snapshot, and know if your infra supports it?

Answers

  • You must also set the REFRESH indication flag on your request message:

    Indication Flags: NONSTREAMING | REFRESH | BATCH_REQ

    Also beware that the Batch feature is a licensable feature of the ADS. You may not have that feature on your site.

    If the Batch feature is not available on the ADS to which you connect then the RFA library will simulate it. This blurs the picture somewhat. If you turn on message tracing at the ipcTrace level then you will always see a trace of the messages exactly as they are on wire. If RFA simulates the Batch request feature on your behalf then it will do so by converting the batch request into individual requests. In other words: if your attached message trace is from turning on ipcTraceFlags then it must mean that your ADS does indeed support Batch feature.

  • Thanks for your answer.

    This kind of request:

    MESSAGE
    Msg Type: MsgType.REQUEST
    Msg Model Type: MARKET_PRICE
    Indication Flags: NONSTREAMING | REFRESH | BATCH_REQ
    Hint Flags: HAS_ATTRIB_INFO | HAS_PRIORITY
    Priority: 1,1
    AttribInfo
    ServiceName: IDN_SELECTFEED
    NameType: 1 (RIC)
    Payload: None

    results in the application hanging, as the callback:

    @Override
    public void processEvent(Event event)

    is not been called.

    Then at the closeup of the connection, the following error is produced:

    Close Request ItemManager: Batch Close has no valid handles in the request.

    Either I have to put REFRESH either the NONSTREAMING indication flag.

    Best regards

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    Can you use RFA Java tracing by setting ipcTraceFlags to 15 on the RSSL connection in the configuration. With this configuration, RFA_RSSL*.log will be created in the application's current directory. Then, please attach the trace file when the problem occurred.

  • @Gabriele.Casalinuovo

    Regarding the request message you provided, I have noticed that the request doesn't have payload (Payload: None). This could be the cause, since batch request requires payload which contains array of item names to be requested. Please verify your application's logic which encodes the item list in batch request message. For code's example, please see the StarterConsumer_BatchView example in RFA Java package.

  • To add on top of Zoya's answer, not only RFA Java 7.2 that carries the BatchViewCons example, but onward versions also contain BatchViewCons example as well. It will be the useful tool to test the Batch feature

    image

    image

    Hope this helps!