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.

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_UserAccessDenied

The current user does not have the rights required.

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