Date: Fri, 29 Mar 2024 15:07:04 +0000 (UTC)
Message-ID: <1248551419.25477.1711724824804@ae5f4610bf64>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_25476_699925488.1711724824804"
------=_Part_25476_699925488.1711724824804
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
On this page:
Server Activation =
Modes
You can choose among four activation modes for servers deployed and mana=
ged by an IceGrid node:
- Manual
You must start the server explicitly via the IceGrid GUI or icegrida=
dmin
, or programmatically via the IceGrid::Admin
interf=
ace.
- Always
IceGrid activates the server when its node starts. If the server stops, Ic=
eGrid automatically reactivates it.
- On demand
IceGrid activates the server when a client invokes an operation on an obje=
ct in the server.
- Session
This mode also provides on-demand activation but requires the server to be=
allocated by a session.
Server Activati=
on in Detail
On-demand server activation is a valuable feature of distributed computi=
ng architectures for a number of reasons:
- It minimizes application startup times by avoiding the need to pre-star=
t all servers.
- It allows administrators to use their computing resources more efficien=
tly because only those servers that are actually needed are running.
- It provides more reliability in the case of some server failure scenari=
os, e.g., the server is reactivated after a failure and may still be capabl=
e of providing some services to clients until the failure is resolved.
- It allows remote activation and deactivation.
On-demand activation occurs when an Ice client requests the endpoints of one of the server's object adapters v=
ia a locate request. If the server is not active at the time the client iss=
ues the request, the node activates the server and waits for the target obj=
ect adapter to register its endpoints. Once the object adapter endpoints ar=
e registered, the registry returns the endpoint information back to the cli=
ent. This sequence ensures that the client receives the endpoint informatio=
n after the server is ready to receive requests.
Requirem=
ents for Server Activation
In order to use on-demand activation for an object adapter, the adapter =
must have an identifier and be entered in the IceGrid registry.
When using session activation mode, IceGrid requires that the server be =
alloc=
ated; on-demand activation fails for servers that have not been allocat=
ed.
The session activation mode recognizes an additional reserved variable in the server=
descriptor, ${session.id
}. The value of this variable is the =
user ID or, for SSL sessions, the distinguished name associated with the se=
ssion.
Efficiency Considerations for Server Activation
Once a server is activated, it remains running indefinitely (unless it u=
ses the session activation mode). A node deactivates a server only when explicitly requested to =
do so. As a result, server processes tend to accumulate on the node's host.=
One of the advantages of on-demand activation is the ability to manage c=
omputing resources more efficiently. Of course there are many aspects to th=
is, but Ice makes one technique particularly simple: servers can be configu=
red to terminate gracefully after they have been idle for a certain amount =
of time.
A typical scenario involves a server that is activated on demand, used f=
or a while by one or more clients, and then terminated automatically when n=
o requests have been made for a configurable number of seconds. All that is=
necessary is setting the server's configuration property Ice.ServerIdleTime
to the desired idle time.
For a server activated in session activation mode, IceGrid deactivates t=
he server when the session releases the server or when the session is destr=
oyed.
Act=
ivating Servers with Specific User IDs
On Unix platforms you can activate server processes with specific effect=
ive user IDs, provided that the IceGrid node is running as root. If the Ice=
Grid node does not run as root, servers are always activated with the effec=
tive user ID of the IceGrid node process. (The same is true for Windows =E2=
=80=94 servers always run with the same user ID as the IceGrid node process=
.)
For the remainder of this section, we assume that the node runs as root =
on a Unix machine.
The user
attribute of the server descriptor specifies the user ID for a serve=
r. If this attribute is not specified and the activation mode is not =
session
, the default value is nobody
. Otherwise, the de=
fault value is ${session.id
}
if the activation mo=
de is session
.
Since individual users often have different account names and user IDs o=
n different machines, IceGrid provides a mechanism to map the value of the =
user
attribute in the server descriptor to a user account. To =
do this, you must configure the node to use a user account mapper object. T=
his object must implement the IceGrid::UserAccountMapper
inter=
face:
exception UserAccountNotFoundException =
{};
interface UserAccountMapper {
string getUserAccount(string user)
thr=
ows UserAccountNotFoundException;
};
The IceGrid node invokes getUserAccount
and passes the valu=
e of the server descriptor's user
attribute. The return value =
is the name of the user account.
IceGrid provides a built-in file-based user account mapper that you can =
configure for the node and the registry. The file contains any number of us=
er-account-ID pairs. Each pair appears on a separate line, with white space=
separating the user account from the identifier. For example, the file sho=
wn below contains two entries that map two distinguished names to the user =
account lisa
:
lisa O=3DZeroC\\, Inc., OU=3DIce, CN=3DLisa
lisa O=3DZeroC\\, Inc., OU=3DIce, CN=3DLisa S.
The distinguished names must be unique. If the same distinguished name a=
ppears several times in a file, the last entry is used.
You can specify the path of the user account file with the IceGrid.Registry.UserAccounts
property for the regis=
try and the
IceGrid.Node.UserAccounts
p=
roperty for a node.
To configure an IceGrid node to use the IceGrid registry file-based user=
account mapper, you need to set the IceGrid.Node=
.UserAccountMapper
property to the well-known proxy IceGri=
d/RegistryUserAccountMapper
. Alternatively, you can set this propert=
y to the proxy of your own user account mapper object. Note that if this pr=
operty is set, the node ignores the setting of IceGrid.Node.UserAccou=
nts
.
Automatin=
g Endpoint Registration
Servers must be properly configured to enable automatic endpoint registration. It=
should be noted however that IceGrid simplifies the configuration process =
in two ways:
- The IceGrid deploym=
ent facility automates the creation of a configuration file for the server, including the definition of objec=
t adapter identifiers and endpoints.
- A server that is activated automatically by an IceGrid node does not ne=
ed to explicitly configure a proxy for the locator because the IceGrid node=
defines it in the server's configuration file.=20
See Also
------=_Part_25476_699925488.1711724824804
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/42d1c41851731792bf0b017d55153c75
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
AAAASUVORK5CYII=
------=_Part_25476_699925488.1711724824804
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/636ffb57184d35b4dd4630b7850f79ec
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
------=_Part_25476_699925488.1711724824804--