IceStorm.*

11 min read

11 min read

11 min read

11 min read

11 min read

11 min read

11 min read

11 min read

11 min read

IceStorm is an IceBox service that you can install using any name you like. For example:

Properties
IceBox.Service.DataFeed=IceStormService,...

Nevertheless, we recommend you use IceStorm as service name, as in the example below:

Properties
IceBox.Service.IceStorm=IceStormService,...

IceStorm.Discard.Interval=num

When IceStorm fails to deliver an event to a subscriber, it considers this subscriber non-functional and stops delivery attempts to that subscriber for num seconds before trying to forward events to that subscriber again. Events published during this interval are not queued for this subscriber: IceStorm discards them, and the subscriber never receives them.

This interval applies only when the subscriber's retryCount QoS setting allows further retries — a value of -1, or a positive value with retries remaining. With the default retryCount of 0, IceStorm removes the subscriber instead. See Retry Count QoS for IceStorm for a complete description of how IceStorm handles delivery failures.

The default value of this property is 60 seconds.

IceStorm.Election.ElectionTimeout=num

This property is used by a replicated IceStorm deployment. It specifies the interval in seconds at which a coordinator attempts to form larger groups of replicas. If not defined, the default value is 10.

IceStorm.Election.MasterTimeout=num

This property is used by a replicated IceStorm deployment. It specifies the interval in seconds at which a slave checks the status of the coordinator. If not defined, the default value is 10.

IceStorm.Election.ResponseTimeout=num

This property is used by a replicated IceStorm deployment. It specifies the interval in seconds that a replica waits for replies to an invitation to form a larger group. Lower priority replicas wait for intervals inversely proportional to the maximum priority:

ResponseTimeout + ResponseTimeout * (max - pri)

If not defined, the default value is 10.

IceStorm.Flush.Timeout=num

Defines the interval in milliseconds with which events are sent to batch subscribers. The default is 1000ms.

IceStorm.InstanceName=name

Specifies the identity category of the objects hosted by the IceStorm object adapters, except the finder object, whose identity is always IceStorm/Finder. If not specified, the default identity category is IceStorm.

IceStorm.LMDB.MapSize=num

Specifies the map size for the IceStorm LMDB database environment. The value is specified in megabytes. If not set, IceStorm uses a system-dependent default: 10 MB on Windows, and 100 MB on other platforms.

IceStorm.LMDB.Path=dir

Specifies the path to the LMDB database environment of this IceStorm service. If not specified, the default value is IceStorm. This directory must exist when IceStorm starts up unless IceStorm is in transient mode.

IceStorm.Node.AdapterProperty=value

In a replicated deployment, IceStorm uses the adapter name IceStorm.Node for the replica node's object adapter. Therefore, adapter properties can be used to configure this adapter.

IceStorm.NodeId=value

Specifies the node ID of an IceStorm replica, where value is a non-negative integer. Node IDs must be unique, but they need not be contiguous or start at 0. The node ID is also used as the replica's priority, such that a larger value assigns higher priority to the replica. The replica with the highest priority becomes the coordinator of its group. This property must be defined for each replica. The default value is -1, which disables replication.

A replicated deployment requires at least three replicas.

IceStorm.Nodes.id=value

This property is used for a manual deployment of highly available IceStorm, in which each of the replicas must be explicitly configured with the proxies of all other replicas. The value is a proxy for the replica with the given node id. A replica's object identity has the form instance-name/nodeid, such as DemoIceStorm/node2.

IceStorm.Publish.AdapterProperty=value

IceStorm uses the adapter name IceStorm.Publish for the object adapter that processes incoming requests from publishers. Therefore, adapter properties can be used to configure this adapter.

IceStorm.ReplicatedPublishEndpoints=value

This property is used for a manual deployment of highly available IceStorm. It specifies the set of endpoints returned for the publisher proxy returned from IceStorm::Topic::getPublisher. This property takes effect only when IceStorm.TopicManager.AdapterId is not set.

If this property is not defined, the publisher proxy returned by a topic instance points directly at that replica and, should the replica become unavailable, publishers will not transparently failover to other replicas.

IceStorm.ReplicatedTopicManagerEndpoints=value

This property is used for a manual deployment of highly available IceStorm. It specifies the set of endpoints used in proxies that refer to a replicated topic. This set of endpoints should contain the endpoints of each IceStorm replica. This property takes effect only when IceStorm.TopicManager.AdapterId is not set.

For example, the operation IceStorm::TopicManager::create returns a proxy that contains this set of endpoints.

IceStorm.Send.Timeout=num

Specifies the invocation timeout in milliseconds that IceStorm applies when it forwards events to subscribers. For oneway and batch subscribers, the timeout covers connecting to the subscriber and sending the event; for twoway subscribers, it also covers waiting for the reply. When forwarding an event does not complete within num milliseconds, IceStorm handles the timeout according to the subscriber's retryCount QoS setting, as described under IceStorm.Discard.Interval. The default value is 60000. -1 disables the timeout.

IceStorm.Send.QueueSizeMax=num

The value of this property determines how many events can be queued for a subscriber by IceStorm. When the maximum size is reached, IceStorm drops the oldest events or removes the subscriber, as selected by IceStorm.Send.QueueSizeMaxPolicy. num must be a positive value, or -1 for an unbounded queue. The default value is -1.

IceStorm.Send.QueueSizeMaxPolicy=RemoveSubscriber|DropEvents

The value of this property specifies how IceStorm will behave if the maximum queue size is reached for a subscriber. If set to RemoveSubscriber, IceStorm will remove the subscriber as soon as the limit is reached. If set to DropEvents, older events will be removed to make room for new events. The default value is RemoveSubscriber.

IceStorm.TopicManager.AdapterProperty=value

IceStorm uses the adapter name IceStorm.TopicManager for the topic manager's object adapter. Therefore, adapter properties can be used to configure this adapter.

IceStorm.Trace.Election=num

Trace activity related to elections:

ValueDescription
0
No election trace (default).
1
Trace election activity.

IceStorm.Trace.Replication=num

Trace activity related to replication:

ValueDescription
0
No replication trace (default).
1
Trace replication activity.

IceStorm.Trace.Subscriber=num

The subscriber trace level:

ValueDescription
0
No subscriber trace (default).
1
Trace topic diagnostic information on subscription and unsubscription.
2
Like 1, but more verbose, including state transitions for a subscriber (such as going offline after a temporary network failure, and going online again after a successful retry, etc.).

IceStorm.Trace.Topic=num

The topic trace level:

ValueDescription
0
No topic trace (default).
1
Trace topic links, subscription, and unsubscription.
2
Like 1, but more verbose, including QoS information, and other diagnostic information.

IceStorm.Trace.TopicManager=num

The topic manager trace level:

ValueDescription
0
No topic manager trace (default).
1
Trace topic creation, topic loading, and replica initialization.
2
Like 1, but also trace the endpoints of each subscriber.

IceStorm.Transient=num

If num is a value greater than zero, IceStorm runs in a fully transient mode in which no database is required. Replication is not supported in this mode. If not defined, the default value is zero.