JVM Properties Reference

Properties can be passed to the Java Virtual Machine (JVM) to affect the behavior of ActiveMatrix BPM.

JVM properties are set on the BPM node using ActiveMatrix Administrator. For more information, see Configuring JVM Properties on the BPMNode.

The following table lists all of the JVM properties that can be set as a JVM argument using ActiveMatrix Administrator. Some of these properties are described in more detail in other topics. For those, links or citations are provided in the description.

JVM Property Description
com.tibco.bx.allow.null.msgpart Controls whether an exception is thrown if a required parameter is not initialized (that is, it is null) on a web service call.
  • true (default) - an exception is not thrown for a null message part.
  • false - an exception is thrown for a null message part.
com.tibco.bx.arrayDelimiter Specifies the delimiter between array elements provided in a setAvailableProcessInstanceVariables request. The default value for the delimiter is ", " (comma followed by a space) if this property is not set.

For more information, see "SOAP API - setAvailableProcessInstanceVariables" in the TIBCO ActiveMatrix BPM Developer's Guide.

com.tibco.bx.autoDelete Specifies whether process instances are automatically deleted from the database upon completion.
  • yes - automatically delete process instances that are complete.
  • no - do not automatically delete process instances.

Also see com.tibco.bx.bpel.maintenance.purgeProcess.interval.

Default = no

com.tibco.bx.autoDeleteFailedProcesses Specifies whether failed process instances are automatically deleted from the database.
  • yes - automatically delete failed process instances.
  • no - do not automatically delete failed process instances.

For more information, see "Configuration of Error Handling Behavior for Process Instances" in the TIBCO ActiveMatrix BPM Administration guide.

Default = no

com.tibco.bx.bg.globalSignalProcessor.interval Specifies how frequently expired global signals are cleaned up. Specified as either of the following:
  • P# - Where "P" indicates "periodic" and # is the number of minutes. For example, P60 causes the cleanup job to run every 60 minutes.
  • D# - Where "D" indicates "daily" and # is the hour number (1-24). For example, D20 causes the cleanup job to run daily at 8 PM.

Default = P30

Also see Expired Signals Job.

com.tibco.bx.bg.globalSignalProcessor.numMsgs The batch size for expired global-signal cleanup jobs, that is, the number of expired signals that are to be processed at one time.

Default = 500

Also see Expired Signals Job.

com.tibco.pvm.deleteWorkItem

com.tibco.bx.bg.requestQueueCleanup.batchCount

com.tibco.bx.bg.requestQueueCleanup.batchSize

com.tibco.bx.bg.requestQueueCleanup.interval

By default, rows in the PVM_REQUEST_QUEUE database table are removed when Process Manager has completed processing them.

These properties can be used to override this default behavior. For details, see Configuring Cleanup of the PVM_WORK_ITEM or PVM_REQUEST_QUEUE Database Tables

com.tibco.pvm.deleteRequestQueueItem

com.tibco.bx.bg.workItemCleanup.batchCount

com.tibco.bx.bg.workItemCleanup.batchSize

com.tibco.bx.bg.workItemCleanup.interval

By default, rows in the PVM_WORK_ITEM database table are removed when Process Manager has completed processing them.

These properties can be used to override this default behavior. For details, see Configuring Cleanup of the PVM_WORK_ITEM or PVM_REQUEST_QUEUE Database Tables

com.tibco.bx.bpel.bg.moduleCleanup.interval Used to clean up any modules from the database that have been marked for deletion. For example, the last instance of a module has been migrated or completed so that the module can now be removed. Specified as either of the following:
  • P# - Where "P" indicates "periodic" and # is the number of minutes. For example, P60 causes the cleanup job to run every 60 minutes.
  • D# - Where "D" indicates "daily" and # is the hour number (1-24). For example, D20 causes the cleanup job to run daily at 8 PM.

Default = P10 (minimum is P5)

com.tibco.bx.bpel.bg.pendingMsgProcessor.interval Specifies how frequently pending messages are cleaned up. Specified as either of the following:
  • P# - Where "P" indicates "periodic" and # is the number of minutes. For example, P60 causes the cleanup job to run every 60 minutes.
  • D# - Where "D" indicates "daily" and # is the hour number (1-24). For example, D20 causes the cleanup job to run daily at 8 PM.

Default = P30

com.tibco.bx.bpel.bg.pendingMsgProcessor.numMsgs The batch size for pending-message cleanup jobs, that is, the number of expired signals that are to be processed at one time.

Default = 500

com.tibco.bx.bpel.bg.unclaimedMsgProcessor.interval If system-wide locking is disabled (com.tibco.bx.lockOperation=false), this property specifies how frequently a background job checks for, and processes, unclaimed messages. Specified as either of the following:
  • P# - Where "P" indicates "periodic" and # is the number of minutes. For example, P60 causes it to check every 60 minutes. The lowest valid value is P1.
  • D# - Where "D" indicates "daily" and # is the hour number (1-24). For example, D20 causes it to check daily at 8 PM.

Default = P30

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.bpel.bg.unclaimedMsgProcessor.numMsgs If system-wide locking is disabled (com.tibco.bx.lockOperation=false), this property controls the maximum number of unclaimed messages that will be picked up per execution. The minimum is 50.

Default = 500

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.bpel.maintenance.purgeProcess.interval Used to automatically delete completed process instances, based on time, as follows:
  • P# - Where "P" indicates "periodic" and # is a number of minutes. For example, P60 causes completed process instances to be deleted every 60 minutes. The lowest valid value is P60.
  • D# - Where "D" indicates "daily" and # is the hour number (1-24). For example, D20 causes completed process instances to be deleted daily at 8 PM.

Default = D1 (daily at 1 AM)

Also see com.tibco.bx.autoDelete.

com.tibco.bx.engine.checkParms

Prior to version 2.2.0 of ActiveMatrix BPM, if a process called a reusable sub-process, and the sub-process had mandatory parameters, the system was not checking to ensure that the parameters contained a value. The sub-process would start without error. However, it could result in an error later in the sub-process.

The issue described above was resolved in version 2.2.0. Mandatory parameters are now checked to ensure they are not null. If the main process calls a sub-process, and there are mandatory input parameters to the sub-process, the sub-process is not started.

The com.tibco.bx.engine.checkParms property can be set to "no" to override this stricter enforcement of mandatory parameters. This can be used if you are using a pre-2.2.0 application that worked fine previously, but has issues with the stricter enforcement of mandatory parameters.

com.tibco.bx.engine.clearInMemoryTrackers If true, an in-memory instance row is cleared from the PVM_INMEM_PROC_TRACKER table when the sub-process task that started it has completed.

Default = true

com.tibco.bx.engine.recovery.failure.threshold The number of seconds after which a process engine is considered failed and needs to be recovered.

Default = 30

com.tibco.bx.engine.threadPool.size Specifies the number of PE threads in the pool for processing work. Note that this property setting overrides the engineThreadCount value set on the amx.bpm.app in ActiveMatrix Administrator.

Default = 5

com.tibco.bx.filterByOrgs If a resource is mapped to more than six organizations, and that resource starts a process instance, BX_TOO_MANY_ORG_IDS is written to the BPM.log. This property specifies whether BX_TOO_MANY_ORG_IDS is shown as a warning or an error. The valid settings are:
  • no (default) - BX_TOO_MANY_ORG_IDS is shown as a warning.
  • yes - BX_TOO_MANY_ORG_IDS is shown as an error.
com.tibco.bx.groupRQ.batchSize Controls number of rows from PVM_REQUEST_QUEUE to read in a batch.

Default = 25

Also see Configuring How Often the Process Engine Looks for Work Requests.

com.tibco.bx.groupRQ.fillLevel Maximum number of items in the in-memory queue; will read batchSize items (see com.tibco.bx.groupRQ.batchSize) until this is reached.

Default = 50

Also see Configuring How Often the Process Engine Looks for Work Requests.

com.tibco.bx.groupRQ.idleSleep Number of milliseconds to sleep before trying again when no rows are found.

Default = 100

Also see Configuring How Often the Process Engine Looks for Work Requests.

com.tibco.bx.groupRQ.lowWaterLevel The number of items in the in-memory queue, at which point the "PVM:DB Work Queue" is re-started.

Default = 10

Also see Configuring How Often the Process Engine Looks for Work Requests.

com.tibco.bx.lockOperation Specifies whether system-wide locking is enabled:
  • true (default) - system-wide locking is enabled.
  • false - system-wide locking is disabled.

Also see com.tibco.bx.bpel.bg.unclaimedMsgProcessor.interval and com.tibco.bx.bpel.bg.unclaimedMsgProcessor.numMsgs.

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.lockOperation.ModuleName This is used in conjunction with com.tibco.bx.lockPerOperation to specify locking at the module level. If com.tibco.bx.lockPerOperation=true, this property can be set to true (to enable locking) or false (to disable locking) for the module specified in ModuleName.

If this property is set (either true or false), it takes precedence over the com.tibco.bx.lockOperation.ModuleName.PortType.OperationName (see below), if specified.

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.lockOperation.ModuleName.PortType.OperationName This is used in conjunction with com.tibco.bx.lockPerOperation to specify locking at the operation level. If com.tibco.bx.lockPerOperation=true, this property can be set to true (to enable locking) or false (to disable locking) for the operation specified in OperationName. The PortType must be in the form {NamespaceURI}localPort.

Note that if the com.tibco.bx.lockOperation.ModuleName property (see above) is also specified, it takes precedence over this property.

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.lockPerOperation If system-wide locking is enabled (that is, com.tibco.bx.lockOperation=true), this property can be used to enable finer-grained control over locking. Set this property to true, then use either com.tibco.bx.lockOperation.ModuleName or com.tibco.bx.lockOperation.ModuleName.PortType.OperationName to specify locking at the module- or operation-level.

For more information, see Configuring Locking Operation on Retry When Receiving/Retrieving a Message.

com.tibco.bx.lockPerSignal If signal definition locking is enabled (by setting com.tibco.bx.lockSignal=true), this property can be used to enable finer-gained control over locking. Set this property to true, then use either com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion or com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion.signalName to enable signal locking at the application- or signal-level.

For more information see, Locking of Signal Definitions.

com.tibco.bx.lockSignal Specifies whether locking is enabled on signal definitions.

Default = true

For more information see, Locking of Signal Definitions.

com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion If locking per signal is enabled (by setting com.tibco.bx.lockPerSignal=true), this property can be used to enable signal locking at the application level, as follows:

com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion

For more information see, Locking of Signal Definitions.

com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion.signalName If locking per signal is enabled (by setting com.tibco.bx.lockPerSignal=true), this property can be used to enable signal locking at the signal level, as follows:

com.tibco.bx.lockSignal.SignalAppName.SignalAppVersion.signalName

For more information see, Locking of Signal Definitions.

com.tibco.bx.management.queryMaxResultSize The maximum number of process templates that are displayed in the TIBCO Workspace Start Process Instance dialog.

Default = 500

For more information, see "Setting How Many Templates Can Be Listed in the Workspace "Start Process Instance" Dialog" in the TIBCO ActiveMatrix BPM Administration guide.

com.tibco.bx.maxCancelChildrenBatchSize The number of process instances to cancel in a batch.

Default = 100

Note: Do not change the value of this property unless you are advised to by TIBCO Support.
com.tibco.bx.maxGlobalSignalListenerCount The number of global signal event handlers that can listen on the same signal definition with the same correlation.

Default = 100

For more information, see Maximum Listener Count.

com.tibco.bx.maxTasksPerInstance The maximum number of tasks that can be generated by a process instance. If this threshold is reached, the process instance is halted.

Default = 1000

For more information, see Configuring the Maximum Number of Tasks per Process Instance.

com.tibco.bx.showExtendedPriorities By default, process instance priorities are shown in the event log as LOW, NORMAL, HIGH, or EXCEPTIONAL (which equate to 100, 200, 300, or 400, respectively). If a process instance priority is set to a value other than 100, 200, 300, or 400, it is shown in the event log as "CUSTOM(value)".

If this property is set to "yes", and a process instance priority is set to a value other than 100, 200, 300, or 400), that integer value is shown in the event log, rather than CUSTOM(value).

Note that this only applies to process instances whose priorities are set after this property is set to "yes". Process instances whose priorities were set to a value other than 100, 200, 300, or 400 prior to setting this property to "yes" still display as CUSTOM(value).

Default = no

com.tibco.bx.suspendOnError If this property is set to "yes", and an activity throws a Java exception, Process Manager checks to see if a number of criteria are true:
  • The process instance is running against a process template that was deployed from a pre-3.5.10 version of TIBCO Business Studio.
  • There is no user catch error event in scope for the thrown exception.
  • The exception has not been raised by a user throw error event.

If all of these criteria are satisfied, the current transaction is rolled back and the process instance is placed in the SUSPENDED state. Otherwise:

  • If a catch error event is in scope for the activity, processing continues there.
  • If no catch error event is in scope, the process instance is placed in the FAILED state and purged from the BPM runtime database.

Default = yes

For more information, see "Configuration of Error Handling Behavior for Process Instances" in the TIBCO ActiveMatrix BPM Administration guide.

com.tibco.pvm.txVerification.enable This property provides a workaround for a Microsoft SQL Server defect where a commit returns successfully (in XA mode) even though the transaction has not completed. This defect can result in duplicate work items.

If this property is set to "yes", a delay is introduced between transactions to ensure that the previous transaction has committed completely.

Default = yes (if Microsoft SQL Server is being used, otherwise the default = no)

If this property is set to "yes", the properties listed below can be used to configure the transaction delay.

Also see "Setting Transaction Verification Property (SQL Server Only)" in the TIBCO ActiveMatrix BPM Installation and Configuration Guide.

com.tibco.pvm.txVerification.retryInterval

com.tibco.pvm.txVerification.timeout

com.tibco.pvm.txVerification.warn

These properties are used in conjunction with the com.tibco.pvm.txVerification.enable property (see above) to configure the transaction delay.
  • retryInterval - The number of milliseconds between checks to see if the previous transaction has committed completely. Default = 5
  • timeout - The number of milliseconds it checks to see if the previous transaction has committed completely before stopping the checks. Default = 60000 (60 seconds)
  • warn - Each time a verification check fails, "Tx[%s] verification failed, will retry in %sms" is written to the log. If this property is false (the default), the log message is written to DEBUG. If this property is true, the log message is written to the WARN level.

If the check fails after the retryInterval, "Unable to verify transaction [%s], suspending the process" is logged.

Configuring JVM Properties on the BPMNode

JVM Properties are configured using TIBCO ActiveMatrix Administrator. Use the following procedure to add a new property, delete an existing property, or modify the value of an existing property.

  1. In ActiveMatrix Administrator, select Infrastructure > Nodes.
  2. In the Nodes list, select BPMNode.
  3. In the lower pane, select the Configuration tab.
  4. Select the JVM Configuration link.

    The Properties section lists the existing JVM properties defined for the BPMNode. From this section, you can:

    • Add a new JVM property by clicking Add, then entering the name and value of the property.
    • Delete an existing JVM property by selecting the property in the list, then clicking Delete.
    • Modify the value of an existing JVM property by selecting the property in the list, then changing the value in the Value field.
  5. Click Save.
  6. Stop, then restart the BPMNode to have your changes take effect:
    1. Select the BPMNode in the Nodes list.
    2. Click Stop.
    3. When the Node State column shows that the node is stopped, click Install or Sync.

      This applies the configuration changes.

    4. Click Start.