MBeans for process indexers

Draft comment:
This topic only applies to BAW, and is located in the BAW repository. Last updated on 2025-03-13 12:15
Each JMX MBean for process indexers has a specific Object Name, some attributes that you can access, and operations that you can invoke. There is no indexer MBean available if the process federated system is directly indexed by Business Automation Workflow, and not by Process Federation Server.

MBean objectName

Every JMX MBean associated with a process indexer has an Object Name with a name. The syntax for the Object Name is com.ibm.bpm.federation.server:type=Indexers,subtype=BpdIndexers,name=indexerUniqueID.

indexerUniqueID is a string based on the ID of the process indexers and of the federated system they refer to in the Process Federation Server server.xml file, and has the following format: federatedSystemID.indexerID.

federatedSystemID is the value of the id attribute of the ibmPfs_federatedSystem element, and indexerID is the value of the id attribute of the ibmPfs_bpdIndexer element.

If no id attribute is specified for the process indexer, then Liberty assigns a default value with the format default-n, where n is a positive integer that starts at 0. In that case, the indexerUniqueID string corresponds to the federatedSystemID.default-n.

Example 1: One indexer with no indexer ID indexing a federated system with bpm1 as id is defined in the server.xml file:
<ibmPfs_federatedSystem  id="bpm1" .../>
<ibmPfs_bpdIndexer federatedSystemRef="bpm1" .../>
At runtime, one MBean is created with bpm1.default-0 as the indexerUniqueID. The resulting object name for this MBean is: com.ibm.bpm.federation.server:type=Indexers,subtype=BpdIndexers,name=bpm1.default-0.
Example 2: Two indexers with idx1 and idx2 as indexer IDs indexing one federated system with bpm1 as id are defined in the server.xml file:
<ibmPfs_federatedSystem  id="bpm1" .../>
<ibmPfs_bpdIndexer id=idx1 federatedSystemRef="bpm1" .../>
<ibmPfs_bpdIndexer id=idx2 federatedSystemRef="bpm1" .../>
At runtime, two MBeans are created. The first one with bpm1.idx1 as the indexerUniqueID, and the second one with bpm1.idx2 as the indexerUniqueID. The resulting object names for these MBeans are: com.ibm.bpm.federation.server:type=Indexers,subtype=BpdIndexers,name=bpm1.idx1, and com.ibm.bpm.federation.server:type=Indexers,subtype=BpdIndexers,name=bpm1.idx2.
Note: If more than one process indexer refers to the same federated system, and if you explicitly specify an id attribute for each of these indexers, you must ensure that each value is unique, otherwise the MBeans cannot be successfully registered.

MBean attributes

Table 1. MBean attributes
Attribute name Description Nature Type Return value
scheduledSyncTasks (1) Indicates whether the Sync Tasks maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false

scheduledSyncInstances

Indicates whether the Sync Instances maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false
scheduledSyncTaskDeletes (1) Indicates whether the Sync Task Deletes maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false

scheduledSyncInstanceDeletes

Indicates whether the Sync Instance Deletes maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false
scheduledIndexLogTrim (1) Indicates whether the Index Log Trim maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false
scheduledChangeLogCompaction (1) Indicates whether the Change Log Compaction maintenance operation is run in scheduled mode. Read/write java.lang.Boolean true or false
status The indexer status. Read only java.lang.String One of the following strings:
UNINITIALIZED
INITIALIZING
INITIALIZED
STARTING_NEW_CYCLE
CREATING_ELASTICSEARCH_INDEX
PERFORMING_CHANGELOG_COMPACTION
PERFORMING_INDEX_LOG_TRIM
PERFORMING_SYNC_TASKS
PERFORMING_SYNC_TASKS_DELETE
CLAIMING_CHANGE_LOG_ENTRIES
RETRIEVING_CHANGE_LOG_ENTRIES
RETRIEVING_TASK_DATA
INDEXING_IN_ELASTICSEARCH
LOGGING_RESULT
WAITING_FOR_NEXT_CYCLE
INTERRUPTED
currentDatabaseTime The current database time in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String The date in yyyy-MM-dd HH:MM:ss format
nextScheduledChangeLogCompaction The next Change Log Compaction maintenance operation start time, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Change Log Compaction maintenance operation is not disabled.
  • isUnscheduledOperation
    if the operation was disabled, or if the date is not yet processed.
nextScheduledSyncTasksTime The next Sync Tasks maintenance operation start time, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Sync Tasks maintenance operation is not disabled.
  • isUnscheduledOperation
    if the operation was disabled, or if the date is not yet processed.

nextScheduledSyncInstancesTime

The next Sync Instances maintenance operation start time, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Sync Instances maintenance operation is not disabled.
  • isUnscheduledOperation
    if the operation was disabled, or if the date is not yet processed.
nextScheduledSyncTaskDeletesTime The next Sync Task Deletes maintenance operation start time, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Sync Task Deletes maintenance operation is not disabled.
  • isUnscheduledOperation
    if the operation was disabled, or if the date is not yet processed.

nextScheduledSyncInstanceDeletesTime

The next Sync Instance Deletes maintenance operation start time, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Sync Instance Deletes maintenance operation is not disabled.
  • isUnscheduledOperation
    if the operation was disabled, or if the date is not yet processed.
nextScheduledIndexLogTrimTime The next Index Log Trim maintenance operation, returned in yyyy-MM-dd HH:MM:ss format. Read only java.lang.String
  • The date in yyyy-MM-dd HH:MM:ss format
    if the scheduled Index Log Trim maintenance operation is not disabled.
  • undefined
    if the operation was disabled, or if the date is not yet processed.
lastCyclesIndexerResults The indexer results over the last 10 indexing cycles. Read only java.util.List The indexer results over the last 10 indexer cycles
as a list of strings in the format: durationMillis=duration,taskIndexed=count,
startTime=startTime=yyyy-MM-dd HH:MM:ss,tasksFailed=count
numberIndexerFailures The number of indexer failures and retries during the last indexer cycle. Read only java.lang.String failures=count,numberRetries=count,
timestamp=yyyy-MM-dd HH:MM:ss
lastKnownIndexerException The last known indexer exception that was raised in previous indexer cycles. Read only java.lang.String
  • exception=exceptionName,[cause=cause],
    timestamp=yyyy-MM-dd HH:MM:ss
    :
    • cause is optional if there is no cause
    • timestamp is the time when the exception occurred.
  • undefined if no exception has occurred since the indexer is running.
lastCycleIndexingRate Gets the percentage of time spent indexing out of the idle time over the last indexer cycle. Read only java.lang.String The percentage as a floating-point number.
averageLastCyclesIndexingRate The average percentage of time spent indexing out of the idle time over the last 10 indexer cycles. Read only java.lang.String The average percentage as a floating-point number.
columnName The column name value that corresponds to this indexer in the PFS_BPD_CHANGE_LOG_CONSUMER table. Read only java.lang.String The column name for the process indexer
indexName The index name used by this indexer Read only java.lang.String The index name
lastIndexedDocumentsRate Number of indexed documents per second in the previous indexer cycle Read only java.lang.String A floating-point number
averageLastCyclesIndexedDocumentsRate The average of indexed documents per second over the last 25 indexer cycles Read only java.lang.String The average percentage as a floating-point number.
averageClaimedChangeLogEntriesDurations The average of durations in milliseconds for claiming change log entries over the last 25 indexer cycles Read only java.lang.String The average percentage as a floating-point number.
averageFetchDataToIndexDurations The average of durations in milliseconds for fetching data to index over the last 25 indexer cycles Read only java.lang.String The average percentage as a floating-point number.
averageConsumedChangeLogEntriesDurations The average of durations in milliseconds for consuming change log entries over the last 25 indexer cycles Read only java.lang.String The average percentage as a floating-point number.
1) If this attribute is set to false, the scheduled maintenance operation is disabled until the new Process Federation Server restarts, unless the attribute is set back to true in the meantime.

MBean operations

Table 2. MBean operations
Operation name Description Nature Return Value
runUnscheduledChangeLogCompaction Runs the Change Log Compaction operation immediately, unless the scheduled mode for this operation was not disabled.
Note: When the compaction runs as a non-scheduled operation, the compactionProcessingThreshold that is used internally to defer compaction is ignored.
None
  • status=acknowledged, processBatchSize=<maintenanceProcessingBatchSize>, processCount=<number of rows deleted>, allDatabaseEntryProcessed=<Boolean>
    • The processBatchSize property is determined by the value of the maintenanceProcessingBatchSize property.
    • processCount is determined by the number of rows deleted in the Compaction operation. The compaction is run in batches sizes determined by the value of the compactionProcessingBatchSize property.
    • allDatabaseEntryProcessed is determined by comparing the number of rows deleted by the unscheduled compaction job with the value of the maintenanceProcessingBatchSize property. If the number of rows deleted by the unscheduled compaction job (processCount) is larger than the value of maintenanceProcessingBatchSize (processBatchSize), then the allDatabaseEntriesProcessed return value will return false. Therefore, you must ensure that the value of the compactionProcessingBatchSize property is greater than the value of the maintenanceProcessingBatchSize property.
  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.
runUnscheduledSyncTasks Runs the Sync Tasks operation immediately, unless the scheduled mode for this operation was not disabled. None
  • status=acknowledged,allDatabaseEntriesProcessed=boolean,other_properties upon completion of the Sync Tasks operation execution.

    The Boolean value for the property allDatabaseEntriesProcessed is true if all the entries in the database were processed in a single batch, or false if there are remaining entries to be processed. In that latter case, the operation can be relaunched to process the remaining entries.

  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.

runUnscheduledSyncInstances

Runs the Sync Instances immediately, unless the scheduled mode for this operation was not disabled. None
  • status=acknowledged,allDatabaseEntriesProcessed=boolean,other_properties upon completion of the Sync Instances operation execution.

    The Boolean value for the property allDatabaseEntriesProcessed is true if all the entries in the database were processed in a single batch, or false if there are remaining entries to be processed. In that latter case, the operation can be relaunched to process the remaining entries.

  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.
runUnscheduledSyncTaskDeletes Runs the Sync Task Deletes immediately, unless the scheduled mode for this operation was not disabled. None
  • status=acknowledged,allDatabaseEntriesProcessed=boolean,other_properties upon completion of the Sync Task Deletes operation execution.

    The Boolean value for the property allDatabaseEntriesProcessed is true if all the entries in the database were processed in a single batch, or false if there are remaining entries to be processed. In that latter case, the operation can be relaunched to process the remaining entries.

  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.

runUnscheduledSyncInstanceDeletes

Runs the Sync Instance Deletes immediately, unless the scheduled mode for this operation was not disabled. None
  • status=acknowledged,allDatabaseEntriesProcessed=boolean,other_properties upon completion of the Sync Instance Deletes operation execution.

    The Boolean value for the property allDatabaseEntriesProcessed is true if all the entries in the database were processed in a single batch, or false if there are remaining entries to be processed. In that latter case, the operation can be relaunched to process the remaining entries.

  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.
runUnscheduledIndexLogTrim Runs the Index Log Trim immediately, unless the scheduled mode for this operation was not disabled. None
  • status=acknowledged,allDatabaseEntriesProcessed=boolean,other_properties upon completion of the Index Log Trim operation execution.

    The Boolean value for the property allDatabaseEntriesProcessed is true if all the entries in the database were processed in a single batch, or false if there are remaining entries to be processed. In that latter case, the operation can be relaunched to process the remaining entries.

  • status=failed,reason=scheduledOperationEnabled if the scheduled maintenance operation is not disabled.

The execution of a maintenance operation in unscheduled mode is always synchronous, as any other operation performed on the MBean, which means that the operation returns only when it is complete.