Embedded JVM configuration

This page describes the configuration items for a C DataSource application’s embedded Java virtual machine (JVM).

For information on configuring the JVM used to run a Java DataSource application, see Configuring a Java DataSource’s JVM.

jvm-global-classpath

jvm-global-classpath specifies the classpath of a C DataSource’s embedded JVM.

You can specify multiple classpaths on the same line, using a space separator, like this:

jvm-global-classpath %r/lib/java/jmx-child-classloader.jar %r/lib/java/common-jmx.jar

You can also specify multiple classpaths, using a separate jvm-global-classpath item for each one; for example:

jvm-global-classpath %r/lib/java/jmx-child-classloader.jar
jvm-global-classpath %r/lib/java/common-jmx.jar

The classpath can contain the %r parameter; at run time, %r is replaced by the root directory (application-root) under which the DataSource application runs, so you can define the classpath location relative to this.

You can also specify a classpath for a specific class, using the classpath option of add-javaclass.

Use in: C

Syntax: jvm-global-classpath <classpath>

Type: array of strings

Default value: %r/lib/java

jvm-location

jvm-location specifies an absolute file path to a JVM library. When this configuration item is set, a C DataSource application loads an embedded JVM.

The file path to the JVM library must be absolute and include the file name of the library. For JVMs running on Linux, the filename is usually libjvm.so; for JVMs running on Windows, it’s usually jvm.dll.

The Deployment Framework automatically sets a JVM_LOCATION configuration variable based on the value of the JAVA_HOME variable, or a platform appropriate default if JAVA_HOME is not set. This enables module kits and feature blades to activate the embedded JVM of their parent C DataSource application by including this generic line of configuration:

jvm-location ${JVM_LOCATION}
If the Deployment Framework fails to correctly set JVM_LOCATION, you can use the dfw java command to set an explicit path to a JVM library.

Use in: C

Syntax: jvm-location <absolute-file-path-and-JVM-filename>

Type: string

Default value: [none]

Example: /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so

jvm-options

jvm-options specifies startup options for a C DataSource application’s embedded JVM. You can specify any of the valid Java command line options.

You can specify multiple options in one instance of jvm-options or use a separate instance of jvm-options per startup option. The two examples below are equivalent.

jvm-options -Xms256m -Xmx256m
jvm-options -Xms256m
jvm-options -Xmx256m

Use in: C

Syntax: jvm-options <java-command-line-options>

Type: array of strings

Default value: [none]

add-javaclass

add-javaclass specifies the main (entry) class of a C DataSource’s Java module. Java modules are used to extend a C DataSource application’s functionality. See, for example, Transformer’s Refiner module.

For examples of how to use add-javaclass within Caplin Platform blades, see:

Use in: C

Syntax:

add-javaclass
   class-id     [string]
   class-name   [string]
   classpath    [array of strings]
end-javaclass

The options for add-javaclass are:

Option Type Default Description

class-id

string

[none]

A short identifier of the Java class. When the Java module is part of a Java-based Transformer Service blade, class-id must be set to the blade name.

class-name

string

[none]

The fully-qualified class name of the Java module to load.

classpath

array of strings

[none]

One or more space-separated Java classpaths that define where the class in class-name is to be loaded from; for example:

classpath %r/lib/java/jmx-child-classloader.jar %r/lib/java/common-jmx.jar

You can have multiple occurrences of classpath in the same add-javaclass item. For example, the classpath above can be rewritten as two classpath options:

classpath %r/lib/java/jmx-child-classloader.jar
classpath %r/lib/java/common-jmx.jar

See also: