> ## 3 Quality Of Service and Admin Properties

> ### 3.1 Quality Of Service and Admin Properties

> This chapter explains the allowed properties it is possible to set for this application.

> #### 3.1.1 Quality Of Service

> The cosEventDomain application supports the following QoS settings:

> QoS | Range | Default
> CycleDetection | AuthorizeCycles/ForbidCycles | ForbidCycles
> DiamondDetection | AuthorizeDiamonds/ForbidDiamonds | ForbidDiamonds
> Supported QoS settings

> Comments on the table 'Supported QoS Settings':

> CycleDetection
>   If a cycle is created, the user must be aware of the fact that unless they set timeout on events, events that are not filtered will loop endlessly through the topology.
> DiamondDetection
>   A Diamond in this context, means that the same event may reach a point in the graph by more than one route (i.e. transitive). Hence, it is possible that multiple copies are delivered.

> #### 3.1.2 Setting Quality Of Service

> Assume we have a Consumer Admin object which we want to change the current Quality of Service. Typical usage:

>     QoS =
>        [#'CosNotification_Property'
>         {name='CosEventDomainAdmin':'DiamondDetection'(),
>          value=any:create(orber_tc:short(),
>          'CosEventDomainAdmin':'AuthorizeDiamonds'())},
>         #'CosNotification_Property'
>         {name='CosEventDomainAdmin':'CycleDetection'(),
>          value=any:create(orber_tc:short(),
>          'CosEventDomainAdmin':'ForbidCycles'())}],
>     'CosEventDomainAdmin_EventDomain':set_qos(ED, QoS),

> If it is not possible to set the requested QoS the `UnsupportedQoS` exception is raised, which inlcudes a sequence of `PropertyError`'s describing which QoS, possible range and why is not allowed. The error codes are:

> - UNSUPPORTED_PROPERTY - QoS not supported for this type of target object.
> - UNAVAILABLE_PROPERTY - due to current QoS settings the given property is not allowed.
> - UNSUPPORTED_VALUE - property value out of range; valid range is returned.
> - UNAVAILABLE_VALUE - due to current QoS settings the given value is not allowed; valid range is returned.
> - BAD_PROPERTY - unrecognized property.
> - BAD_TYPE - type of supplied property is incorrect.
> - BAD_VALUE - illegal value.

> The CosEventDomainAdmin_EventDomain interface also supports an operation called `validate_qos/2`. The purpose of this operations is to check if a QoS setting is supported by the target object and if so, the operation returns additional properties which could be optionally added as well.

> #### 3.1.3 Admin Properties

> The OMG specifification do not contain any definitions of Admin Properties. Hence, the cosEventDomain application currently does not support any Admin Properties.

Copyright © 1991-2003 Ericsson Utvecklings AB