server SDK: add a (one-way) reference to a node on another server?

Questions regarding the use of the C++ SDK for Server or Client development or integration into customer products ...

Moderator: uasdkcpp

Post Reply
Sr. Member
Sr. Member
Posts: 10
Joined: 04 Jul 2013, 14:01

server SDK: add a (one-way) reference to a node on another server?

Post by schlenk »

Dear UA Team,

I developed an OPCUA server with UASDK C++ toolkit. I'd like to add a reference from a node that exists on that server to a node that exists on another OPCUA server. To my understanding this should be allowed as per OPCUA address-space model.

How do I do it in practice though?
I suppose I need to register such a remote server into my "local" server (by server URI? endpoint?) so it will appear in the Server.ServerArray (ns=0, i=2254). It is not so obvious from the documentation how this can be done and whether it is supported? Then after this step will I see my namespace table updated with the namespaces of the remote server? Or?

Please could you tell me to which extent the references to remote servers are supported within UASDK C++ server toolkit and how to achieve it?

User avatar
Support Team
Hero Member
Hero Member
Posts: 2575
Joined: 18 Mar 2011, 15:09

Re: server SDK: add a (one-way) reference to a node on another server?

Post by Support Team »


We assume you are talking about an off-server reference returned as ExpandedNodeId in the Browse Service.

You are right that you need to add the remote server ApplicationInstanceUri (ServerUri) to the ServerArray variable.

Unfortunately there is currently no support in the NodeManagerBase implementation to manage off-server references in the toolkit layer of the SDK.
The only option is to overwrite NodeManager::Browse and to return off-server references as additional results to the other browse results for a node.

This feature was not requested before but is probably more used with the new Alias nodes.

We added support for off-server references to the feature list for future SDK releases already.
Best regards
Unified Automation Support Team

Post Reply