Scaling and performance recommendations

Non-accumulated batch can be configured to maintain the number of threads for scaling and performance tuning of the system. Shown below are the configuration settings in the configuration framework used for tuning performance in batch. These can be modified in config-settings.xml.

Namespace: com.pb.engageone.server.batch.na

Config setting Description
batch.dca.pool.size.maximum

Default value:

${com.pb.dca[pool.size.maximum]}
The number of DCA adapters to use during pre-composition
worker.queue.size

Default value:

1000
The maximum number of XML records (not files) that are held in memory at any given time during processing
workerThread.pool.size

Default value:

2
The number of active running threads in processing record for partial composition
recomposition.workerThread.pool.size

Default value:

2
The number of active running threads in processing record for re-composition/concatenation process
documentInfo.list.page.size

Default value:

500
The page cache size for internal DocumentInfo List
sort.db.connection.pool.size

Default value:

20
The number of pooled connections to the sort repository database.

These values can be increased depending on the machine's capability (memory and CPU). Increasing both DCA pool size and the batch thread size can increase the rate at which records are processed but should be adjusted with caution, taking CPU capacity into account.

Increasing worker.queue.size increases the number of documents that can be queued up for the partial composition and variable resolution process, but should be limited depending on the memory availability or the specified heap size in the JVM (as discussed in the Java Tuning White Paper link).

Increasing documentInfo.list.page.size increases the number of documents that can be queued up for the concatenation and the report/index generation process but should be limited depending on the memory availability, or the specified heap size in the JVM.