question

Upvotes
Accepted
45 1 3 6

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

treprfarfa-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.

1 Answer

Upvote
Accepted
9.5k 10 5 7

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
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