Specifies an identifier for the object adapter with the name adapter. This identifier must be unique among all object adapters using the same locator instance. If a locator proxy is defined using
adapter.Locator or
Ice.Default.Locator, this object adapter sets its endpoints with the locator registry upon activation.
Sets the endpoints for the object adapter adapter to
endpoints. These endpoints specify the network interfaces on which the object adapter receives requests. Proxies created by the object adapter contain these endpoints, unless the
adapter.PublishedEndpoints property is also specified.
Specifies a locator for the object adapter with the name adapter. The value is a stringified proxy to the Ice locator interface.
Specifies the proxy options for proxies created by the object adapter. The value is a string representing the proxy options as they would be specified in a stringified proxy. See
Appendix D for more information on proxy options. The default value is
"-t", that is, proxies created by the object adapter are configured to use twoway invocations by default.
adapter.PublishedEndpoints
When creating a proxy, the object adapter adapter normally includes the endpoints defined by
adapter.Endpoints. If
adapter.PublishedEndpoints is defined, the object adapter uses these endpoints instead. This is useful in many situations, such as when a server resides behind a port-forwarding firewall, in which case the object adapter's public endpoints must specify the address and port of the firewall. The
adapter.ProxyOptions property also influences the proxies created by an object adapter.
Identifies the group of replicated object adapters to which this adapter belongs. The replica group is treated as a virtual object adapter, so that an indirect proxy of the form
identity@id refers to the object adapters in the group. During binding, a client will attempt to establish a connection to an endpoint of one of the participating object adapters, and automatically try others until a connection is successfully established or all attempts have failed. Similarly, an outstanding request will, when permitted, automatically fail over to another object adapter of the replica group upon connection failure. The set of endpoints actually used by the client during binding is determined by the locator's configuration policies.
Defining a value for this property has no effect unless adapter.AdapterId is also defined. Furthermore, the locator registry may require replica groups to be defined in advance (see
IceGrid.Registry.DynamicRegistration), otherwise
Ice.NotRegisteredException is raised upon adapter activation. Regardless of whether an object adapter is replicated, it can always be addressed individually in an indirect proxy if it defines a value for
adapter.AdapterId.
Specifies a router for the object adapter with the name adapter. The value is a stringified proxy to the Ice router control interface. Defining a router allows the object adapter to receive callbacks from the router over outgoing connections from this process to the router, thereby avoiding the need for the router to establish a connection back to the object adapter.
A router can only be assigned to one object adapter. Specifying the same router for more than one object adapter results in undefined behavior. The default value is no router.
adapter.ThreadPool.Serialize
If num is a value greater than zero, the adapter’s thread pool serializes all messages from each connection. It is not necessary to enable this feature in a thread pool whose maximum size is one thread. In a multi-threaded pool, enabling serialization allows requests from different connections to be dispatched concurrently while preserving the order of messages on each connection. Note that serialization has a signficant impact on latency and throughput. See
Section 28.9 for more information on thread pools. If not defined, the default value is zero.
A communicator creates a default server thread pool that dispatches requests to its object adapters. An object adapter can also be configured with its own thread pool. This is useful in avoiding deadlocks due to thread starvation by ensuring that a minimum number of threads is available for dispatching requests to certain Ice objects.
Section 28.9 describes thread pools in greater detail.
num is the initial and also minimum number of threads in the thread pool. The default value is zero, meaning that an object adapter by default uses the communicator's server thread pool. See
Ice.ThreadPool.Server.Size for more information.
adapter.ThreadPool.SizeMax
num is the maximum number of threads for the thread pool. Thread pools in Ice can grow and shrink dynamically, based on an average load factor. This thread pool will not grow larger than
num, and does not shrink to a number of threads smaller than the value specified by
adapter.ThreadPool.Size.
The default value is the value of adapter.ThreadPool.Size, meaning that by default, this thread pool does not grow dynamically.
adapter.ThreadPool.SizeWarn
Whenever num threads are active in a thread pool, a "low on threads" warning is printed. The default value is 80% of the value specified by
adapter.ThreadPool.SizeMax.
adapter.ThreadPool.StackSize
num is the stack size (in bytes) of threads in the thread pool. The default value is zero, meaning the operating system's default is used.