Modify configuration properties to troubleshoot issues and tune performance
Typically modified values
# increase in case of a large DB server and much Data Store-related work
wf.datastore.connection.pool.max.connections
# increase when there are many simultaneously running BP instances
# default value changed to 40 in Control Tower 10.0 from 3 in prior versions
bp.step.transition.pool.size
Configuration in workfusion.properties
Database connection settings
In v10.0, max number of concurrent DB connections should be >= count of Control Tower (CT) BEP Workers running on the cluster.
Each BEP Worker can connect to a Data Store (DS) with it own connection pool. There is no shared connection pool for all CT BEP Workers.
# minimum number of connections in a CT DB connection pool
mturkds.database.c3p0.min_size=20
# upper limit of DB connections in the pool
mturkds.database.c3p0.max_size=300
# upper limit of the Data Store DB connections in the pool (used by direct JDBC calls in DS plug-ins)
wf.datastore.connection.pool.max.connections=30
Bot Task execution settings
# thread pool size used by the Bot Task executor without the specified Bot Source
bot.source.thread.pool.size.default=5
# number of concurrently processed bot record results (both successful and failed)
wf.bot.execution.results.handler.pool.size=20
# number of concurrently scheduled Bot Tasks after the step transition
wf.bot.execution.step.transition.pool.size=3
# max number of queued bot execution results waiting for result handling
wf.bot.execution.pending.write.queue.size=100
Business Process lifecycle task settings
# upper limit for HIT batch transitioned between steps
step.transition.hit.batch.size=1000
# number of parallel threads to use for human HIT review
reviewable.hit.processor.pool.size=4
# number of parallel threads to use for human HIT assignment retrieval
assignment.retriever.pool.size=4
# number of parallel threads to use for BP state transitions, for example, human HIT submission, step completion, step transition, and so on
bp.step.transition.pool.size=3
# Worker lock wait timeout in milliseconds (usually used for worker answer processing)
worker.lock.timeout.millis=60000
# increase in case of long GC pauses
hazelcast.max.no.heartbeat.seconds=60
Troubleshooting settings
# boolean value whether report striped runnable execution delays
striped.runnable.queue.wait.report=false
# sliding window size for delay stats accumulation
striped.runnable.queue.wait.sliding.window.interval.minutes=30
# sliding window size for accumulating hit review lock stats
hit.review.lock.wait.sliding.window.interval.minutes=30
# boolean value whether the report is allocated stats
thread.allocated.bytes.report=true