Configuration of Error Handling Behavior for Process Instances

A process instance may fail if an executing activity encounters an unexpected error condition (that is, one that is not caught and handled by the process itself).

For example:

  • A system out-of-memory error occurs while a script task is running.
  • A database connection failure occurs while a database service task is performing an update.
  • A web service task cannot connect to the web service because it is not available.
    Note: Certain activities can be configured to automatically retry a number of times before failing. See Activity Retry Settings for more information.

If a system error causes a process instance activity to throw a Java exception, Process Manager places the process instance in a SUSPENDED, HALTED or FAILED state, depending on:

  • the error handling configuration that has been applied at the activity, process and/or system-wide levels. The BPM runtime supports two types of error handling - suspendOnError and haltOnError.
  • the version of TIBCO Business Studio that was used to deploy the process application:
    • suspendOnError is only supported by a process application that was deployed from a pre-3.5.10 version of TIBCO Business Studio.
    • haltOnError is only supported by a process application that was deployed from TIBCO Business Studio version 3.5.10 or later releases..
      Note: You must manually keep track of what version of TIBCO Business Studio was used to deploy a process application. There is no way to obtain this information from TIBCO Business Studio, TIBCO Administrator or a BPM client application.
  • The setting of the JVM property com.tibco.bx.autoDeleteFailedProcesses. By default, this property is not present, and failed process instances are not purged. If you want to reenable the purging of failed process instances, add the JVM property com.tibco.bx.autoDeleteFailedProcesses="yes" in the BPM node configuration in ActiveMatrix Administrator. This must be done on each BPM node.
    Note: If process instances failed before changing this property to "yes", they are not purged. Only failed process instances that failed after the property was set to "yes" are purged. To purge process instances that failed before setting the property, use the purgeTerminatedProcessInstances API using the processInstances parameter. For more information see TIBCO Active matrix BPM Developer's Guide.

The following diagram shows these state transitions, along with the options that are available to deal with suspended or halted process instances.