This topic applies only to the IBM Business Process Manager Advanced configuration.

Shared work items

Using shared work items is an optimization to improve the performance of database queries and reduce the database input/output. If you create a new Business Process Choreographer configuration, it automatically uses shared work items. If you migrated your Business Process Choreographer configuration using shared work items is optional.

What are shared work items?

Work items are created in the Business Process Choreographer database for each combination of human task instance and all people who are permitted to perform actions on that instance. If the number of human task instances and the number of users increases significantly, the number of work items in the database can grow so large that the database performance is affected.

The idea behind shared work items is an optimized implementation of work items, such that redundant information about work items is not stored in the database. This can improve the performance of many BPEL process and human task queries. Whether shared work items are being used, or not, is transparent to the users of Business Process Choreographer APIs.

How to decide whether to add support for shared work items

It is only if you migrate your Business Process Choreographer configuration from Version 7.0.0.2 or earlier, that the support for shared work items is not activated. Although activating is optional, certain factors indicate that using shared work items will improve performance.

  • If you only have hundreds or a few thousands of human task instances in your system, there is probably little or no performance advantage in migrating to using shared work items.
  • If you have hundreds of thousands of human task instances in your system, and your task list and process list queries are taking too long, migrating to using shared work items should improve the performance.
  • Using shared work items can improve the performance of the following queries:
    • query()
    • queryAll()
    • queryEntities()
    • queryEntityCount()
    • queryRows()
    • queryRowCount()

Restrictions

Some queries can only be resolved using the non-shared work items. This means that enabling support for shared work items will not improve the performance of the following types of queries:
  • Queries that run against the WORK_ITEM view exclusively.
  • Queries that reference one or more of the following columns in the WORK_ITEM view:
    • ASSOC_OBJECT_TYPE
    • ASSOC_OID
    • OBJECT_ID
    • CREATION_TIME
    • OBJECT_TYPE
  • Queries referencing a custom table that is directly joined with the WORK_ITEM view.
  • Queries that were created as materialized views.
  • Queries that use authorization with inherited work items.