IBM Streams 4.2.1
Configuration settings for Java memory issues
If Java™ out-of-memory errors occur when you use
IBM®
Streams, you can allocate more memory for the Java environment by increasing the maximum JVM size for IBM
Streams services and user interfaces.
A property value of undefined indicates that a default value is not set for the property.
Updating the JVM size for IBM Streams services
If you are running the domain controller service as a registered Linux system service, the default maximum
JVM size is 1024 megabytes. You can use the following streamtool commands to set
the JVM size for the controller to a different value:
- registerdomainhost
- chdomainhostconfig
- getdomainhostconfig
- rmdomainhostconfig
For the other IBM
Streams services, you can either explicitly set the maximum JVM size, or allow
IBM
Streams to select a value based on the setting of the
domain.jvmSizeComputationEnabled property:
- If the domain.jvmSizeComputationEnabled property is set to the default value of true, IBM Streams selects a maximum JVM size based on the system memory usage.
- If the domain.jvmSizeComputationEnabled property is set to false, IBM Streams selects a maximum JVM size based on the system default size.
You can specify the JVM size for IBM Streams services by using the following domain and instance properties:
- controller.maximumJvmSize=1024 (Default)
- domainServiceContainer.initialJvmSize=undefined
- domainServiceContainer.maximumJvmSize=undefined
- instanceServiceContainer.initialJvmSize=undefined
- instanceServiceContainer.maximumJvmSize=undefined
For more information about the controller and domain properties, enter streamtool man domainproperties. For more information about the instance properties, enter streamtool man properties.
If the security.runAsRoot property is set to true, the
authentication and authorization service and logging service can run independently. Use the following domain properties to specify the JVM size for these services:
- aas.initialJvmSize=undefined
- aas.maximumJvmSize=undefined
- auditlog.initialJvmSize=undefined
- auditlog.maximumJvmSize=undefined
Updating the JVM size for the Streams Console
For Streams Console errors, you can either explicitly set the maximum JVM size for the web management service, or allow IBM
Streams to select a value based on the setting of the
domain.jvmSizeComputationEnabled property:
- If the domain.jvmSizeComputationEnabled property is set to the default value of true, IBM Streams selects a maximum JVM size based on the system memory usage.
- If the domain.jvmSizeComputationEnabled property is set to false, IBM Streams selects a maximum JVM size based on the system default size.
To increase the amount of memory that can be allocated to the Java environment for the web management service, use the following domain properties:
- sws.initialJvmSize=undefined
- sws.maximumJvmSize=undefined
For troubleshooting information, see Java out-of-memory error in the Streams Console.
Updating the JVM size for the streamtool command-line interface
For streamtool command errors, you can set the
maximum JVM size by using the STREAMTOOL_MAX_JVM_SIZE environment variable, for
example:
export STREAMTOOL_MAX_JVM_SIZE=size
Notes:
- The size that you specify cannot exceed the amount of memory that is available on the resource where you run streamtool commands. For a size of 256 megabytes, specify 256m. For a size of 1 gigabyte, specify 1g.
- If the STREAMTOOL_MAX_JVM_SIZE environment variable is not set, IBM Streams selects a maximum JVM size based on the system default size.
For troubleshooting information, see Java out-of-memory error when using streamtool commands.