Permissioned data

Hi

We use RFA API to get data from RMDS data. If i query for a ric which i am not permissioned for, I get "record not service permissioned" exception. We currently parse the output looking this text and display this back to the users. Is there an error code we can rather use instead of the text

Thanks

Prakash

Tagged:

Best Answer

  • Hello @prakash.chellappa

    Normally, if the application fails to subscribe a RIC, it
    will get a status message with the failure’s info in the State part(OMMState).

    OMMState has four parts:

    1. byte StreamState
    2. byte DataState
    3. short StatusCode
    4. Variable Status Text String

    For
    example:

    State: CLOSED, SUSPECT, NOT_ENTITLED, "Record not service permissioned"

    You can get the StatusCode of the state using com.reuters.rfa.omm.OMMState.getCode() which returns the short type. To covert the Code to the meaning text, use com.reuters.rfa.omm.OMMState.Code.toString(Code).

    The example snipped RFA Java application source code to
    print the StatusCode in a text:

    if(respMsg.getMsgModelType() == RDMMsgTypes.MARKET_PRICE
    && respMsg.getMsgType() == OMMMsg.MsgType.STATUS_RESP)
    {
    System.out.println("Code is " + OMMState.Code.toString(respMsg.getState().getCode()));
    }

    The example output:

    Code is NOT_ENTITLED

    For more details of OMMState and OMMState.Code, please refer to

    <RFA Java Package>\Docs\refman\rfajava\com\reuters\rfa\omm\OMMState.html and

    <RFA Java Package>\Docs\refman\rfajava\com\reuters\rfa\omm\OMMState.Code.html respectively.

    However, one code can be used with several text strings. For
    example:

    Code: NOT_ENTITLED, Text: Access Denied-already using
    position 10.105.85.40

    Code: NOT_ENTITLED, Text: Record not service permissioned

    It is better if the
    application prints both the Code and the text. Hence, you can understand correctly
    what the error is. For example:

    if(respMsg.getMsgModelType() == RDMMsgTypes.MARKET_PRICE
    && respMsg.getMsgType() == OMMMsg.MsgType.STATUS_RESP)
    {
    System.out.println("Failed subscribing of a RIC named " +respMsg.getAttribInfo().getName() + " with Code=" + OMMState.Code.toString(respMsg.getState().getCode()) + " text="+respMsg.getState().getText());
    }

    The example output:

    Failed subscribing of a RIC named IBM.N with Code=NOT_ENTITLED text=Record not service permissioned