JVM section

This table shows the JVM section entries in the .ini and .pni files:

Name Description Sample threads
DEFINE (Optional) The value is passed to the JVM as -Dvalue to define properties.

The -D is added by the driver. The number of these entries can be from zero to whatever is required. You should not try to put in your own -D as this can cause problems for the string arrays that are used during JVM startup.

Multivalued

All
CLASSPATH One directory or jar file that goes on the classpath. You should use one entry for each item, as the driver reformats these entries for the JVM startup invocation.

There should be at least one of these entries in configuration. Note that paths can be relative to the working directory used by Java as defined by the start_dir entry.

Supported wildcards are:

  • ./*
  • */.jar
  • ./*.JAR

Required to have at least one entry.

Multivalued

All
USER (Optional) An option that does not require the -D. A good example is the option that turns on Java debugging for the JVM. Most of these start with the minus sign.

One value per entry as the JVM, unlike command line starts, uses string arrays which may ignore a second value.

Multivalued

All
MEM_MIN (Optional) Sets minimum heap space memory for the JVM. The value is in megabytes.

Default is 64

All
MEM_MAX (Optional) Sets minimum heap space memory for the JVM. The value is in megabytes.

Default is 64

All
JVMPATH (Optional) Usually the JVM library that is loaded is the one which is in the system install. If you must change the loaded JVM, for example, to a different version, then set this parameter to the directory path to the library. The form of the path depends on the OS but should end in the library file name: for example libjvm.so in Linux and jvm.dll in Windows.

Default is JVM installed with the system.

To use a JVM different from the default, you must set the environment variables. Then, start the thread using the system command-line commands, not the GUI.

Commented out examples in MessageServer and RequestServer
START_DIR (Optional) The working directory for the JVM. This sets the System property user.dir to this path. Note that when a JVM is started you cannot change the working directory in the Java code.

Best practice is to create a directory under the site with the thread’s name and make this the START_DIR. Then, you can copy jar files and other required items, and reference CLASSPATH entries relative to this directory.

Note: Not everything the JVM does seems to be at this path. Java looks for some items from the working directory and some from the path where the JVM was started.

For example, when using the define field and setting java.util.logging properties files, it starts from the process directory instead. This is the reason the Bounce sample uses $SITEPATH to locate the logging.properties file.

Creating a file at "." creates the file in the process directory. A best practice to access this path from Java code is to always use the user.dir system property to locate this directory.

Default is the current process directory of the process that contains the driver, the standard directory for threads.

All