Configure Business Process result operations
You can configure resource limits for filtering, sorting, pagination, and exporting Business Process results and Manual Task assignment data. The properties control memory consumption and database load when processing large datasets and can be overridden for each environment.
The default values are designed to provide stable performance in environments with large Business Processes. Before increasing them, consider the available Control Tower memory, database capacity, and number of Control Tower instances.
Configure properties
Configure the following properties in ZooKeeper:
| Property | Default | Description |
|---|---|---|
results.page.max.size | 100 | Maximum number of rows that a results or assignments request can return per page. The default page size is 10 rows. Requests exceeding the configured maximum are rejected. |
results.filter.max.conditions | 10 | Maximum number of filter conditions allowed in one request. |
results.concurrency | 6 | Maximum number of filtering, sorting, and export operations that can run concurrently in one Control Tower JVM. |
results.export.concurrency | 2 | Maximum number of export operations that can use the shared concurrency limit. The value must not exceed results.concurrency. |
results.export.batch.size | 200 | Number of rows retrieved from the database in each streaming export batch. Increasing the value reduces database round trips but increases memory consumption. |
Sample settings can be as follows:
results.page.max.size=100
results.filter.max.conditions=10
results.concurrency=6
results.export.concurrency=2
results.export.batch.size=200
You can access ZooKeeper in one of the following ways:
Use the ZooNavigator UI:
URL:
https://{instance-name}-wfaw-{aws-account}-ct1.workfusion.com:10999/zoonavigatorConnection string:
{instance-name}-wfaw-{aws-account}-int1.workfusion.com:2181
Set properties in ZooKeeper CLI as described in the guide
Consider clustered deployments
The concurrency limits apply separately to each Control Tower JVM, not to the entire cluster. For example, if results.concurrency is set to 6 in a deployment with three Control Tower instances, the database can receive up to 18 concurrent result operations.
Configure the same values on each Control Tower instance and consider the combined database load when changing concurrency limits.
Troubleshoot busy responses
Filtering, sorting, and export operations share the limit defined by results.concurrency. If all operation slots are in use, additional requests wait for up to 30 seconds. If capacity does not become available, Control Tower returns a retryable HTTP 429 response.
Retry the operation when fewer result requests are running. If busy responses occur frequently, review the result-operation limits and database capacity before increasing concurrency.