Getting "Cannot request snapshot batch or dynamic view due to unavailable SNAP_AND_DYNAMIC_VIEW lice

Hi everyone,

I'm trying to get market data prices via WebSocket API. While i'm trying to reach to the datas i get "Cannot request snapshot batch or dynamic view due to unavailable SNAP_AND_DYNAMIC_VIEW license" error as i said above. Why am i getting this error? I'm using the 'View' feature of the API and I added "BID" and "ASK" values to the View which i need the market price of.

Here's my response:

[{"ID":1,"Type":"Status","Key":{"Service":"IDN_RDF","Name":"TRY="},"State":{"Stream":"Closed","Data":"Suspect","Code":"AlreadyOpen","Text":"Request Rejected: Cannot request snapshot batch or dynamic view due to unavailable SNAP_AND_DYNAMIC_VIEW license."}}]

Thanks.

Best Answer

Answers

  • Hi @betul.simsek, ADS requires additional license for providing dynamic views. Can you please check with your market data administrator, if this is enabled on your ADS.

  • Hi @Gurpreet.,

    As you said we've licensed our servers and tried again. But now we're getting another error. Our request and reponse messages are below. Can you check and tell us what's wrong with our request?

    Thanks a lot.

    request:

    {"ID":1,"Domain":"MarketPrice","Key":{"Name":"TRYTOM=D3","Service":"IDN_RDF"},"Streaming":true,"View":["BID","ASK"]}

    reponse:

    [{"ID":1,"Type":"Status","Key":{"Service":"IDN_RDF","Name":"TRYTOM=D3"},"State":{"Stream":"ClosedRecover","Data":"Suspect","Text":"Json conversion error."}}]

  • I tried submitting this request after modifying for our infrastructure and got following response:

    {
    "ID": 2,
    "Domain": "MarketPrice",
    "Key": {
    "Name": "IBM.N",
    "Service": "IDN_SELECTFEED"
    },
    "Streaming": true,
    "View": [
    "BID",
    "ASK"
    ]
    }
    RECEIVED:
    [
    {
    "ID": 2,
    "Type": "Refresh",
    "Key": {
    "Service": "IDN_SELECTFEED",
    "Name": "IBM.N"
    },
    "State": {
    "Stream": "Open",
    "Data": "Ok",
    "Text": "All is well"
    },
    "Qos": {
    "Timeliness": "Realtime",
    "Rate": "TickByTick",
    "Dynamic": true
    },
    "PermData": "AwAXYsA=",
    "SeqNumber": 64192,
    "Fields": {
    "BID": 157.52,
    "ASK": 157.54
    }
    }
    ]

    Are you using the latest WebSocket API? Try this with the sample applications in downloads package.

  • If you are using one of the example applications, can you please tell which language you are using.

  • @betul.simsek

    Can you change the ID of MarketPrice request to 2?

    Basically the ID was designed for representing the event stream. It can also be used to match the request and responses. Our example use ID 1 for Login request so if you set the same ID for MarketPrice request it may cause the issue.

    I did quick test your json data with node.js example market_price_batch_view.js and change the ID to 2 and it works like Gurpreet said.

  • Hi @Gurpreet. @moragodkrit

    We set ID to 2 but the response is same .

    Our request:

    {"ID":2,"Domain":"MarketPrice","Key":{"Name":"TRYTOM=D3","Service":"IDN_RDF"},"Streaming":true,"View":["BID","ASK"]}

    Response:

    [{"ID":2,"Type":"Status","Key":{"Service":"IDN_RDF","Name":"TRYTOM=D3"},"State":{"Stream":"ClosedRecover","Data":"Suspect","Text":"Json conversion error."}}]

    It like a json conversion error. Can you check the Reuters server which we connect can parse our request?

  • You didn't provide all the information. Which language are you using, and did you build the application or using one of the samples.

    Here is the response in NodeJS - market_price_batch_view.js

    SENT:
    {
    "ID": 2,
    "Domain": "MarketPrice",
    "Key": {
    "Name": "TRYTOM=D3",
    "Service": "IDN_SELECTFEED"
    },
    "Streaming": true,
    "View": [
    "BID",
    "ASK"
    ]
    }
    RECEIVED:
    [
    {
    "ID": 2,
    "Type": "Refresh",
    "Key": {
    "Service": "IDN_SELECTFEED",
    "Name": "TRYTOM=D3"
    },
    "State": {
    "Stream": "Open",
    "Data": "Ok",
    "Text": "All is well"
    },
    "Qos": {
    "Timeliness": "Realtime",
    "Rate": "TickByTick"
    },
    "PermData": "AwAXZAw=",
    "SeqNumber": 51086,
    "Fields": {
    "BID": 3.7986,
    "ASK": 3.8
    }
    }
    ]
    RECEIVED:
    [
    {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
    "Service": "IDN_SELECTFEED",
    "Name": "TRYTOM=D3"
    },
    "SeqNumber": 51102,
    "Fields": {
    "BID": 3.7986,
    "ASK": 3.7999
    }
    }
    ]
  • Hi @Gurpreet.

    We are using sample code. It is written with Java script. You can find the code as attached.tr-websocket.zip

    In websocket , is the language important? when we connect another websocket suppliyer (eg Foreks), we can use javascript or c#.

    Additionally, When I changed the RIC to USD I receive

    [{"ID":1,"Type":"Status","Key":{"Service":"IDN_RDF","Name":"USD"},"State":{"Stream":"Closed","Data":"Suspect","Code":"NotEntitled","Text":"Record not service permissioned"}}]

    I think Reuters websocket server can not resolve '=' char. Bu all of the RICS which we are using include '=' char.

  • Hi @zoya.farberov

    When I changed the RIC to USD I receive

    [{"ID":1,"Type":"Status","Key":{"Service":"IDN_RDF","Name":"USD"},"State":{"Stream":"Closed","Data":"Suspect","Code":"NotEntitled","Text":"Record not service permissioned"}}]

    I think Reuters websocket server can not resolve '=' char. Bu all of the RICS which we are using include '=' char.

  • There is no source code in the zip file that you attached.

    Like I mentioned in the previous reply - the Javascript market_price_batch_view.js example with TRYTOM=D3 is able to successfully subscribe and get data. See the refresh and update messages in previous post.

    Have you tried using this sample?

  • Sorry for empty Project, I attached again.tr-websocket1.zip

    I haven't tried you market_price_batch_view.js example yet. I will try it.

  • @sabri demirel

    Please comment out the line# 232 in TRWebSocketController.js:

    // marketPrice.Key.Service = "IDN_RDF";// "IDN_RDF";

    and try again with your original item: TRYTOM=D3

    The sample is hardcoded to request data on IDN_RDF, and ignoring the service name argument passed in the call. I will request sample author to update the sample.

  • Hi @Gurpreet.

    Are you sure about Service? In your example;

    "Key": {
    "Service": "IDN_SELECTFEED",
    "Name": "TRYTOM=D3"
    },

    TRYTOM=D3 is name not Service, Our Service is IDN_RDF

  • Hi @Gurpreet.

    I try to get data with your WebSocketsAPI_TryitNow_Doc sample.

    I get screenshots you can find them as attachment. Also the send an received messages are

    SENT:
    {
    "ID": 1,
    "Domain": "Login",
    "Key": {
    "Name": "rdc02",
    "Elements": {
    "ApplicationId": "256",
    "Position": "127.0.0.1"
    }
    }
    }
    RECEIVED:
    [
    {
    "ID": 1,
    "Type": "Refresh",
    "Domain": "Login",
    "Key": {
    "Name": "rdc02",
    "Elements": {
    "AllowSuspectData": 1,
    "ApplicationId": "256",
    "ApplicationName": "ADS",
    "Position": "127.0.0.1",
    "ProvidePermissionExpressions": 1,
    "ProvidePermissionProfile": 0,
    "SingleOpen": 1,
    "SupportEnhancedSymbolList": 1,
    "SupportOMMPost": 1,
    "SupportPauseResume": 0,
    "SupportStandby": 0,
    "SupportBatchRequests": 7,
    "SupportViewRequests": 1,
    "SupportOptimizedPauseResume": 0
    }
    },
    "State": {
    "Stream": "Open",
    "Data": "Ok",
    "Text": "Login accepted by host KLREUMLP01."
    },
    "Elements": {
    "PingTimeout": 30,
    "MaxMsgSize": 61430
    }
    }
    ]
    RECEIVED:
    [
    {
    "Type": "Ping"
    }
    ]
    SENT:
    {
    "Type": "Pong"
    }
    SENT:
    {
    "ID": 2,
    "Key": {
    "Name": "EUR="
    }
    }
    RECEIVED:
    [
    {
    "ID": 2,
    "Type": "Status",
    "Key": {
    "Service": "IDN_RDF",
    "Name": "EUR="
    },
    "State": {
    "Stream": "ClosedRecover",
    "Data": "Suspect",
    "Text": "Json conversion error."
    }
    }
    ]

    reuters-websocket.zip

  • @betul.simsek

    I can replicate the issue by configuring ADS to use SSL protocol instead of RSSL protocol

    *ads*routeList : hostssl
    *ads*hostssl.route*serviceList : IDN_RDF
    *ads*hostssl.route*port : rmds_ssl_sink
    *ads*hostssl.route*hostList : 192.168.27.48
    *ads*hostssl.route*userName : DACS_CASCADE
    *ads*hostssl.route*protocol : sslauto
    *ads*hostssl.route*singleOpen : True
    *ads*hostssl.route*compressionType : 1
    *ads*hostssl.route*pingInterval : 2

    The routeList uses hostssl route which connects to rmds_ssl_sink port with sslauto protocol.

    You need to configure ADS to use RSSL protocol instead, as shown below.

    *ads*routeList : hostrssl
    ...

    *ads*hostrssl.route*serviceList : ELEKTRON_DD
    *ads*hostrssl.route*port : rmds_rssl_sink
    *ads*hostrssl.route*hostList : 192.168.27.46
    *ads*hostrssl.route*userName : DACS_CASCADE
    *ads*hostrssl.route*protocol : rssl
    *ads*hostrssl.route*singleOpen : True
    *ads*hostrssl.route*allowSuspectData : True
    *ads*hostrssl.route*disableDataConversion : True
    *ads*hostrssl.route*compressionType : 1

    The routeList of the above configurations uses hostrssl route which connect to rmds_rssl_sink port with rssl protocol.

    Please change routeList to use rssl route protocol. If it doesn't solve the problem, please share the following information:

    • The version of ADS
    • The ADS configuration file
  • A community member found a solution of this issue by changing the dataType of IDN_RDF from 2 to 6 in ads_pop.cnf.

    *ads*IDN_RDF*dataType : 6

    dataType 2 is a legacy standard Marketfeed Record format while 6 is RWF (Reuters Wire Format).

    The data type of service for Web Socket API must be 6 (RWF).

  • Hi @Gurpreet.,

    @moragodkrit

    We can get data via websocket now. The problem was our Reuters server configuration. It solved by Reuters Istanbul.

    We have another problems now;

    I have to get the initials values of a RIC. But Reuters server send to us only the updates after we send request. For example; If there isn't any update for 60 seconds , we can not get any response. How we can get the initial values?

    Second problem is for TRYTOM=D3 Rıc. For this RIC the response is not valid, we cannot parse the json response.

    The Response:

    [{

    "ID": 4,

    "Type": "Refresh",

    "Key": {

    "Service": "IDN_RDF",

    "Name": "TRYTOM=D3"

    },

    "State": {

    "Stream": "Open",

    "Data": "Ok",

    "Text": "All is well"

    },

    "Qos": {

    "Timeliness": "Realtime",

    "Rate": "TickByTick"

    },

    "PermData": "AwJYZAw=",

    "SeqNumber": 25744,

    "Fields": {

    "PROD_PERM": 640,

    "RDNDISPLAY": 153,

    "DSPLY_NAME": "TR Matching SPOT",

    "RDN_EXCHID": " ",

    "TIMACT": "07:17:00",

    "TRDPRC_1": null,

    "NETCHNG_1": -0.0018,

    "HIGH_1": 3.9005,

    "LOW_1": 3.8920,

    "CURRENCY": " ",

    "TRADE_DATE": null,

    "ACTIV_DATE": "2018-03-16",

    "TRDTIM_1": null,

    "OPEN_PRC": 3.8974,

    "HST_CLOSE": 3.8963,

    "BID": 3.8943,

    "BID_1": 3.8944,

    "BID_2": 3.8944,

    "ASK": 3.8960,

    "ASK_1": 3.8960,

    "ASK_2": 3.8964,

    "NEWS": " ",

    "NEWS_TIME": null,

    "BIDSIZE": null,

    "ASKSIZE": null,

    "ACVOL_1": null,

    "TRD_UNITS": "4DP ",

    "PCTCHNG": -0.0500,

    "OPEN_BID": 3.8939,

    "CLOSE_BID": 3.8939,

    "CLOSE_ASK": 3.8974,

    "MATUR_DATE": null,

    "NUM_MOVES": 99,

    "OFFCL_CODE": "0 ",

    "HSTCLSDATE": "2018-03-15",

    "YRHIGH": 3.9054,

    "YRLOW": 3.7161,

    "BOND_TYPE": "OTH",

    "BCKGRNDPAG": "****",

    "PUTCALLIND": "CALL",

    "BID_NET_CH": null,

    "BID_TICK_1": "⇧",

    "DAYS_MAT": null,

    "MID_PRICE": null,

    "MID_NET_CH": null,

    "TRDVOL_1": null,

    "HIGHTP_1": "b",

    "LOWTP_1": "b",

    "BID_HIGH_1": 3.8995,

    "BID_LOW_1": 3.8915,

    "YRBIDHIGH": null,

    "YRBIDLOW": null,

    "HST_CLSBID": null,

    "HSTCLBDDAT": null,

    "YRBDHI_IND": " ",

    "YRBDLO_IND": " ",

    "NUM_BIDS": 1567,

    "RECORDTYPE": 209,

    "ACT_TP_1": " b",

    "ACT_TP_2": " s",

    "ACT_TP_3": " b",

    "SEC_ACT_1": null,

    "SEC_ACT_2": null,

    "SEC_ACT_3": null,

    "SC_ACT_TP1": " ",

    "SC_ACT_TP2": " ",

    "SC_ACT_TP3": " ",

    "OPEN_TIME": "21:00:00",

    "HIGH_TIME": "01:07:00",

    "LOW_TIME": "06:42:00",

    "SETTLEDATE": null,

    "YRHIGHDAT": "2018-03-15",

    "YRLOWDAT": "2018-01-25",

    "RT_YIELD_1": null,

    "YLD_NETCHG": null,

    "OPEN_YLD": 3.8830,

    "HIGH_YLD": 3.9054,

    "LOW_YLD": 3.8770,

    "HST_CLSYLD": null,

    "IRGPRC": null,

    "TIMCOR": "07:17:26",

    "PRIMACT_1": 3.8945,

    "PRIMACT_2": 3.8944,

    "PRIMACT_3": 3.8950,

    "BEST_BID1": 3.8995,

    "BEST_BID2": 3.8995,

    "BEST_BID3": 3.8990,

    "BEST_BID4": 3.8990,

    "BEST_BID5": 3.8990,

    "BEST_ASK1": 3.8935,

    "BEST_ASK2": 3.8939,

    "BEST_ASK3": 3.8940,

    "BEST_ASK4": 3.8940,

    "BEST_ASK5": 3.8940,

    "BCAST_REF": "TR-(FX|1) ",

    "BEST_BSIZ1": null,

    "BEST_BSIZ2": null,

    "BEST_BSIZ3": null,

    "BEST_BSIZ4": null,

    "BEST_BSIZ5": null,

    "BEST_ASIZ1": null,

    "BEST_ASIZ2": null,

    "BEST_ASIZ3": null,

    "BEST_ASIZ4": null,

    "BEST_ASIZ5": null,

    "DEALT_VL1": null,

    "DEALT_VL2": null,

    "DEALT_VL3": null,

    "LONGLINK1": null,

    "DVOL1_SC": " ",

    "DVOL2_SC": " ",

    "DVOL3_SC": " ",

    "CROSS_SC": "1E+00",

    "DLG_CODE1": ,

    "DLG_CODE2": ,

    "DLG_CODE3": ,

    "CTBTR_1": "D3000 SPOT ",

    "CTBTR_2": "D3000 SPOT ",

    "CTBTR_3": "D3000 SPOT ",

    "CTB_LOC1": ,

    "CTB_LOC2": ,

    "CTB_LOC3": ,

    "CTB_PAGE1": "D3 ",

    "CTB_PAGE2": "D3 ",

    "CTB_PAGE3": "D3 ",

    "OFF_CD_IND": " ",

    "PREMIUM": 3.9055,

    "VALUE_DT1": "2018-03-16",

    "VALUE_DT2": "2018-03-16",

    "VALUE_DT3": "2018-03-16",

    "WTD_AVE1": null,

    "SEC_HIGH": 3.9005,

    "SEC_HI_TP": " ",

    "SEC_LOW": 3.8930,

    "SEC_LO_TP": " ",

    "OPEN_TYPE": " ",

    "CLOSE_TYPE": " ",

    "BKGD_REF": "DEALT1",

    "CTBTR_BKGD": null,

    "ACT_FLAG1": " ",

    "ACT_FLAG2": " ",

    "ACT_FLAG3": " ",

    "SC_AFLAG1": "P",

    "SC_AFLAG2": "P",

    "SC_AFLAG3": "P",

    "SEC_VOL1": null,

    "GEN_TEXT16": "$/TRY+1 D3000 ",

    "GEN_VAL1": 3.8943,

    "GEN_VAL2": null,

    "GEN_VAL3": 3.8960,

    "GEN_VAL4": null,

    "GV1_TEXT": "TOBBid",

    "GV2_TEXT": " 1 ",

    "GV3_TEXT": "TOBAsk",

    "GV4_TEXT": " 1 ",

    "VALUE_TS1": "07:15:50",

    "VALUE_TS2": "07:15:31",

    "VALUE_TS3": "07:15:15",

    "SEQNUM": 3,

    "GV1_DATE": null,

    "GEN_VAL5": 1,

    "GEN_VAL6": 1,

    "GEN_VAL7": 1,

    "GEN_VAL8": 1,

    "GEN_VAL9": 1,

    "GEN_VAL10": 1,

    "GV5_TEXT": " 1 ",

    "GV6_TEXT": " 1 ",

    "GV7_TEXT": "s ",

    "GV8_TEXT": "s ",

    "GV9_TEXT": "b ",

    "GV10_TEXT": "b ",

    "GV1_FLAG": "s",

    "GV2_FLAG": "b",

    "GV3_FLAG": "b",

    "GV4_FLAG": "s",

    "GV2_DATE": null,

    "GN_TXT16_2": ,

    "OFF_CD_IN2": " ",

    "OFFC_CODE2": ,

    "NOMINAL": 3.9047,

    "GV1_TIME": "01:08:01",

    "GV2_TIME": "06:42:47",

    "PREF_DISP": 8245,

    "GN_TXT24_1": ,

    "GN_TXT32_1": ,

    "GN_TXT32_2": ,

    "DSO_ID": 62976,

    "CALL_PRC": 3.8730,

    "CONVEXITY": 3.8800,

    "WEIGHTING": 3.8780,

    "RDN_EXCHD2": "NY$",

    "RIC_DESC": " ",

    "CTBTR_ID1": " ",

    "CTBTR_ID2": " ",

    "CTBTR_ID3": " ",

    "CTBLOC_ID1": " ",

    "CTBLOC_ID2": " ",

    "CTBLOC_ID3": " ",

    "FWD1_PRICE": null,

    "FWD2_PRICE": null,

    "DELTA": 3.9050,

    "GV2A_RTIM1": null,

    "GV2A_RTIM2": null,

    "GV2A_RTIM3": null,

    "GV2B_RTIM1": null,

    "GV2B_RTIM2": null,

    "GV2B_RTIM3": null,

    "IRGFID": null,

    "IRGVAL": null,

    "PREV_DISP": 4013,

    "ASIA_CL_DT": "2018-03-15",

    "ASIA_CLOSE": 3.8888,

    "ASIA_HI_TM": "01:07:00",

    "ASIA_HIGH": 3.9005,

    "ASIA_LOW": 3.8920,

    "ASIA_LW_TM": "06:42:00",

    "ASIA_NETCH": 0.0057,

    "ASIA_OP_TM": "21:00:00",

    "ASIA_OPEN": 3.8974,

    "EURO_CL_DT": "2018-03-15",

    "EURO_CLOSE": 3.8975,

    "EURO_HI_TM": "06:17:00",

    "EURO_HIGH": 3.8980,

    "EURO_LOW": 3.8920,

    "EURO_LW_TM": "06:42:00",

    "EURO_NETCH": -0.0030,

    "EURO_OP_TM": "06:03:00",

    "EURO_OPEN": 3.8974,

    "US_CL_DT": "2018-03-15",

    "US_CLOSE": 3.8963,

    "US_HI_TM": "13:48:00",

    "US_HIGH": 3.9054,

    "US_LOW": 3.8850,

    "US_LW_TM": "11:13:00",

    "US_NETCH": 0.0137,

    "US_OP_TM": "11:00:00",

    "US_OPEN": 3.8980,

    "ASK_SPREAD": null,

    "BID_SPREAD": null,

    "BPV": null,

    "EMAIL_ADRS": ,

    "IND_NEWS": ,

    "MID_1": null,

    "MID_2": null,

    "MID_3": null,

    "MID_SPREAD": null,

    "MONTH_HIGH": 3.9054,

    "MONTH_LOW": 3.7870,

    "PCTCHG_3M": 1.66,

    "PCTCHG_6M": 11.45,

    "PCTCHG_MTD": 2.4329,

    "PCTCHG_YTD": 2.4868,

    "PCTCHG_TRT": null,

    "PCTCHG_INC": null,

    "TERM": null,

    "WEB_ADRS": ,

    "WEEK_HIGH": 3.9054,

    "WEEK_LOW": 3.8065,

    "YTD": null,

    "PROV_SYMB": ,

    "B_BID1_TIM": "01:13:00",

    "B_BID2_TIM": "05:31:00",

    "B_BID3_TIM": "03:22:00",

    "B_BID4_TIM": "05:07:00",

    "B_BID5_TIM": "05:28:00",

    "B_ASK1_TIM": "06:42:00",

    "B_ASK2_TIM": "06:42:00",

    "B_ASK3_TIM": "06:42:00",

    "B_ASK4_TIM": "06:42:00",

    "B_ASK5_TIM": "06:43:00",

    "ASK_HIGH_1": 3.9030,

    "ASK_HI_TME": null,

    "ASK_LOW_1": 3.8935,

    "ASK_LO_TME": null,

    "CCY_NAME": ,

    "FIX_DATE": null,

    "HIGH_2": 3.9005,

    "HIGH_3": 3.9003,

    "HIGH_4": 3.8998,

    "HIGH_5": 3.8995,

    "HIGH_TIME2": "01:08:00",

    "HIGH_TIME3": "01:32:00",

    "HIGH_TIME4": "03:59:00",

    "HIGH_TIME5": "05:31:00",

    "LOW_2": 3.8930,

    "LOW_3": 3.8930,

    "LOW_4": 3.8935,

    "LOW_5": 3.8935,

    "LOW_TIME2": "06:42:00",

    "LOW_TIME3": "06:42:00",

    "LOW_TIME4": "06:43:00",

    "LOW_TIME5": "06:43:00",

    "INST_DESC": ,

    "MTD": null,

    "REL_SPEEDG": null,

    "SCALING": ,

    "START_DT": "2018-03-19",

    "WKHI_DT": "2018-03-15",

    "WKLO_DT": "2018-03-12",

    "MTHHI_DT": "2018-03-15",

    "MTHLO_DT": "2018-03-06",

    "TRDTIM_MS": 26150259,

    "SALTIM_MS": null,

    "QUOTIM_MS": 26246761,

    "TIMCOR_MS": null,

    "CNTCT_ID": null,

    "PR_FREQ": " ",

    "QUOTE_TYPE": " ",

    "RCS_AS_CLA": ,

    "NEWSTM_MS": null,

    "CONTEXT_ID": 0,

    "DDS_DSO_ID": 12303,

    "SPS_SP_RIC": ".[SPSIDNEM13003"

    }

    }]

  • This first response message that you received is an initial image:

    "Type": "Refresh",

    an update will be of type

    "Type": "Update"

    I do see that the JSON response for this instrument TRYTOM=D3 is not valid, and will raise it with product team.

  • Case# 06417895 opened.