Skip to main content
Skip table of contents

Miscellaneous Ice.* Properties

Ice.AcceptClassCycles

Synopsis

Ice.AcceptClassCycles=num

Description

If num is set to 0 (the default), the unmarshaling of class cycles is disallowed. A MarshalException is thrown when a cycle is detected during unmarshaling.

If num is set to a value larger than 0, class cycles are unmarshaled. You must break any cycles programmatically in your own code to prevent memory leaks.

Ice.BackgroundLocatorCacheUpdates

Synopsis

Ice.BackgroundLocatorCacheUpdates=num

Description

If num is set to 0 (the default), an invocation on an indirect proxy whose endpoints are older than the configured locator cache timeout triggers a locator cache update; the run time delays the invocation until the new endpoints are returned by the locator.

If num is set to a value larger than 0, an invocation on an indirect proxy with expired endpoints still triggers a locator cache update, but the update is performed in the background, and the run time uses the expired endpoints for the invocation. This avoids delaying the first invocation that follows expiry of a cache entry.

Ice.BatchAutoFlushSize

Synopsis

Ice.BatchAutoFlushSize=num (in kilobytes)

Description

This property controls how the Ice runtime deals with flushing of batch messages. If num is set to a value greater than 0, the runtime automatically forces a flush of the current batch when a new message is added to a batch and that message would cause the batch to exceed num kilobytes. If num is set to 0 or a negative number, batches must be flushed explicitly by the application. If not defined, the default value is 1024.

When flushed, batch requests are sent as a single Ice message. The Ice runtime in the receiver limits incoming messages to the maximum size specified by Ice.MessageSizeMax, therefore the sender must periodically flush batch requests (whether manually or automatically) to ensure they do not exceed the receiver's configured limit.

Ice.ClassGraphDepthMax

Synopsis

Ice.ClassGraphDepthMax=num

Description

Specifies the maximum depth for a graph of Slice class instances to unmarshal. If this maximum is reached, the Ice runtime throws a MarshalException. Reading and destroying a Slice class graph are recursive operations. This property prevents stack overflows from occurring if a sender sends a very large graph and not enough space on the stack is available. To read larger graphs, you can increase the value of this property. If not specified, the default value is 10.

Setting this property to 0 (or to a negative number) disables the depth limit altogether.

Ice.Compression.Level

Synopsis

Ice.Compression.Level=num

Description

Specifies the bzip2 compression level to use when compressing protocol messages. 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.

Ice.EventLog.Source

Synopsis

Ice.EventLog.Source=name (Windows only)

Description

Specifies the name of an event log source to be used by a Windows service that subclasses Ice::Service. The value of name represents a subkey of the Eventlog registry key. An application (or administrator) typically prepares the registry key when the service is installed. If no matching registry key is found, Windows logs events in the Application log. Any backslashes in name are silently converted to forward slashes. If not defined, Ice::Service uses the service name as specified by the --service option.

Ice.HTTPProxyHost

Synopsis

Ice.HTTPProxyHost=addr

Description

Specifies the host name or IP address of an HTTP proxy server. If addr is not empty, Ice uses the designated HTTP proxy server for all outgoing (client) connections.

Ice.HTTPProxyPort

Synopsis

Ice.HTTPProxyPort=num

Description

The port number of the HTTP proxy server. If not specified, the default value is 1080.

Ice.ImplicitContext

Synopsis

Ice.ImplicitContext=type

Description

Specifies whether a communicator has an implicit request context and, if so, at what scope the context applies. Legal values for this property are None (equivalent to the empty string), PerThread, and Shared. If not specified, the default value is None.

Ice.LogFile

Synopsis

Ice.LogFile=file

Description

Replaces the communicator's default logger with a simple file-based logger implementation. This property does not affect the per-process logger. The logger creates the specified file if necessary, otherwise it appends to the file. If the logger is unable to open the file, the application receives an InitializationException during communicator initialization. If a logger object is supplied in the InitializationData argument during communicator initialization, it takes precedence over this property.

Ice.LogFile.SizeMax

Synopsis

Ice.LogFile.SizeMax=num

Description

num is a positive integer that represents the maximum size of log files configured through Ice.LogFile, in bytes. When a log file's size reaches num, the Ice file-based logger renames this log file to baselogfilename-datetimestamp.ext and creates a new log file. The default value for num is 0, which means that the log file's size is unlimited. In this case, the Ice file-based logger opens and writes to a single log file.

Ice.LogStdErr.Convert

Synopsis

Ice.LogStdErr.Convert=num(Windows)

Description

If num is set to a value larger than 0, on Windows, the communicator's default logger converts log messages from the application's narrow string encoding to the Windows console's code page. The default value for this property is 1 when Ice.StdErr is not set, and 0 otherwise. This property is read by the first communicator created in a process; it is ignored by other communicators. 

Ice.MessageSizeMax

Synopsis

Ice.MessageSizeMax=num (in kilobytes)

Description

This property controls the maximum size (in kilobytes) of an uncompressed protocol message that is accepted by the Ice runtime. The size includes the size of the Ice protocol header. The default size is 1024 (1 megabyte).

The only purpose of this property is to prevent a malicious or defective sender from triggering a large memory allocation in a receiver. If this is not a concern, you can set Ice.MessageSizeMax to 0; setting this property to 0 (or to a negative number) disables the message size limit altogether.

If the Ice runtime in a receiver encounters an incoming message whose size exceeds the receiver's setting for Ice.MessageSizeMax, the runtime throws a MemoryLimitException and closes the connection. For example, when a client receives an oversized reply message, the result of its invocation is a MemoryLimitException. When a server receives an oversized request message, the client receives a ConnectionLostException (because the server closed the connection) and the server logs a message if Ice.Warn.Connections is set.

Ice.Nohup

Synopsis

Ice.Nohup=num

Description

If num is set to a value larger than 0, the Ice::Service C++ class ignores SIGHUP on Unix and CTRL_LOGOFF_EVENT on Windows. As a result, a server/service that sets Ice.Nohup continues to run if the user that started the server/service logs off. The default value of this property is 1.

IceGrid, IceBox (IceStorm), and Glacier2 are implemented using Ice::Service.

Ice.PrintAdapterReady

Synopsis

Ice.PrintAdapterReady=num

Description

If num is set to a value larger than 0, an object adapter prints "adapter_name ready" on standard output after activation is complete. This is useful for scripts that need to wait until an object adapter is ready to be used.

Ice.PrintProcessId

Synopsis

Ice.PrintProcessId=num

Description

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

Ice.PrintStackTraces

Synopsis

Ice.PrintStackTraces=num

Description

If num is set to a value larger than 0, Ice::LocalException collects the stack trace when a local exception is constructed. When set to 0, Ice::LocalException does not collect stack traces.

If not set, the default value depends on how the Ice C++ library is compiled: 0 for an optimized build and 1 for a debug build.

The stack trace (if collected) is included in the exception message printed by ice_print or operator<<. It’s not included in the what message.

On Windows, you need the Ice PDB files to obtain usable stack traces. If you build Ice from sources, the Ice build system always creates PDB files next to your DLLs and executables, and Windows will locate and use these PDB files.

Ice.ProgramName

Synopsis

Ice.ProgramName=name

Description

name is the program name, which is used for logging. This name 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. The default name can be overridden by setting this property.

Ice.RetryIntervals

Synopsis

Ice.RetryIntervals=num [num ...]

Description

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

Ice.ServerIdleTime

Synopsis

Ice.ServerIdleTime=num

Description

If num is set to a value larger than 0, Ice automatically calls shutdown on the communicator when its server thread pool has been idle for num seconds. The server thread pool is not idle as long as any of its thread is performing some task, like dispatching a request.

This call to shutdown shuts down the communicator's server side and causes any thread waiting on waitForShutdown to return. After that, a server will typically do some clean-up work before exiting. The default value is 0, meaning that the server will not shut down automatically. This property is often used for servers that are automatically activated by IceGrid.

For C# applications and Windows C++ applications, the server idle time takes effect only once all the server thread pool idle threads have been reaped (the thread idle time can be configured with the ThreadIdleTime thread pool property.

Ice.SOCKSProxyHost

Synopsis

Ice.SOCKSProxyHost=addr

Description

Specifies the host name or IP address of a SOCKS proxy server. If addr is not empty, Ice uses the designated SOCKS proxy server for all outgoing (client) connections.

Ice currently only supports the SOCKS4 protocol, which means only IPv4 connections are allowed.

Ice.SOCKSProxyPort

Synopsis

Ice.SOCKSProxyPort=num

Description

The port number of the SOCKS proxy server. If not specified, the default value is 1080.

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 that is created in a 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 process.

Ice.SyslogFacility

Synopsis

Ice.SyslogFacility=string (Unix only)

Description

This property sets the syslog facility to string. This property has no effect if Ice.UseSyslog is not set.

string can be any of syslog facilities: LOG_AUTH, LOG_AUTHPRIV, LOG_CRON, LOG_DAEMON, LOG_FTP, LOG_KERN, LOG_LOCAL0, LOG_LOCAL1, LOG_LOCAL2, LOG_LOCAL3, LOG_LOCAL4, LOG_LOCAL5, LOG_LOCAL6, LOG_LOCAL7, LOG_LPR, LOG_MAIL, LOG_NEWS, LOG_SYSLOG, LOG_USER, LOG_UUCP.

The default value is LOG_USER.

Ice.ToStringMode

Synopsis

Ice.ToStringMode=string 

Description

string must be one of the following: Unicode, ASCII, Compat.

This property maps to an enumerator of ToStringMode and controls how identityToString and proxyToString on the communicator escape non-printable ASCII characters and non-ASCII characters.

The default value is Unicode.

Ice.UseOSLog

Synopsis

Ice.UseOSLog=num (macOS only)

Description

TODO

Ice.UseSyslog

Synopsis

Ice.UseSyslog=num (Unix only)

Description

If num is set to a value larger than 0, a special logger is installed that logs to the syslog service instead of standard error. The identifier for syslog is the value of Ice.ProgramName. Use Ice.SyslogFacility to select a syslog facility.

Ice.UseSystemdJournal

Synopsis

Ice.UseSystemdJournal=num (Unix only)

Description

If num is set to a value larger than 0, a special logger is installed that logs to the systemd journal instead of standard error. The identifier for syslog is the value of Ice.ProgramName.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.