Explanation of *NOMAX in JVM Maximum Heap Memory (MB) entry: GCHMAX is the parameter used on the iSeries JAVA command that is essentially equivalent to -mx and -Xmx on most other platforms. It's default value is *NOMAX. From the IBM Developer Kit for Java documentation for iSeries: The GCHMAX parameter specifies the maximum amount of memory in kilobytes that the Java virtual machine can allocate. Normally, you should use the default or set this value as large as possible. However, if you are concerned about a program that uses all available memory, you can set GCHMAX to a smaller value. The default value is system dependent and model dependent. If Java virtual machine memory allocation reaches GCHMAX, all other Java virtual machine threads are stopped while garbage collection takes place. If garbage collection cannot reduce the memory allocation, the Java virtual machine stops. *NOMAX The garbage collection heap grows until all system resources are gone. Then, a synchronous garbage collection starts to reclaim the resources that are no longer in use. With *NOMAX, synchronous garbage collection occurs only if all available heap storage has been used. Properties specified on JVM Command Line: os400.aggressive.heap When the os400.aggressive.heap option is specified, the JVM will allocate threads and Garbage Collected heap in a manner that attempts to improve performance by taking locality of reference (affinity) into consideration for memory and threads. The actual locality of reference setting is determined by the Main Storage Affinity level setting of the machine. os400.pool.size Defines how much space (in kilobytes) to make available for each heap pool in the thread local heap. i5/OS Operating System tuning parameters: CHGSYSVAL SYSVAL(QTHDRSCAFN) VALUE('*NOGROUP *HIGH') Specifies whether secondary threads will have affinity to the same group of processors and memory as the initial thread or not. It also specifies the degree to which the system tries to maintain the affinity between threads and the subset of system resources they are assigned to. *NOGROUP: Indicates that secondary threads do not have a preference for the same group of processors and memory as the initial thread. Workloads that use the full processing power of a system may perform better when using this option. This is the default. *HIGH: Threads will only use the subset of system resources they have affinity to, and will wait until they become available. The default is *NORMAL (Threads will use any processor or memory in the system if the resources they have affinity to are not readily available). CHGSYSVAL SYSVAL(QTHDRSCADJ) VALUE('0') Specifies whether the system should dynamically make adjustments to the affinity of threads currently running on the system (VALUE='1') or not (VALUE='0'). If some resources are being used more than others, the system may reassign some of the threads running on the more heavily used resources to have affinity to the less used resources. The default value is '1'.