White Papers
Abstract
This white paper provides a deep explanation of the Process Portal search index processes and operations, common issues, troubleshooting steps, maintenance recommendations, and more.
Content
Introduction
The purpose of this article is to help Administrators have a deeper understanding of the Process Portal search index. The article details how the indexing process works, the configurations available, how to understand when there is a problem, and how to resolve common issues related to the search index. The search indexing process is a “black box” operating behind the scenes in Business Automation Workflow. Administrators are largely unaware when the search index is experiencing issues (such as being out of sync) until users report discrepancies in the data they observe in Process Portal.
Understanding the search indexing process helps Admins troubleshoot the indexer and determine the root cause by being able to identify the “point of failure” in the process. This document provides best practices for configuring, maintaining, cleaning up, and resolving common issues that can arise with the Process Portal search index.
How it Works
Brief Description
- BPM_TASK_INDEX – keeps records of BPM tasks, reflection of the operational LSW_TASK data
- BPM_INSTANCE_INDEX – keeps records of BPM process instances, reflection of the operational LSW_BPD_INSTANCE data
- BPM_TASK_INDEX_JOB – keeps records of each indexing “job” for each node
Phase 1 - Operational Data Changes Trigger Runtime Events
Phase 2 - Search Event Point Listener Subscribed to the Events Triggers Updates to Index-Tracking Tables
When process instance data and tasks are deleted from Business Automation Workflow then the SQL Query updates up to 50,000 rows at once in the corresponding tracking tables. This SQL Query operation updates the DELETED_DATETIME field from NULL to the current database timestamp.
Phase 3 – De-queueing the Task and Process Instances that need to be updated
CWLLG3231W: Task Index entries {LIST OF TASK IDS} took longer than 1 second to commit, retrying.
CWLLG3230W: Instance Index entries {LIST OF INSTANCE IDS} took longer than 1 second to commit, retrying.
Phase 4 - Updating the Lucene Search Index
The purge process for deleting documents that are deleted from the operational tables also occurs in this thread. This thread checks for records in the tracking tables that have a DELETED_DATETIME value that is newer than the last index purge time.
Each indexing job generates new records in the BPM_TASK_INDEX_JOB database table. This thread also deletes records of indexing jobs that are older than 7 days. The records are checked hourly to verify whether any job records need to be deleted.
Additionally, the ProcessIndexUpdatedDaemon thread is also responsible for re-creating the Lucene search index during the processIndexFullReIndex command. This activity is completed by directly parsing the search indexing tables, which create the corresponding documents in the Lucene index.
Configuring the Process Portal Search Index
<search-index>
<task-index-enabled merge=”replace”>true</task-index-enabled>
<task-index-update-interval merge=”replace”>5</task-index-update-interval>
<task-index-update-completed-tasks merge=”replace”>false</task-index-update-completed-tasks>
<task-index-store-fields merge=”replace”>false</task-index-store-fields>
<task-index-work-manager merge=”replace”>wm/default</task-index-work-manager>
<task-index-include-system-tasks merge=”replace”>false</task-index-include-system-tasks>
<process-index-instance-completion-best-effort merge=”replace”>false</process-index-instance-completion-best-effort>
</search-index>
<task-index-enabled>
By default, the value is true. Updating the value to false disables the search index on the node in which the change was made. The search filter field is no longer available in Process Portal. Users observe the change in the Work, Processes, Team Performance, and Process Performance dashboards. Users observe that Quick Stats are unavailable.
If you have multiple nodes and disable indexing on only some nodes, then the search index can get out of sync for all nodes. The nodes with indexing disabled do not register the runtime events and thus not trigger the updates to the index-tracking tables.
<task-index-update-interval>
Increasing this property causes the indexer thread to have a longer period of times between processing records waiting to be indexed. It decreases the load of the indexer. Users might also observe that tasks and process instances require a longer time before they are available for searches and seeing Quick Stats updated in the dashboards.
<task-index-update-completed-tasks>
<task-index-store-fields>
<task-index-work-manager>
<task-index-include-system-tasks>
<process-index-instance-completion-best-effort>
<process-index-queue-update-size>
Using a Shared Search Index
The index can be maintained in only one cluster member at a time. It is enforced by using a locking strategy on the index.
To set up a shared search index, you can use a shared network storage solution for your index. Using WebSphere Admin Console navigate to the environment variables by clicking Environment > WebSphere variables. Update the value of the cell scoped BPM_SEARCH_TASK_INDEX_ROOT variable to point to the common location for each cell.
Maintaining the Process Portal Search Index
Stay Current on the Latest Fixes
Index Diagnostic Utility Tool
Index Diagnostic Utility Tool v3.0
- This version of the Index Diagnostic tool is supported for version of IBM Business Automation Workflow up to version 23.0.2.
- Download the Index Diagnostic Utility Tool V3.0: index-diagnostic.zip
Index Diagnostic Utility Tool v4.0
- This version of the Index Diagnostic tool is supported for IBM Business Automation Workflow 24.0.0 and 24.0.1 and future releases.
- Download the Index Diagnostic Utility Tool V4.0: index-diagnostic_4.0.zip
Clean up the Search-Index-Tracking database Tables
Verify the number of records in your tracking tables that represent deleted tasks and process instances by using the following queries, substituting <schema_name> where indicated.
SELECT COUNT(1) FROM <schema_name>.BPM_TASK_INDEX WHERE DELETED_DATETIME IS NOT NULL;
SELECT COUNT(1) FROM <schema_name>.BPM_INSTANCE_INDEX WHERE DELETED_DATETIME IS NOT NULL;
processIndexRemoveDeleted command before you can successfully run the indexTablesCleanup command. If the indexTablesCleanup command returns an error regarding the value of the parameter that is provided for the number of nodes, then complete some additional steps to run the command successfully. These additional steps are documented in this technote: https://www.ibm.com/support/pages/methods-provided-ibm-clean-bpmtaskindex-and-bpminstancetable-do-not-workMaintain and Tune the database
How to Determine an Issue Exist
Process Portal Observations
Index Diagnostic Reports
Server Logs
Database Deadlocks & Lock Escalations
Javacore & Heap dumps
How to Resolve Common Issues
Solving Simple Out of Sync Scenarios
CWLLG0763I: The IBM BPM process search full re-index job was successfully requested. Process indexing will begin on the next scheduled process index update interval.
CWLLG0764I: The BPM process search full re-index job was successfully started.
CWLLG0765I: The IBM BPM process search full re-index job was successfully completed.
When the command completes, the CWLLG0765I message indicates how many tasks and process instance documents were updated in the search index.
High CPU Usage & OutofMemoryError Exceptions due to TaskIndexVO
Search Index Job Commits Frequently Failing
ProcessIndexQ W com.ibm.bpm.search.process.spi.impl.ProcessIndexQueueDaemon updateTaskQueueItems() Task Index [1935094] took longer than 1 second to commit, retrying.
This message is an indication that the throughput of the number of tasks and instances attempted to be updated in one indexing job is too high and needs to be regulated. The fix APAR JR55895 resolves this issue by introducing batching to the indexing process. By default each batch being updated at one time is 20 records. APAR JR55895 provides a new configurable property, <process-index-queue-update-size>, which changes the number of records that can be updated in one batch.
Perform the following steps to resolve the issue:
- Tune the <process-index-queue-update-size> property. Decreasing the value reduces the time it takes to run
- Tune the database to ensure allocated resources are sufficient and run REORG & RESTATS on tracking tables
Database Deadlocks & Lock Escalations
NullPointerException Errors Reported in the Server Logs
Providing MustGather data for IBM BPM Support
Was this topic helpful?
Document Information
Modified date:
09 September 2025
UID
ibm11074028