RegisterApplication is used to register a new Application Instance with a GlobalDiscoveryServer.

This Method shall only be invoked by authorized users.

Servers that support transparent redundancy shall register as a single application and pass the DiscoveryUrls for all available instances and/or network paths.

RegisterApplication will create duplicate records if the ApplicationUri already exists since misconfiguration of applications can result in different applications having the same ApplicationUri. Before calling this Method the Client shall call FindApplications to check if a record for the application it is using already exists. If records are found which appear to belong to different applications (e.g. the DiscoveryUrls are different) then the Client shall report a warning before continuing.

If registration was successful and auditing is supported, the GDS shall generate the ApplicationRegistrationChangedAuditEventType (see 6.3.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 6 specifies the AddressSpace representation for the RegisterApplication Method.

Table 6 – RegisterApplication Method AddressSpace Definition

Attribute

Value

BrowseName

RegisterApplication

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

HasProperty

Variable

InputArguments

Argument[]

PropertyType

Mandatory

HasProperty

Variable

OutputArguments

Argument[]

PropertyType

Mandatory