rmdstestclient invalid request

Hi,

We are developing a RSSL provider in RFA 8.
When we subscribe to a valid instrument with the rmdstestclient an connect to this provider we receive all related fields.
When I subscribe to an invalid instrument with the same rmdstestclient we do NOT receive any (status) info in the application itself.

Server: 1.2.3.4
Source: SOURCE1
Prot: rssl
Port: 20406
Number of Connection Count = 1
Creating RSSL connection Host: 1.2.3.4 Port: 20406
UPA server component version: rfa8.1.0.linux.eload 64-bit
Setting rmds connection 0x28e7ec0
Connection list count is 1
SupportBatchRequests Initial Open: Yes
SupportBatchRequests Reissue: Yes
SupportBatchClose: Yes

In the log (I use rmdstestclient with the -l parameter) however I do see the "error" message:
NOT_ENTITLED: Request not allowed. Account is not entitled for namespace 'test', which is good.

Received source directory response. <!-- rwfMajorVer="14" rwfMinorVer="0" --> <requestMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="5" containerType="RSSL_DT_NO_DATA" flags="0x4C (RSSL_RQMF_STREAMING|RSSL_RQMF_MSG_KEY_IN_UPDATES|RSSL_RQMF_HAS_QOS)" qosDynamic="0" qosRate="1" qosTimeliness="1" dataSize="0"> <key flags="0x3 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME)" serviceId="1" name="INVALIDRIC"/> <dataBody> </dataBody> </requestMsg> sendOpenRequest():

Writing open of size 33.
<!-- rwfMajorVer="14" rwfMinorVer="0" -->
<statusMsg domainType="RSSL_DMT_MARKET_PRICE" streamId="5" containerType="RSSL_DT_NO_DATA" flags="0x28 (RSSL_STMF_HAS_MSG_KEY|RSSL_STMF_HAS_STATE)" dataState="RSSL_DATA_SUSPECT" streamState="RSSL_STREAM_CLOSED" code="RSSL_SC_NONE" text="<NOT_ENTITLED: Request not allowed. Account is not entitled for namespace 'test'.>" dataSize="0"> <key flags="0x7 (RSSL_MKF_HAS_SERVICE_ID|RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE)" serviceId="1" name="INVALIDRIC" nameType="1"/> <dataBody> </dataBody> </statusMsg>

So the "error" message is sent by the profider but will not show up in rmdstestclient.
I wonder if we do send the correct containerType, dataState, streamState, flag etc.. or am I missing something, or is this a normal behavior of the rmdstestclient.

Thanks in advance.

Bas

Best Answer

  • umer.nalla
    Answer ✓

    Hi @bas.hagen

    You can get rmdstestclient to output any Status messages to the console by enabling the interval Statistics display - which outputs stats for update rates, images received etc

    e.g.

    rmdstestclient -S ELEKTRON_DD -f vodrics -h ads1 -p 14002 -ct rssl -u umer.nalla -I 1  -l log.out

    The above will log the data and output statistics every 1 second - and this will include any statusmsgs received .

    The relevant parameter is '-I 1' - capital letter i and 1 for the interval.

    The above gives me the following output:

    ......
    Received Enum Dictionary refresh message (Data Length: 126428).
    updr 0.00 updl 0 imgr 0.00 imgl 0
    Status Received <1> Status Text: Closed Status for Item VOD.L Text: The record could not be found
    updr 0.00 updl 0 imgr 0.00 imgl 0
    .......

Answers

  • Hi @bas.hagen

    A Status Msg is an event just like a data event, so it is logged to the file like the other events - it is not an Error message - as technically there is no application level error situation.

    You are using the application to connect to a server and establish event streams for various items by requesting them from the server. If the server rejects a particular request it returns a Status event for that particular stream and closes the stream.

    In a normal consumer application, the developer would have a Status msg / event handler and act on the Status accordingly .e.g. log to a file or inform the user and so on.

  • Thanks for your quick response @Umer Nalla.
    So if I understand you correctly, it is a normal behavior that the status msg (rejection of the invalid instrument) is not shown in the rmdstestclient application itself and only appears in the log, right?

  • Hi @Umer Nalla, thank you very much. Very helpful!

  • Your welcome. Please consider accepting the relevant answer for the benefit of other users searching the forum.

    Thanks!