.ini and .pni entries

The thread that uses the Java protocol is configured through an .ini file with the same name of the thread. This must be located in the thread’s site directory.

  • The thread-level .ini file consists of [DRIVER]

    This section contains the parameters for this instance of the driver.

  • The process that uses the Java protocol is configured through a .pni file.
  • The process level .pni file consists of [JVM]

    This section sets up the JVM that is used by the driver.

The .ini and .pni

Similar to the JVM auto defines, the .ini and .pni files have some predefined variables that they can use. These are the subset of the auto defines, used by prefixing with "$" as shown in the sample: files ignore case on keys, permit the normal line continues using a "\" and comments use the "#" character. Comments may follow a key value or be a complete line in the file. Comments cannot use the "\" to continue to the next line in the file.

  • ROOTPATH: The path to the install directory.
  • SITEPATH: The path to the site directory.
  • PROCESSPATH: The path to the thread's process directory.

This is the content of a sample configuration file:

 files ignore case on keys, permit the normal[DRIVER]
DRIVERTYPE = class # A class type or application type driver
CLASS = com/infor/cloverleaf/ib/IbLink # The class loaded for method calls that start/stop things
STARTMETHOD = doStart # method called when driver starts
STARTARG = # No arg required
STOPMETHOD = doStop # Do java clean up when driver stops
STOPARG= # No arg required
INITMETHOD =  doInit  # initialize things before the driver starts
INITARG  = # Arg to init method not required
RUNMETHOD = doMsg  # The method to run when the engine sends a message to the driver
RUNARG = # Run method user argument 
NOTIFYMETHOD =  # Class method called when new keyed message arrives
WRTOKMETHOD = # Called when engine main checks to see if ok to write message
TIMEMETHOD = # Called using timer set up by netconfig -- adv. sch. or just regular
TIMEMETHODARG = # Argument to the timemethod call 
DELAY = 10 # Delay for Java debugger attach in seconds
MSG_MEM_MAX = 100  #  Max memory use for keyed messages
KEYED_MSGS = FALSE #  Doing keyed messages?
NO_KEY_SEND = true  # True does send using RUNMETHOD, false no key is error
no_JVM_destroy = false # if false the jvm destroy method is called when jvm shuts down, if true then it is not called
# LINKCLASS is required in cases where java sends messages to the Cloverleaf engine.  It should always be ToCloverleafLink,
# unless the user implements their own version of ToCloverleafLink.
LINKCLASS = com/infor/cloverleaf/driver/ToCloverleafLink
[JVM]
# example of how to use an endorsed directory and a define
define = java.endorsed.dirs=endorsed
classpath = $ROOTPATH/lib/java/JavaDriver.jar # all projects require the driver
classpath = ./InboundServer.jar # Starting in site so relative ok, get .jar's
classpath = . # Get any classes there and maybe the wsdl file if required
mem_min = 64
mem_max = 128 # Little required for testing
# Turn on remote debug
user = -agentlib:jdwp=transport=dt_socket,server=y,address=7011,suspend=n
# Set the working dir for the JVM as the dir specific to this thread.  By convention it is the same as the thread name, but can be somewhere else. 
start_dir = $SITEPATH/InboundServer

The engine supports case-insensitive entry names, but the GUI does not. The GUI only supports uppercase entry names. If there is a lowercase, or mixed, name in the file, then the GUI fails to load.

This is a list of the available .ini and .pni entries, their meanings, and a list of samples that make use of them. This list is broken down into two parts:

  • Driver section entries (.ini)
  • JVM section entries (.pni)

All entry names are case-insensitive. Values are not necessarily case-insensitive, depending on what is using them. In this case, you should assume they are case-sensitive.