Modifying the stateful session bean cache

To modify the default cache timeout, edit the session-bean-cache-expiry-timeout value in the 100Custom.xml file.

If your IBM® Business Process Manager server has many users connected, the server's heap might grow to huge values. If you perform a heap dump and analyze it, you can see that a large part of the heap is occupied by WebWorkflowManager objects nested in HTTP session objects.

IBM Business Process Manager keeps a cache of stateful session beans (one session bean for each human service that a user works with). This cache is stored inside the user's HTTP session. The cache update policy removes a stateful session bean from the cache if it has not been accessed for more than one hour. If a user works with multiple human services, many stateful session beans will be in the cache for this user.

Notes:
  • For human services of user tasks in a business process definition (BPD) instance, the state of the stateful session bean is saved in the database with the associated task; therefore, the cache for these human services is not needed.
  • Human services that start directly from Process Portal (exposed as startable) do not have an associated task; therefore, the cache is not modified for these services.

To modify the default cache timeout (60 minutes), edit the 100Custom.xml file, which is located in the following directory:profile-root/config/cells/cell-name>/nodes/node-name/servers/server-name/server-type/configwhere server-type can be either process-center or process-server.

Add the following definition to the server element:
<web-workflow-manager merge="mergeChildren">
          <session-bean-cache-expiry-timeout>timeout in minutes</session-bean-cache-expiry-timeout>
        </web-workflow-manager>
An example 100Custom.xml file that sets the timeout value to 50 minutes would look like this:
<properties>
    <server>
        <web-workflow-manager merge="mergeChildren">
            <session-bean-cache-expiry-timeout>50</session-bean-cache-expiry-timeout>
        </web-workflow-manager>
    </server>
</properties>

If your processes run on a cluster, you must make this change for each cluster member.