Controlling warning limits for variable sizes of BPDs and service flows

In IBM BPM, there are some settings in configuration files that specify warning limits for the variable sizes of business process definitions (BPDs) and service flows. If a warning limit is equaled or exceeded for any of the settings, a warning message is logged to the SystemOut.log file. You can, however, override the default warning limits for the settings by adding the settings to the 100Custom.xml file. By overriding the default warning limits of the settings, you can find the BPD, process and activity, or service flow and step name, which is causing large arrays or large values or that is using a large number of variables. This enables you to troubleshoot out-of-memory exceptions on servers.

Before you begin

For detailed information about resolving different kinds of memory issues for servers, see the topic Troubleshooting memory issues for Business Process Manager servers.

About this task

In addition to warning messages, the following data is also logged to the SystemOut.log file for the variables of BPDs and service flows:

  • For BPDs:
    • The specified warning limit
    • The actual variable size
    • The process activity
    • The process instance
  • For service flows:
    • The specified warning limit
    • The actual variable size
    • The step name
    • The service name

The following settings specify warning limits for the variable sizes of BPDs and service flows:

twobject-array-length-warning-limit
Specifies a warning limit for an array of variables or an array of properties in a complex BO. The warning limit check is performed whenever a new element is added to an array. The default warning limit is 10000. To ignore any specified limit wherever it is found, you can specify -1.
IBM BPM version 8570 cumulative fix 2017.03saved-symbol-table-size
IBM BPM version 8570 cumulative fix 2017.03Specifies a warning limit for the execution context, which includes the variable table. The warning limit check is performed whenever an activity is completed in a BPD or process (or a step is completed in a service flow). However, a warning limit check is only performed after the execution context is saved. The setting accepts the following child element:
soft
Specifies the warning limit that causes a warning message to be issued. The default value is -1, which causes any specified limit to be ignored wherever it is found.
If you want to change the warning limit for a setting, you can override the value of the warning limit by adding or updating the setting in your 100Custom.xml files. For example, to add all of the settings to a 100Custom.xml file, you would add the following elements under the <properties> element and modify the values as needed:
<server>
   <twobject-array-length-warning-limit merge="replace">10000</twobject-array-length-warning-limit>
   IBM BPM version 8570 cumulative fix 2017.03<limits>
      IBM BPM version 8570 cumulative fix 2017.03<saved-symbol-table-size><soft merge="replace">-1</soft></saved-symbol-table-size>
   IBM BPM version 8570 cumulative fix 2017.03</limits>
</server>

For information about the individual 100Custom.xml files that need to be updated and their locations, see the topic Location of configuration files.

However, to consistently and reliably change a warning limit in all of the 100Custom.xml files in your IBM® BPM deployment environment, it is recommended that you use the updateBPMConfig command as described in the following procedure:

Procedure

  1. Stop the servers for Process Server and Process Center.
  2. Start the scripting client in disconnected mode as described in the topic updateBPMConfig command.
  3. Run the following commands to simultaneously update all affected servers:
    wsadmin> AdminTask.updateBPMConfig( [ '-create', '/server' ] )
    wsadmin> AdminTask.updateBPMConfig( [ '-create', '/server/twobject-array-length-warning-limit', '-xNodeValue', warning_limit ] )
    IBM BPM version 8570 cumulative fix 2017.03wsadmin> AdminTask.updateBPMConfig( [ '-create', '/server/limits' ] )
    IBM BPM version 8570 cumulative fix 2017.03wsadmin> AdminTask.updateBPMConfig( [ '-create', '/server/limits/saved-symbol-table-size' ] )
    IBM BPM version 8570 cumulative fix 2017.03wsadmin> AdminTask.updateBPMConfig( [ '-create', '/server/limits/saved-symbol-table-size/soft', '-xNodeValue', warning_limit ] )
    wsadmin> AdminConfig.save()

    Replace the warning_limit variable with a new value for the warning limit.

  4. Restart the servers.

Results

The recommended way of updating the 100Custom.xml files is by running the updateBPMConfig command. However, if the updates are unsuccessful, you can manually update the files by following the steps in the topic Setting configuration properties using 100Custom.xml.