IceStorm is a relatively lightweight service in that it requires very little configuration and is implemented as an IceBox service (see
Chapter 44). The configuration properties supported by IceStorm are described in
Appendix C; however, most of them control diagnostic output and are not discussed in this chapter.
IceStorm uses Freeze to manage the service’s persistent state, therefore the second property specifies the pathname of the Freeze database environment directory (see
Chapter 40) for the service. In this example, the directory
db is used, which must already exist in the current working directory.
The final two properties specify the endpoints used by the IceStorm object adapters; notice that their property names begin with
IceStorm, matching the service name. The
TopicManager property specifies the endpoints on which the
TopicManager and
Topic objects reside; these endpoints typically use a connection-oriented protocol such as TCP or SSL. The
Publish property specifies the endpoints used by topic publisher objects.
The name of the property is not relevant, but the endpoint must match that of the IceStorm.TopicManager.Endpoints property, and the object identity must use the IceStorm instance name as the category and
TopicManager as the name.
IceStorm hosts one well-known object, which implements the IceStorm::TopicManager interface. The default identity of this object is
IceStorm/TopicManager, as seen in the stringified proxy example from
Section 45.11.2. If an application requires the use of multiple IceStorm services, it is a good idea to assign unique identities to the well-known objects by configuring the services with different values for the
IceStorm.InstanceName property, as shown in the following example:
This property changes the category of the object’s identity, which becomes Measurement/TopicManager. The client’s configuration must also be changed to reflect the new identity: