<!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 -- Installing cosNotification</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/cosNotification-1.1.13.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>cosNotification</strong><br><strong>User's Guide</strong><br><small>Version 1.1.13</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 cosNotification Application" expanded="false">The cosNotification Application<ul> <li><a href="ch-contents.html"> Top of chapter </a></li> <li title="Content Overview"><a href="ch-contents.html#id2258552">Content Overview</a></li> <li title="Brief Description of the User's Guide"><a href="ch-contents.html#id2252685">Brief Description of the User's Guide</a></li> </ul> </li> <li id="no" title="Introduction to cosNotification" expanded="false">Introduction to cosNotification<ul> <li><a href="ch_introduction.html"> Top of chapter </a></li> <li title="Overview"><a href="ch_introduction.html#id2252655">Overview</a></li> </ul> </li> <li id="loadscrollpos" title="Installing cosNotification" expanded="true">Installing cosNotification<ul> <li><a href="ch-install.html"> Top of chapter </a></li> <li title="Installation Process "><a href="ch-install.html#id2251685">Installation Process </a></li> </ul> </li> <li id="no" title="The Notification Service Components" expanded="false">The Notification Service Components<ul> <li><a href="ch_system.html"> Top of chapter </a></li> <li title="The Notification Service Components"><a href="ch_system.html#id2255257">The Notification Service Components</a></li> </ul> </li> <li id="no" title="Filters and the Constraint Language BNF" expanded="false">Filters and the Constraint Language BNF<ul> <li><a href="ch_BNF.html"> Top of chapter </a></li> <li title="Filters and the Constraint Language BNF"><a href="ch_BNF.html#id2252133">Filters and the Constraint Language BNF</a></li> </ul> </li> <li id="no" title="Quality Of Service and Admin Properties" expanded="false">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#id2260951">Quality Of Service and Admin Properties</a></li> </ul> </li> <li id="no" title="cosNotification Examples" expanded="false">cosNotification Examples<ul> <li><a href="ch_example.html"> Top of chapter </a></li> <li title="A Tutorial on How to Create a Simple Service"><a href="ch_example.html#id2262360">A Tutorial on How to Create a Simple Service</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <h1>3 Installing cosNotification</h1> <h3><a name="id2251685">3.1 Installation Process </a></h3> <p>This chapter describes how to install <span class="bold_code"><a href="cosNotificationApp.html">cosNotificationApp</a></span> in an Erlang Environment. </p> <h4>Preparation</h4> <p>Before starting the installation process for cosNotification, the application Orber must be running.</p> <h4>Configuration</h4> <p>When using the Notification Service the <span class="code">cosNotification</span> application first must be installed using <span class="code">cosNotificationApp:install()</span> or <span class="code">cosNotificationApp:install(Seconds)</span>, followed by <span class="code">cosNotificationApp:start()</span>.</p> <p>Then the <span class="bold_code"><a href="CosNotifyChannelAdmin_EventChannelFactory.html">Event Channel Factory</a></span> must be started:</p> <ul> <li> <span class="code">cosNotificationApp:start_global_factory()</span> - starts and returns a reference to a factory using default configuration parameters. This operation should be used for a multi-node Orber.</li> <li> <span class="code">cosNotificationApp:start_global_factory(Options)</span> - starts and returns a reference to a factory using given configuration parameters. This operation should be used for a multi-node Orber.</li> <li> <span class="code">cosNotificationApp:start_factory()</span> - starts and returns a reference to a factory using default configuration parameters.</li> <li> <span class="code">cosNotificationApp:start_factory(Options)</span> - starts and returns a reference to a factory using given configuration parameters.</li> </ul> <p>The following options exist:</p> <ul> <li> <span class="code">{pullInterval, Seconds}</span> - determine how often Proxy Pull Consumers will check for new events with the client application. The default value is 20 seconds.</li> <li> <span class="code">{filterOp, OperationType}</span> - determine which type of Administrator objects should be started, i.e., <span class="code">'OR_OP'</span> or <span class="code">'AND_OP'</span>. The default value is <span class="code">'OR_OP'</span>.</li> <li> <span class="code">{timeService, TimeServiceObj | 'undefined'}</span> - to be able to use Start and/or Stop QoS this option must be used. See the function <span class="code">start_time_service/2</span> in the <span class="code">cosTime</span> application. The default value is <span class="code">'undefined'</span>.</li> <li> <span class="code">{filterOp, OperationType}</span> - determine which type of Administrator objects should be started, i.e., <span class="code">'OR_OP'</span> or <span class="code">'AND_OP'</span>. The default value is <span class="code">'OR_OP'</span>.</li> <li> <span class="code">{gcTime, Seconds}</span> - this option determines how often, for example, proxies will garbage collect expired events. The default value is 60.</li> <li> <span class="code">{gcLimit, Amount}</span> - determines how many events will be stored before, for example, proxies will garbage collect expired events. The default value is 50. This option is tightly coupled with the QoS property <span class="code">MaxEventsPerConsumer</span>, i.e., the <span class="code">gcLimit</span> should be less than <span class="code">MaxEventsPerConsumer</span> and greater than 0.</li> </ul> <p>It is possible to define a set of global configuration parameters:</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td align="left" valign="middle"><strong>Key</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">type_check</td> <td align="left" valign="middle">true | false</td> <td align="left" valign="middle">true</td> </tr> <tr> <td align="left" valign="middle">notify</td> <td align="left" valign="middle">atom() | false</td> <td align="left" valign="middle">false</td> </tr> <tr> <td align="left" valign="middle">max_events</td> <td align="left" valign="middle">integer() > 0</td> <td align="left" valign="middle">50</td> </tr> <tr> <td align="left" valign="middle">interval_events</td> <td align="left" valign="middle">integer() > 0</td> <td align="left" valign="middle">10000 milliseconds</td> </tr> <tr> <td align="left" valign="middle">timeout_events</td> <td align="left" valign="middle">integer() > interval_events</td> <td align="left" valign="middle">3000000 milliseconds</td> </tr> </table> <em>Table 3.1: Global Configuration Parameters</em> <p><strong>Comments on the table 'Global Configuration Parameters':</strong></p> <dl> <dt><strong><strong>type_check</strong></strong></dt> <dd>Determine if supplied IOR:s shall be type checked, i.e. invoking corba_object:is_a/2, or not.</dd> <dt><strong><strong>notify</strong></strong></dt> <dd>The given value shall point to an existing module exporting a function (arity 1) called <strong>terminated</strong>. This operation is invoked when a proxy terminates and the argument is a list containing <span class="code">{proxy, IOR}</span>, <span class="code">{client, IOR}</span> and <span class="code">{reason, term()}</span>. The return value is ignored.</dd> <dt><strong><strong>max_events</strong></strong></dt> <dd>If a supplier proxy has not been able to push events to a consumer and the queue exceeds this limit, then the proxy will terminate. For this option to have any effect, the <span class="code">EventReliability</span> and <span class="code">ConnectionReliability</span> QoS parameters must be set to <span class="code">Persistent</span>. For more information, see also the <span class="bold_code"><a href="ch_QoS.html">QoS</a></span> chapter.</dd> <dt><strong><strong>interval_events</strong></strong></dt> <dd>The same requirements as for <span class="code">max_events</span>. When a supplier proxy detects problems when trying to push events, this parameter determines how often it should try to call the consumer.</dd> <dt><strong><strong>timeout_events</strong></strong></dt> <dd>The same requirements as for <span class="code">max_events</span>. If the proxy has not been able to contact the consumer and this time-limit is reached, then the proxy will terminate.</dd> </dl> <p>The Factory is now ready to use. For a more detailed description see <span class="bold_code"><a href="ch_example.html">Examples</a></span>.</p> </div> <div class="footer"> <hr> <p>Copyright © 2000-2010 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>