The ServiceManager interface is shown below:
The getSliceChecksums operation returns Slice checksums of the IceBox definitions (see
Section 4.20 for more information). The
startService and
stopService operations control the lifetime of configured services. The
shutdown operation terminates the services and shuts down the IceBox server. Additional administrative features may be added in a future release.
Since a malicious client could make a denial-of-service attack against the service manager, it is advisable to use SSL endpoints (see
Chapter 42), or to secure these endpoints with the proper firewall configuration, or both.
A client requiring administrative access to the service manager can create a proxy using the endpoints defined by the property described in
Section 44.3.1. The default identity of the service manager object is
IceBox/ServiceManager, but this can be changed using the
IceBox.InstanceName property (see
Section 44.3.4). Therefore, a proxy using the default identity and the endpoint from
Section 44.3.1 would be constructed as follows:
The C++ utility is named iceboxadmin, while the Java utility is represented by the class
IceBox.Admin.
The start command is equivalent to invoking
startService on the service manager interface. Its purpose is to start a pre-configured service; it cannot be used to add new services at run time. Note that this command does not cause the service’s implementation to be reloaded.
Similarly, the stop command stops the requested service but does not cause the IceBox server to unload the service’s implementation.
The shutdown command stops all active services and shuts down the IceBox server.
An IceBox service hosts one well-known object, which implements the IceBox::ServiceManager interface and has the default identity
IceBox/ServiceManager. If an application requires the use of multiple IceBox services, it is a good idea to assign unique identities to the well-known objects by configuring the servers with different values for the
IceBox.InstanceName property, as shown in the following example:
This property changes the category of the object’s identity, which becomes IceBox1/ServiceManager. The client’s configuration must also be changed to reflect the new identity: