flâneur — a map of the web's best reading

Batch Processing and Transactions :: Spring Batch

docs.spring.io · saved by 1 readers

Consider the following simple example of a nested batch with no retries. It shows a common scenario for batch processing: An input source is processed until exhausted, and it commits periodically at the end of a “chunk” of processing. The input operation (3.1) could be a message-based receive (such as from JMS) or a file-based read, but to recover and continue processing with a chance of completing the whole job, it must be transactional. The same applies to the operation at 3.2. It must be either transactional or idempotent. If the chunk at REPEAT (3) fails because of a database exception at 3.2, then TX (2) must roll back the whole chunk. It is also useful to use a retry for an operation which is not transactional, such as a call to a web-service or other remote resource, as the following example shows: This is actually one of the most useful applications of a retry, since a remote call is much more likely to fail and be retryable than a database update. As long as the remote access

Consider the following simple example of a nested batch with no retries. It shows a common scenario for batch processing: An input source is processed until exhausted, and it commits periodically at the end of a “chunk” of processing. The input operation (3.1) could be a message-based receive (such as from JMS) or a file-based read, but to recover and continue processing with a chance of completing the whole job, it must be transactional. The same applies to the operation at 3.2. It must be either transactional or idempotent. If the chunk at REPEAT (3) fails because of a database exception at

Explore this link on the map →