RegisterApplication is used to register a new Application Instance with a GlobalDiscoveryServer.
This Method shall be called from an authenticated SecureChannel and from a Client that has access to the DiscoveryAdmin Role or the ApplicationAdmin Privilege (see 6.2).
Servers that support transparent redundancy shall register as a single application and pass the DiscoveryUrls for all available instances and/or network paths.
Servers that support non-transparent redundancy shall register as different applications. In addition, OPC 10000-4 requires the use of the NTRS ServerCapability defined in Annex D.
RegisterApplication shall not create duplicate records. If the ApplicationUri already exists the Method returns Bad_EntryExists.
If RegisterApplication succeeds the OPC UA Application is approved and is returned by QueryApplications and FindApplications.
If registration was successful and auditing is supported, the GDS shall generate the ApplicationRegistrationChanged AuditEventType (see 6.6.12).
Signature
RegisterApplication(
[in] ApplicationRecordDataType application
[out] NodeId applicationId
);
Argument |
Description |
application |
The application that is to be registered with the GlobalDiscoveryServer. |
applicationId |
A unique identifier for the registered Application. This identifier is persistent and is used in other Methods used to administer applications. |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_InvalidArgument |
The application or one of the fields of the application record is not valid. The text associated with the error shall indicate the exact problem. |
Bad_EntryExists |
A record with the same ApplicationUri already exists. |
Bad_UserAccessDenied |
The current user does not have the rights required. |
Bad_SecurityModeInsufficient |
The SecureChannel is not authenticated. |
Table 9 specifies the AddressSpace representation for the RegisterApplication Method.
Table 9 – RegisterApplication Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
2:RegisterApplication |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
0:HasProperty |
Variable |
0:InputArguments |
0:Argument[] |
0:PropertyType |
Mandatory |
0:HasProperty |
Variable |
0:OutputArguments |
0:Argument[] |
0:PropertyType |
Mandatory |