Sophie

Sophie

distrib > Fedora > 17 > i386 > media > updates > by-pkgid > 675c8c8167236dfcf8d66da674f931e8 > files > 381

erlang-doc-R15B-03.3.fc17.noarch.rpm

<!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.18.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.18</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#id63553">Content Overview</a></li>
<li title="Brief Description of the User's Guide"><a href="ch-contents.html#id57496">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#id59810">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#id61483">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#id62962">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#id64314">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#id65103">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#id65997">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="id61483">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() &gt; 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() &gt; 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() &gt; 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-2012 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>