Configuring Locking Operation on Retry When Receiving/Retrieving a Message

Locking is enabled by default. Disabling it will help to avoid database row lock contention when dealing with high volumes of correlation and event handlers. It might introduce delays in processing messages when a message is being delivered at the exact same time as a corresponding receiver task.

To disable locking system-wide, set the JVM property com.tibco.bx.lockOperation to "false". If locking is disabled, a background job that checks the messages that have not been claimed yet is started. To control its execution frequency, set the bpelUnclaimedPendingMsgProcessorInterval property in the pvm.properties file (default =P30 (30 minutes), lowest possible value is 1 minute - P1). The bpelUnclaimedPendingMsgProcessorNumMsgs property in the pvm.properties file controls the maximum number of messages that a job will pick up per execution (default is 500, minimum 50).

If system-wide locking is enabled, (com.tibco.bx.lockPerOperation=true) finer-grained control can be gained by using the following JVM properties:

  • module level: com.tibco.bx.lockOperation.ModuleName - if this property is defined (whether it is true or false) then the operation level property is not going to take effect.
  • operation level: com.tibco.bx.lockOperation.ModuleName.PortType.OperationName (where PortType is in the form of {NamespaceURI}localPart).
Important: The background job will not be running when system-wide locking is enabled, which introduces a possibility of an unclaimed message and a stuck instance in case of concurrent processing as mentioned above.

Modifying JVM Properties

To change the setting of the JVM properties that are described above, use ActiveMatrix Administrator to update the Java Virtual Machine (JVM) configuration for the ActiveMatrix BPM nodes. You need to add (and set) the relevant properties on the JVM Configuration page within the Configuration tab. When you have done this, the properties are added to each BPM node's .tra file.

For additional information, see JVM Properties Reference.

Modifying Properties in the pvm.properties File

The bx.properties file is typically located in the following folder (it may be different in a distributed environment):

CONFIG_HOME/bpm/bpm_app_name/configuration

For more information about properties files, see BPM Properties Files.