Discover Refinitiv
MyRefinitiv Refinitiv Perspectives Careers
Created with Sketch.
All APIs Questions & Answers  Register |  Login
Ask a question
  • Questions
  • Tags
  • Badges
  • Unanswered
Search:
  • Home /
  • TREP APIs /
avatar image
Question by Neil Montgomery · Nov 08, 2019 at 02:49 PM · treprfa c++trep apiopendacsprovider

DACS name for Provider application (RFA 7.6)

I have a custom RSSL Interactive Provider built using RFA 7.6.2.E2 (C++ edition)

When this Interactive Provider is added to TREP it registers onto DACS using the username under which the Provider's process is running e.g. something like the 'radmin' user on Linux. This appears to happen "under the covers" as there is no code in the Provider explictly setting the user name.

If I wanted to replace this default user name with "CONFIG-NAME" it is my understanding that I should populate a StandardPrincipalIdentity and pass this as the second parameter to Session::acquire (see the following code snippet). Is this the correct thing to do?

rfa::common::StandardPrincipalIdentity* principalIdentity = new rfa::common::StandardPrincipalIdentity();
principalIdentity->setName(rfa::common::RFA_String("CONFIG-NAME", 0, false));
principalIdentity->setAppName(rfa::common::RFA_String("256", 0, false));
principalIdentity->setPosition(rfa::common::RFA_String("x.x.x.x/net", 0, false));
rfa::sessionLayer::Session* session = rfa::sessionLayer::Session::acquire("SessionMP1", principalIdentity);

Even if this is the right thing to do, the RFA Developer Guide (C++ Edition) states that: "The Session interface allows specification of a Principal Identity when acquiring a Session. This feature has been deprecated starting in RFA C++ 7.2 and will be removed completely in a future release. OpenDACS should be used instead."

The OpenDACS Developers Guide isn't entirely clear about how this should be achieved for an Interactive Provider. Is the following code snippet using AuthorizationAgent::login() correct?

// Assume same StandardPrincipleIdentity as above
rfa::dacs::AuthorizationRequest* authRequest = rfa::dacs::AuthorizationRequest::create();
authRequest->setPrincipalIdentity(principalIdentity);

// Assume rfa::dacs::AuthorizationAgent* authAgent and rfa::common::EventQueue* eventQueue
rfa::common::Handle* loginHandle = authAgent->login(*eventQueue, *authRequest, *this, NULL);

If I do use this OpenDACS interface, will the Session interface (until it is removed from RFA) still login with the "default" user name if I don't pass a StandardPrincipalIdentity to Session::acquire?

Do you have any idea about when the Session/PrincipalIdentity interface will be removed from RFA?

People who like this

0 Show 0
Comment
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

2 Replies

  • Sort: 
avatar image
REFINITIV
Best Answer
Answer by veerapath.rungruengrayubkul · Nov 26, 2019 at 06:44 AM

Below is the information regarding the DACS connection and username.

- If DACS is enabled on ADH, when ADH connects to an Interactive Provider there will no User Login on DACS system. According to ADH Installation Guide document, DACS on ADH should be enabled for Non Interactive Provider and Posing purpose. This should imply that it doesn’t apply to Interactive Provider.



- RFA RSSL Interactive Provider doesn’t have any connection to DACS server. The DACS connection was for MarketData interface only. For example, the Session::acquire() with principal identity is only for MarketData Interface such as Managed Publisher.
- For Open DACS, the AuthorizationAgent::login() will login to DACS system. The username needs to be added on DACS system.
Anyway, the login normally is required when an application needs information regarding a user on DACS system. If your application just calls the getServiceAttributes() method, it doesn’t need any login() call and username on DACS system.


1574750423491.jpeg (16.5 KiB)
Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

avatar image
REFINITIV
Answer by umer.nalla · Nov 08, 2019 at 03:21 PM

Hi @Neil Montgomery

If you are developing an Interactive Provider using RSSL protocol, then the Principal Identify parameter does not apply. If you refer to the documentation it states 'for Market Data only' - which is not particularly clear but means it only applies to the legacy MarketFeed connection types.

For RSSL connections, the username is set at part of the MMT_LOGIN message - but since you are writing an Interactive Provider, the ADH will be mounting your Provider and therefore sending your application a Login Request - rather than you sending one to the ADH.

I am not a TREP expert, but I believe that to change the username you will need to ask your MarketData team to modify their ADH config (e.g. rmds.cnf file) entry corresponding to your servicename and specify the username in there.

e.g.

node*adh*route.route*userName : <dacs username>

If the above entry is missing, I suspect that the ADH may be defaulting to radmin which is the typical/common Linux account used to run the ADH and ADS components.


Comment

People who like this

0 Show 0 · Share
10 |1500 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Watch this question

Add to watch list
Add to your watch list to receive emailed updates for this question. Too many emails? Change your settings >
9 People are following this question.

Related Questions

DNS round-robin behavior in serverList

Not getting closure back in the processEvent callback

MarketFeed message reference manual

Entitlements

OpenDacs versus DACS

  • Feedback
  • Copyright
  • Cookie Policy
  • Privacy Statement
  • Terms of Use
  • Careers
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Alpha
  • App Studio
  • Block Chain
  • Bot Platform
  • Calais
  • Connected Risk APIs
  • DSS
  • Data Fusion
  • Data Model Discovery
  • Datastream
  • Eikon COM
  • Eikon Data APIs
  • Elektron
    • EMA
    • ETA
    • WebSocket API
  • Legal One
  • Messenger Bot
  • Messenger Side by Side
  • ONESOURCE
    • Indirect Tax
  • Open PermID
    • Entity Search
  • Org ID
  • PAM
    • PAM - Logging
  • ProView
  • ProView Internal
  • Product Insight
  • Project Tracking
  • Refinitiv Data Platform
    • Refinitiv Data Platform Libraries
  • Rose's Space
  • Screening
    • Qual-ID API
    • Screening Deployed
    • Screening Online
    • World-Check One
    • World-Check One Zero Footprint
  • Side by Side Integration API
  • TR Knowledge Graph
  • TREP APIs
    • CAT
    • DACS Station
    • Open DACS
    • RFA
    • UPA
  • TREP Infrastructure
  • TRIT
  • TRKD
  • TRTH
  • Thomson One Smart
  • Transactions
    • REDI API
  • Velocity Analytics
  • Wealth Management Web Services
  • World-Check Data File
  • Explore
  • Tags
  • Questions
  • Badges