1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
<!DOCTYPE html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<meta name="generator" content="hevea 2.34">
<style type="text/css">
.li-itemize{margin:1ex 0ex;}
.li-enumerate{margin:1ex 0ex;}
.dd-description{margin:0ex 0ex 1ex 4ex;}
.dt-description{margin:0ex;}
.toc{list-style:none;}
.footnotetext{margin:0ex; padding:0ex;}
div.footnotetext P{margin:0px; text-indent:1em;}
.thefootnotes{text-align:left;margin:0ex;}
.dt-thefootnotes{margin:0em;}
.dd-thefootnotes{margin:0em 0em 0em 2em;}
.footnoterule{margin:1em auto 1em 0px;width:50%;}
.caption{padding-left:2ex; padding-right:2ex; margin-left:auto; margin-right:auto}
.title{margin:2ex auto;text-align:center}
.titlemain{margin:1ex 2ex 2ex 1ex;}
.titlerest{margin:0ex 2ex;}
.center{text-align:center;margin-left:auto;margin-right:auto;}
.flushleft{text-align:left;margin-left:0ex;margin-right:auto;}
.flushright{text-align:right;margin-left:auto;margin-right:0ex;}
div table{margin-left:inherit;margin-right:inherit;margin-bottom:2px;margin-top:2px}
td table{margin:auto;}
table{border-collapse:collapse;}
td{padding:0;}
.cellpadding0 tr td{padding:0;}
.cellpadding1 tr td{padding:1px;}
pre{text-align:left;margin-left:0ex;margin-right:auto;}
blockquote{margin-left:4ex;margin-right:4ex;text-align:left;}
td p{margin:0px;}
.boxed{border:1px solid black}
.textboxed{border:1px solid black}
.vbar{border:none;width:2px;background-color:black;}
.hbar{border:none;height:2px;width:100%;background-color:black;}
.hfill{border:none;height:1px;width:200%;background-color:black;}
.vdisplay{border-collapse:separate;border-spacing:2px;width:auto; empty-cells:show; border:2px solid red;}
.vdcell{white-space:nowrap;padding:0px; border:2px solid green;}
.display{border-collapse:separate;border-spacing:2px;width:auto; border:none;}
.dcell{white-space:nowrap;padding:0px; border:none;}
.dcenter{margin:0ex auto;}
.vdcenter{border:solid #FF8000 2px; margin:0ex auto;}
.minipage{text-align:left; margin-left:0em; margin-right:auto;}
.marginpar{border:solid thin black; width:20%; text-align:left;}
.marginparleft{float:left; margin-left:0ex; margin-right:1ex;}
.marginparright{float:right; margin-left:1ex; margin-right:0ex;}
.theorem{text-align:left;margin:1ex auto 1ex 0ex;}
.part{margin:2ex auto;text-align:center}
</style>
<title>The omniNames CORBA Naming Service
</title>
</head>
<body >
<!--HEVEA command line is: hevea omniNames.tex -->
<!--CUT STYLE article--><!--CUT DEF section 1 --><table class="title"><tr><td style="padding:1ex"><h1 class="titlemain">The omniNames CORBA Naming Service</h1><h3 class="titlerest">omniORB 4.3</h3></td></tr>
</table>
<!--TOC section id="sec1" Introduction-->
<h2 id="sec1" class="section">1  Introduction</h2><!--SEC END --><p>omniNames is omniORB’s implementation of the OMG’s COS Naming Service
Specification. It offers a way for a client to turn a human-readable
name into an object reference, on which the client can subsequently
invoke operations in the normal way. See the OMG specification for
full details of the functionality provided by the Naming Service.</p><p>The Naming Service stores a set of bindings of names to objects.
These bindings can be arranged as an arbitrary directed graph,
although they are often arranged in a tree hierarchy. Each node in
the graph is a <em>naming context</em>. There is a ‘root’ context at
which name lookups usually start. This is the object returned by the
call to <span style="font-family:monospace">CORBA::ORB::resolve_initial_references("NameService")</span>.</p>
<!--TOC section id="sec2" Data file-->
<h2 id="sec2" class="section">2  Data file</h2><!--SEC END --><p>omniNames persists its contents in a data file. The data file takes
the form of a ‘redo log’, to which it writes out an entry every time a
change is made to the naming graph. The directory in which this log
file is written can be specified with the <span style="font-family:monospace">-datadir</span> command
line option or the <span style="font-family:monospace">OMNINAMES_DATADIR</span> environment variable.
When omniNames is restarted it uses the data file so that it can
regenerate the naming graph.</p><p>Periodically the data file is checkpointed, removing unnecessary
entries from the file. The idle time between checkpoints defaults to
15 minutes. That can be overridden by specifying a period in seconds
in the <span style="font-family:monospace">OMNINAMES_ITBC</span> environment variable.</p><p>The name of the data file name normally includes the hostname, in the
form <span style="font-family:monospace">omninames-</span><span style="font-style:italic">hostname</span><span style="font-family:monospace">.dat</span>. To suppress
inclusion of the hostname, start omniNames with the
<span style="font-family:monospace">-nohostname</span> option.</p><p>Previous versions of omniNames referred to the data file as a ‘log
file’, and the file had the extension ‘<span style="font-family:monospace">.log</span>’. When omniNames
starts up, it will accept a data file with the extension ‘<span style="font-family:monospace">.log</span>’
and replace it with one with the extension ‘<span style="font-family:monospace">.dat</span>’.</p>
<!--TOC section id="sec3" Starting omniNames and configuring omniORB-->
<h2 id="sec3" class="section">3  Starting omniNames and configuring omniORB</h2><!--SEC END --><p>When starting omniNames for the first time, you can either let it
start with the default TCP port of 2809, or you can specify the port
number on which it should listen. This is written to the data file so
that on subsequent invocations it will listen on the same port number
and thus can be accessible through the same object reference. When
omniNames starts up successfully it writes the stringified object
reference for its root context on standard error.</p><p>At startup, omniORB reads its configuration from <span style="font-family:monospace">omniORB.cfg</span> or
from the Windows registry. Amongst other settings, the configuration
contains the object reference to the root context of the Naming
Service. This object reference is returned by
<span style="font-family:monospace">resolve_initial_references("NameService")</span>. There are a number
of methods of specifying the root naming context—see the omniORB
manual for details.</p>
<!--TOC section id="sec4" Command line parameters-->
<h2 id="sec4" class="section">4  Command line parameters</h2><!--SEC END --><p>omniNames accepts the following command line parameters.</p><table style="border-spacing:6px;border-collapse:separate;" class="cellpading0"><tr><td style="vertical-align:top;text-align:left;white-space:nowrap" > </td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-help</span></td><td style="vertical-align:top;text-align:left;" > Output usage information.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-start </span><span style="font-style:italic">[port]</span></td><td style="vertical-align:top;text-align:left;" > Start omniNames for the first time, listening on
<span style="font-style:italic">port</span>.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-always</span></td><td style="vertical-align:top;text-align:left;" > In conjunction with <span style="font-family:monospace">-start</span>, always start up
omniNames, even if its data file already exists.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-datadir </span><span style="font-style:italic">directory</span></td><td style="vertical-align:top;text-align:left;" > Specifies the directory for the data file, overriding the
default.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-logdir </span><span style="font-style:italic">directory</span></td><td style="vertical-align:top;text-align:left;" > Equivalent to <span style="font-family:monospace">-datadir</span>, for compatibility with previous
omniNames versions.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-errlog </span><span style="font-style:italic">filename</span></td><td style="vertical-align:top;text-align:left;" > Causes trace output that would normally be sent to stderr to go to the
specified file instead.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-nohostname</span></td><td style="vertical-align:top;text-align:left;" > Normally, omniNames includes the host name in the name of the data
file. This option disables that, meaning the data file can be used
on a different host, or if the host name changes.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-install </span><span style="font-style:italic">[port]</span></td><td style="vertical-align:top;text-align:left;" > On Windows, install omniNames service. See below.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-manual</span></td><td style="vertical-align:top;text-align:left;" > On Windows, specify that the service should be configured to
require manual start. See below.</td></tr>
<tr><td style="vertical-align:top;text-align:left;white-space:nowrap" >
<span style="font-family:monospace">-remove</span></td><td style="vertical-align:top;text-align:left;" > On Windows, uninstall omniNames service. See below.</td></tr>
</table>
<!--TOC section id="sec5" Machines with multiple IP addresses-->
<h2 id="sec5" class="section">5  Machines with multiple IP addresses</h2><!--SEC END --><p>The CORBA naming service is a tree (or graph) of <span style="font-family:monospace">NamingContext</span>
CORBA objects. For each of those CORBA objects, the object reference
contains details about the <em>endpoint</em>—i.e. the host address
and port—that is used to contact the object.</p><p>When the machine running omniNames has multiple IP addresses, omniORB
listens for incoming connections on all addresses, but it arbitrarily
picks one of the addresses to publish in object references. It might
pick the ‘wrong’ one, meaning that clients connect to the configured
root context successfully, but then fail to connect to the
sub-contexts. To force omniORB to publish the correct IP address, use
the <span style="font-family:monospace">-ORBendPointPublish</span> command line parameter:</p><blockquote class="quote">
<span style="font-family:monospace">-ORBendPointPublish giop:tcp:</span><span style="font-style:italic">address</span><span style="font-family:monospace">:</span>
</blockquote><p>where <span style="font-style:italic">address</span> can be an IP address or a host name.</p><p>Occasionally, it is necessary to limit omniNames to listen on just one
of a machine’s IP addresses. To do that, use <span style="font-family:monospace">-ORBendPoint</span> to
specify the address to listen on. In this case, you should also
specify a port (e.g. the standard 2809), otherwise an arbitrary
ephemeral port will be used for the endpoint:</p><blockquote class="quote">
<span style="font-family:monospace">-ORBendPoint giop:tcp:</span><span style="font-style:italic">address</span><span style="font-family:monospace">:2809</span>
</blockquote>
<!--TOC section id="sec6" Windows service-->
<h2 id="sec6" class="section">6  Windows service</h2><!--SEC END --><p>omniNames can be run as a Windows service. To install the service, run
with the <span style="font-family:monospace">-install</span> command line option, with a port to
override the default 2809 if necessary. The command line should
include any other parameters of relevance, such as the data directory
and error log file. It is particularly important to specify an error
log file, since the service runs in an environment where stderr goes
nowhere.</p><p>The service is normally configured to start at system startup time.
Specifying <span style="font-family:monospace">-manual</span> configures it for manual startup.
Regardless of that setting, the service is not automatically started
at the time it is installed. It should be started manually with the
service control manager if it is to run before the next system
restart.</p><p>Once installed, the service can be uninstalled by running omniNames
with the <span style="font-family:monospace">-remove</span> option.</p><!--CUT END -->
<!--HTMLFOOT-->
<!--ENDHTML-->
<!--FOOTER-->
<hr style="height:2"><blockquote class="quote"><em>This document was translated from L<sup>A</sup>T<sub>E</sub>X by
</em><a href="http://hevea.inria.fr/index.html"><em>H</em><em><span style="font-size:small"><sup>E</sup></span></em><em>V</em><em><span style="font-size:small"><sup>E</sup></span></em><em>A</em></a><em>.</em></blockquote></body>
</html>
|