<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- Quality Of Service and Admin Properties</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/cosEventDomain-1.1.8.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>cosEventDomain</strong><br><strong>User's Guide</strong><br><small>Version 1.1.8</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Chapters</strong></small></p> <ul class="flipMenu" imagepath="../../../../doc/js/flipmenu"> <li id="no" title="The cosEventDomain Application" expanded="false">The cosEventDomain Application<ul> <li><a href="ch_contents.html"> Top of chapter </a></li> <li title="Content Overview"><a href="ch_contents.html#id2257769">Content Overview</a></li> <li title="Brief Description of the User's Guide"><a href="ch_contents.html#id2255882">Brief Description of the User's Guide</a></li> </ul> </li> <li id="no" title="Introduction to cosEventDomain" expanded="false">Introduction to cosEventDomain<ul> <li><a href="ch_introduction.html"> Top of chapter </a></li> <li title="Overview"><a href="ch_introduction.html#id2257804">Overview</a></li> </ul> </li> <li id="loadscrollpos" title="Quality Of Service and Admin Properties" expanded="true">Quality Of Service and Admin Properties<ul> <li><a href="ch_QoS.html"> Top of chapter </a></li> <li title="Quality Of Service and Admin Properties"><a href="ch_QoS.html#id2257787">Quality Of Service and Admin Properties</a></li> </ul> </li> <li id="no" title="Event Domain Service" expanded="false">Event Domain Service<ul> <li><a href="ch_event_domain_service.html"> Top of chapter </a></li> <li title="Overview of the CosEventDomain Service"><a href="ch_event_domain_service.html#id2258715">Overview of the CosEventDomain Service</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <h1>3 Quality Of Service and Admin Properties</h1> <h3><a name="id2257787">3.1 Quality Of Service and Admin Properties</a></h3> <p>This chapter explains the allowed properties it is possible to set for this application. </p> <h4>Quality Of Service</h4> <p>The cosEventDomain application supports the following QoS settings:</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td align="left" valign="middle"><strong>QoS</strong></td> <td align="left" valign="middle"><strong>Range</strong></td> <td align="left" valign="middle"><strong>Default</strong></td> </tr> <tr> <td align="left" valign="middle">CycleDetection</td> <td align="left" valign="middle">AuthorizeCycles/ForbidCycles</td> <td align="left" valign="middle">ForbidCycles</td> </tr> <tr> <td align="left" valign="middle">DiamondDetection</td> <td align="left" valign="middle">AuthorizeDiamonds/ForbidDiamonds</td> <td align="left" valign="middle">ForbidDiamonds</td> </tr> </table> <em>Table 3.1: Supported QoS settings</em> <br><br><br><br> <p><strong>Comments on the table 'Supported QoS Settings':</strong></p> <dl> <dt><strong><strong>CycleDetection</strong></strong></dt> <dd>If a cycle is created, the user <strong>must</strong> be aware of the fact that unless they set timeout on events, events that are not filtered will loop endlessly through the topology.</dd> <dt><strong><strong>DiamondDetection</strong></strong></dt> <dd>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.</dd> </dl> <h4>Setting Quality Of Service</h4> <p>Assume we have a Consumer Admin object which we want to change the current Quality of Service. Typical usage:</p> <div class="example"><pre> 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), </pre></div> <p>If it is not possible to set the requested QoS the <span class="code">UnsupportedQoS</span> exception is raised, which includes a sequence of <span class="code">PropertyError</span>'s describing which QoS, possible range and why is not allowed. The error codes are:</p> <ul> <li>UNSUPPORTED_PROPERTY - QoS not supported for this type of target object.</li> <li>UNAVAILABLE_PROPERTY - due to current QoS settings the given property is not allowed.</li> <li>UNSUPPORTED_VALUE - property value out of range; valid range is returned.</li> <li>UNAVAILABLE_VALUE - due to current QoS settings the given value is not allowed; valid range is returned.</li> <li>BAD_PROPERTY - unrecognized property.</li> <li>BAD_TYPE - type of supplied property is incorrect.</li> <li>BAD_VALUE - illegal value.</li> </ul> <p>The CosEventDomainAdmin_EventDomain interface also supports an operation called <span class="code">validate_qos/2</span>. 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.</p> <h4>Admin Properties</h4> <p>The OMG specification do not contain any definitions of Admin Properties. Hence, the cosEventDomain application currently does not support any Admin Properties.</p> </div> <div class="footer"> <hr> <p>Copyright © 2001-2010 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>