## 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:

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

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-2006 Ericsson AB