IceStorm is an IceBox service that you can install using any name you like. For example:
{zcode} IceBox.Service.DataFeed=IceStormService,... {zcode} |
The service name you choose is also used as the prefix for IceStorm's configuration properties. In the example above, the IceStorm configuration properties would use the DataFeed
prefix, as in DataFeed.Discard.Interval=10
.
In the property descriptions below, replace service
with the service name from your IceStorm configuration.
On this page:
Ice.Plugin.DB=IceStormSqlDB:createSqlDB
The database storage mechanism used by IceStorm is abstracted in such a way that an alternate mechanism can be selected using the standard Ice plug-in facility. If this property is not defined, IceStorm uses Freeze as its default storage mechanism. Alternatively, you can define the Ice.Plugin.DB
property as shown above to use a SQL database instead, in which case additional properties may also be necessary (see the service.SQL
properties below).
Ice.Plugin.SQLThreadHook=IceStormService:createThreadHook
This property is required when configuring IceStorm to use a SQL database for its persistent data. This plug-in ensures that SQL resources are cleaned up properly.
service.Discard.Interval=num
An IceStorm server detects when a subscriber to which it forwards events becomes non-functional and, at that point, stops delivery attempts to that subscriber for num
seconds before trying to forward events to that subscriber again. The default value of this property is 60 seconds.
service.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.
service.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.
service.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:
{zcode} ResponseTimeout + ResponseTimeout * (max - pri) {zcode} |
If not defined, the default value is 10.
service.Flush.Timeout=num
Defines the interval in milliseconds with which events are sent to batch subscribers. The default is 1000ms.
service.InstanceName=name
Specifies an alternate identity category for all objects hosted by the IceStorm object adapters. If not specified, the default identity category is IceStorm
.
service.Node.AdapterProperty=value
In a replicated deployment, IceStorm uses the adapter name service.Node
for the replica node's object adapter. Therefore, adapter properties can be used to configure this adapter.
service.NodeId=value
Specifies the node ID of an IceStorm replica, where value
is a non-negative integer. 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.
service.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
.
service.Publish.AdapterProperty=value
IceStorm uses the adapter name service.Publish
for the object adapter that processes incoming requests from publishers. Therefore, adapter properties can be used to configure this adapter.
service.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
.
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.
service.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.
For example, the operation IceStorm::TopicManager::create
returns a proxy that contains this set of endpoints.
service.Send.Timeout=num
IceStorm applies a send timeout when it forwards events to subscribers. The value of this property determines how long IceStorm will wait for forwarding of an event to complete. If an event cannot be forwarded within num
milliseconds, the subscriber is considered dead and its subscription is cancelled. The default value is 60 seconds. Setting this property to a negative value disables timeouts.
service.SQL.DatabaseType=type
This property determines the type of the database for QSqlDatabase::addDatabase
. Permissible values of type
are QSQLITE
, QMYSQL
, QPSQL
, and QODBC
.
service.SQL.Database=name
This property determines the name of the database for QSqlDatabase::setDatabaseName
. For SQLite, name
is the file name for the database. For MySQL and PostgreSQL, name
is the database name. For SQL Server, name
is the DSN name.
For MySQL, the specified database must already exist.
service.SQL.HostName=name
This property determines the host name for QSqlDatabase::setHostName
. For PostgreSQL and MySQL, name
is the database host name. For SQL Server, name
is the host name and server name separated by a blackslash, such as localhost\SQLExpress
. For SQLite, this property has no effect and need not be set.
service.SQL.Port=num
This property determines the port number for QSqlDatabase::setPort
.
service.SQL.UserName=name
This property determines the user name for QSqlDatabase::setUserName
. For SQLite, this property has no effect and need not be set.
service.SQL.Password=password
This property determines the password for QSqlDatabase::setPassword
. For SQLite, this property has no effect and need not be set.
service.TopicManager.AdapterProperty=value
IceStorm uses the adapter name service.TopicManager
for the topic manager's object adapter. Therefore, adapter properties can be used to configure this adapter.
service.Trace.Election=num
Trace activity related to elections:
0 |
No election trace (default). |
1 |
Trace election activity. |
service.Trace.Replication=num
Trace activity related to replication:
0 |
No replication trace (default). |
1 |
Trace replication activity. |
service.Trace.Subscriber=num
The subscriber trace level:
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.). |
service.Trace.Topic=num
The topic trace level:
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. |
service.Trace.TopicManager=num
The topic manager trace level:
0 |
No topic manager trace (default). |
1 |
Trace topic creation. |
service.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.
IceStormAdmin.TopicManager.Default=proxy
Defines the proxy for the default IceStorm topic manager. This property is used by icegridadmin
. IceStorm applications may choose to use this property for their configuration as well.
IceStormAdmin.TopicManager.name=proxy
Defines a proxy for an IceStorm topic manager for icegridadmin
. Properties with this pattern are used by icestormadmin
if multiple topic managers are in use, for example:
{zcode} IceStormAdmin.TopicManager.A=A/TopicManager:tcp -h x -p 9995 IceStormAdmin.TopicManager.B=Foo/TopicManager:tcp -h x -p 9995 IceStormAdmin.TopicManager.C=Bar/TopicManager:tcp -h x -p 9987 {zcode} |
This sets the proxies for three topic managers. Note that name
need not match the instance name of the corresponding topic manager — name
simply serves as a tag. With these property settings, the icestormadmin
commands that accept a topic can now specify a topic manager other than the default topic manager that is configured with #IceStormAdmin.TopicManager.Default
. For example:
{zcode} current Foo create myTopic create Bar/myOtherTopic {zcode} |
This sets the current topic manager to the one with instance name Foo
; the first create
command then creates the topic within that topic manager, whereas the second create
command uses the topic manager with instance name Bar
.