diff --git a/src/site/docbook/reference/scalability.xml b/src/site/docbook/reference/scalability.xml
index d93cbd22a..c586ed340 100644
--- a/src/site/docbook/reference/scalability.xml
+++ b/src/site/docbook/reference/scalability.xml
@@ -58,9 +58,24 @@
TaskExecutor is a
SimpleAsyncTaskExecutor.
- The result of the above configuration will be that the Step executes
- by reading, processing and writing each chunk of items (each commit
- interval) in a separate thread of execution.
+ The result of the above configuration will be that the Step
+ executes by reading, processing and writing each chunk of items
+ (each commit interval) in a separate thread of execution. In
+ addition to any limits placed by the task executor (e.g. if it is
+ backed by a thread pool), there is a throttle limit in the tasklet
+ which defaults to 6. You may need to increase this to ensure that
+ a thread pool is fully utililsed, e.g.
+
+ <step id="loading"> <tasklet
+ task-executor="taskExecutor"
+ throttle-limit="20">...</tasklet>
+ </step>
+
+ Note also that there may be limits placed on concurrency by
+ any pooled resources used in your step, such as
+ a DataSource. Be sure to make the pool in
+ those resources at least as large as the desired number of
+ concurrent threads in the step.
There are some practical limitations of using multi-threaded Steps
for some common Batch use cases. Many participants in a Step (e.g. readers
@@ -150,12 +165,10 @@
options exist in the grid computing and shared memory product space (e.g.
Java Spaces).
- Spring Batch has a sub-project (Spring Batch Integration), providing
- implementations of various patterns like this one using Spring
- Integration. Spring Batch Integration is available in subversion for
- people to use, but is not intended to be part of the official general
- release of Spring Batch until it builds up more of a community of
- users.
+ Spring Batch has a sister project Spring Batch Admin, which
+ provides(amongst other things) implementations of various patterns
+ like this one using Spring Integration. These are implemented in a
+ module called Spring Batch Integration.
@@ -208,9 +221,13 @@
</partition>
</step>
+ Similar to the multi-threaded step, there is a setting here
+ for a throttle limit, which prevents the task executor from being
+ saturated with requests from a single step.
+
There is a simple example which can be copied and extended in the
unit test suite for Spring Batch Samples (see
- *PartitionJob.xml configuration).
+ *PartitionJob.xml configuration).
Spring Batch creates step executions for the partitions called
"step1:partition0", etc., so many people prefer to call the master step