Server Descriptor Element

A server element defines a server to be deployed on a node. It typically contains at least one adapter element, and may supply additional information such as command-line options, environment variables, configuration properties, and a server distribution.

This element may only appear as a child of a node element or a server-template element.

The following attributes are supported:

Attribute

Description

Required

activation

Specifies whether the server's activation mode. Legal values are manual, on-demand, always and session. If not specified, manual activation is used by default.

No

activation-timeout

Defines the number of seconds a node will wait for the server to activate. If the timeout expires, a client waiting to receive the endpoints of an object adapter in this server will receive an empty set of endpoints. If not defined, the default timeout is the value of the IceGrid.Node.WaitTime property configured for the server's node.

No

allocatable

Specifies whether the server can be allocated. A server is allocated implicitly when one of its allocatable objects is allocated. The value of this attribute is ignored if the server activation mode is session; a server with this activation mode is always allocatable. Otherwise, if not specified and the server activation mode is not session, the server is not allocatable.

No

application-distrib

Specifies whether this server's distribution is dependent on the application's distribution. If the value is true, the server cannot be patched until the application has been patched. If not defined, the default value is true.

No

deactivation-timeout

Defines the number of seconds a node will wait for the server to deactivate. If the timeout expires, the node terminates the server process. If not defined, the default timeout is the value of the node's configuration property IceGrid.Node.WaitTime.

No

exe

The pathname of the server executable. On Windows, if a relative path is specified, the executable is searched in the system path. On Linux, it's searched in the user path specified by the PATH environment variable from the environment where the icegridnode is started.

Yes

ice-version

Specifies the Ice version in use by this server. If not defined, IceGrid assumes the server uses the same version that IceGrid itself uses. A server that uses an Ice version prior to 3.3 must define this attribute if its adapters use the register-process attribute. For example, a server using Ice 3.2.x should use 3.2 as the value of this attribute.

No

id

Specifies the identifier for this server. The identifier must be unique among all servers in the registry. Within the server, child elements can refer to its identifier using the reserved variable ${server}.

Yes

pwd

The default working directory for the server. If not defined, the server is started in the node's current working directory.

No

user

Specifies the name of the user account under which the server is activated and run. If a user account mapper is configured for the node, the value of this attribute is used to find the corresponding account in the map.

Node running on Windows as any user, or Linux and macOS as non-root:

  • The only permissible value for this attribute is an empty string or the name of the user account under which the node is running.

Node running on Linux and macOS as root:

  • The node must be running as root to be able to run servers under a different user account.
  • If the node is running as root and this attribute is not specified, the server is run under the user ${session.id} if the server activation mode is session or under the user nobody if the activation mode is manual, on-demand or always.
  • IceGrid.Node.AllowRunningServersAsRoot must be set to a non-zero value to allow running servers as root.

No

An optional nested description element provides free-form descriptive text.

Here is an example to demonstrate the use of this element:

XML
<server id="MyServer"
        activation="on-demand"
        activation-timeout="60"
        application-distrib="false"
        deactivation-timeout="60"
        exe="/opt/app/bin/myserver"
        pwd="/">
    <option>--Ice.Trace.Network=1</option>
    <env>PATH=/opt/Ice/bin:$PATH</env>
    <property name="ServerId" value="${server}"/>
    <adapter name="Adapter1" .../>
</server>

See Also