Ice Reference Documentation
<<< Previous | Properties | Next >>>

# Ice Miscellaneous Properties

## Ice.ThreadPerConnection

### Synopsis

    Ice.ThreadPerConnection=num

### Description

If `num` is set to a value larger than zero, the Ice run time uses a thread-per-connection concurrency model instead of the default thread pool. As its name implies, this concurrency model creates a new thread for each outgoing and incoming connection. Unlike the thread pool concurrency model, thread-per-connection supports at most one level of nested callbacks.

## Ice.GC.Interval

### Synopsis

    Ice.GC.Interval=num

### Description

This property determines the frequency with which the class garbage collector runs. If the interval is set to zero (the default), no collector thread is created. Otherwise, the collector thread runs every `num` seconds.

## Ice.RetryIntervals

### Synopsis

    Ice.RetryIntervals=num [num ...]

### Description

This property defines the number of times an operation is re-tried and the delay between each retry. For example, if the property is set to `0 100 500`, the operation is re-tried 3 times: immediately upon the first failure, again after waiting 100 (ms) upon the second failure, and again after waiting 500 (ms) upon the third failure. The default value is to retry once immediately (0). If set to -1, no retry occurs.

## Ice.MessageSizeMax

### Synopsis

    Ice.MessageSizeMax=num

### Description

This property controls the maximum size (in kilobytes) of a protocol message that is accepted or sent by the Ice run time. The size includes the size of the Ice protocol header. Messages larger than this size cause a [MemoryLimitException]. The default size is 1024 (1 Megabyte). Settings with a value less than 1 are ignored.

This property adjusts the value of `Ice.UDP.RcvSize` and `Ice.UDP.SndSize`, that is, if `Ice.UDP.RcvSize` or `Ice.UDP.SndSize` are larger than `Ice.MessageSizeMax * 1024 + 28`, they are adjusted to `Ice.MessageSizeMax * 1024 + 28`.

## Ice.ChangeUser

### Synopsis

    Ice.ChangeUser=user

### Description

If set, Ice changes the user and group id to the respective ids of `user` in `/etc/passwd`. This only works if the Ice application is executed by the super-user. (Unix only.)

## Ice.ACM.Client

### Synopsis

    Ice.ACM.Client=num

### Description

If `num` is set to a value larger than zero, client-side Active Connection Management (ACM) is enabled. This means that connections are automatically closed by the client after they have been idle for `num` seconds. This is transparent to applications because connections closed by ACM are automatically reestablished if they are needed again. The default value is 60, meaning that idle connections are automatically closed after one minute.

## Ice.ACM.Server

### Synopsis

    Ice.ACM.Server=num

### Description

This property is the server-side equivalent of Ice.ACM.Client. If `num` is set to a value larger than zero, server-side Active Connection Management (ACM) is enabled, in which the server automatically closes an incoming connection after it has been idle for `num` seconds. The default value is 0, meaning that server-side ACM is disabled by default.

| Server-side ACM can cause incoming oneway requests to be silently discarded. See the Ice manual for more information.

## Ice.MonitorConnections

### Synopsis

    Ice.MonitorConnections=num

### Description

If `num` is set to a value larger than zero, Ice starts a thread that monitors connections. Approximately each `num` seconds, this thread shuts down idle connections and enforces AMI timeouts. The default value is the smaller of Ice.ACM.Client or Ice.ACM.Server. If neither property is defined with a non-zero value, the monitoring thread is disabled.

| It is important to understand the relationship between this thread and the timeouts it is responsible for enforcing. It is legal to define Ice.ACM.Client or Ice.ACM.Server with a value smaller than `num`, but idle connections will only be closed every `num` seconds. Similarly, AMI timeouts cannot happen faster than `num` seconds.

## Ice.PrintProcessId

### Synopsis

    Ice.PrintProcessId=num

### Description

If `num` is set to a value larger than zero, the process ID is printed on standard output upon startup.

## Ice.ProgramName

### Synopsis

    Ice.ProgramName=name

### Description

`name` is the program name, which is set automatically from `argv[0]` (C++) and from `AppDomain.CurrentDomain.FriendlyName` (C#) during initialization. (For Java, `Ice.ProgramName` is initialized to the empty string.) For all languages, the default name can be overridden by setting this property.

## Ice.ServerId

### Synopsis

    Ice.ServerId=id

### Description

The value `id` is used as the server id when an object adapter registers the server with the locator registry. Refer to the description of the object adapter property `adapter`.RegisterProcess for more information.

## Ice.ServerIdleTime

### Synopsis

    Ice.ServerIdleTime=num

### Description

If `num` is set to a value larger than zero, Ice automatically calls `Communicator::shutdown` once the Communicator has been idle for `num` seconds. This shuts down the Communicator's server side and causes all threads waiting in `Communicator::waitForShutdown` to return. After that, a server will typically do some cleanup work before exiting. The default value is zero, meaning that the server will not shut down automatically.

## Ice.StdErr

### Synopsis

    Ice.StdErr=filename

### Description

If `filename` is not empty, the standard error stream of this process is redirected to this file, in append mode. This property is checked only for the first Communicator created in a given process.

## Ice.StdOut

### Synopsis

    Ice.StdOut=filename

### Description

If `filename` is not empty, the standard output stream of this process is redirected to this file, in append mode. This property is checked only for the first Communicator created in a given process.

## Ice.UseEventLog

### Synopsis

    Ice.UseEventLog=num

### Description

If `num` is set to a value larger than zero, a special logger is installed that logs to the Windows Event Log instead of standard error. The event source name is the value of `Ice.ProgramName`. (Windows 2000/XP only.)

## Ice.UseSyslog

### Synopsis

    Ice.UseSyslog=num

### Description

If `num` is set to a value larger than zero, a special logger is installed that logs to the syslog facility instead of standard error. The identifier for syslog is the value of `Ice.ProgramName`. (Unix only.)

## Ice.Logger.Timestamp

### Synopsis

    Ice.Logger.Timestamp=num

### Description

If `num` is set to a value larger than zero, the output of the default logger includes timestamps.

## Ice.NullHandleAbort

### Synopsis

    Ice.NullHandleAbort=num

### Description

If `num` is set to a value larger than zero, invoking an operation using a null smart pointer (i.e., a handle) causes the program to abort immediately instead of raising `IceUtil::NullHandleException`. (C++ only.)

## Ice.Nohup

### Synopsis

    Ice.Nohup=num

### Description

If `num` is set to a value larger than zero, the C++ classes `Ice::Application` and `Ice::Service` ignore `SIGHUP` (for UNIX) and `CTRL_LOGOFF_EVENT` (for Windows). As a result, an application that sets `Ice.Nohup` continues to run if the user that started the application logs off. The default value for `Ice::Application` is `0`, and the default value for `Ice::Service` is `1` (C++ only.)

## Ice.UDP.RcvSize, Ice.UDP.SndSize

### Synopsis

    Ice.UDP.RcvSize=num
    Ice.UDP.SndSize=num

### Description

These properties set the UDP receive and send buffer sizes to the specified value in bytes. Ice messages larger than ``num` - 28` bytes cause a `DatagramLimitException`. The default value depends on the configuration of the local UDP stack. (Common default values are `65535` and `8192` bytes.)

The OS may impose lower and upper limits on the receive and send buffer sizes or otherwise adjust the buffer sizes. If a limit is requested that is lower than the OS-imposed minimum, the value is silently adjusted to the OS-imposed minimum. If a limit is requested that is larger than the OS-imposed maximum, the value is adjusted to the OS-imposed maximum; in addition, Ice logs a warning showing the requested size and the adjusted size.

Settings of these properties less than `28` are ignored.

Note that, on many operating systems, it is possible to set buffer sizes greater than `65535`. Such settings do not change the hard limit of `65507` bytes for the payload of a UDP packet, but merely affect how much data can be buffered by the kernel.

Settings less than `65535` limit the size of Ice datagrams as well as adjust the kernel buffer sizes.

If `Ice.MessageSizeMax` is set and `Ice.MessageSizeMax * 1024 + 28` is smaller than the UDP receive or send buffer size, the corresponding UDP buffer size is reduced to `Ice.MessageSizeMax * 1024 + 28`.

## Ice.Package.`module`

### Synopsis

    Ice.Package.module=package

### Description

Associates a top-level Slice module with a Java package. If global metadata is used to enclose generated Java classes in a user-defined package, the Ice run time must be configured in order to successfully unmarshal exceptions and concrete class types. If all top-level modules are generated into the same user-defined package, it is easier to use `Ice.Default.Package` instead.

## Ice.Default.Package

### Synopsis

    Ice.Default.Package=package

### Description

Specifies a default package to use if other attempts by the Ice run time to dynamically load a generated class have failed. If global metadata is used to enclose generated Java classes in a user-defined package, the Ice run time must be configured in order to successfully unmarshal exceptions and concrete class types. Also see Ice.Package.`module`.

## Ice.Compression.Level

### Synopsis

    Ice.Compression.Level=num

### Description

Specifies the bzip2 compression level. Legal values for `num` are 1 to 9, where 1 represents the fastest compression and 9 represents the best compression. Note that higher levels cause the bzip2 algorithm to devote more resources to the compression effort, and may not result in a significant improvement over lower levels. If not specified, the default value is 1.

<<< Previous | Home | Next >>>
Ice Default and Override Properties | Up | IceSSL Properties