68 lines
32 KiB
HTML
68 lines
32 KiB
HTML
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
|
<title>Spring Batch - Reference Documentation</title><link rel="stylesheet" type="text/css" href="css/manual-multipage.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Spring Batch - Reference Documentation"><link rel="next" href="spring-batch-intro.html" title="1. Spring Batch Introduction"></head><body class="firstpage" bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Spring Batch - Reference Documentation</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="spring-batch-intro.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a name="spring-batch-reference"></a>Spring Batch - Reference Documentation</h1></div><div><div class="authorgroup"><h2>Authors</h2>
|
|
<span class="author"><span class="firstname">Lucas</span> <span class="surname">Ward</span></span>
|
|
, <span class="author"><span class="firstname">Dave</span> <span class="surname">Syer</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Thomas</span> <span class="surname">Risberg</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Robert</span> <span class="surname">Kasanicky</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Dan</span> <span class="surname">Garrette</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Wayne</span> <span class="surname">Lund</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Michael</span> <span class="surname">Minella</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Chris</span> <span class="surname">Schaefer</span></span>
|
|
|
|
, <span class="author"><span class="firstname">Gunnar</span> <span class="surname">Hillert</span></span>
|
|
</div></div><div><p class="releaseinfo">4.0.0.BUILD-SNAPSHOT</p></div><div><p class="copyright">Copyright © 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
|
|
Pivotal, Inc. All Rights Reserved.
|
|
</p></div><div><div class="legalnotice"><a name="d5e45" href="#d5e45"></a>
|
|
<p>Copies of this document may be made for your own use and for
|
|
distribution to others, provided that you do not charge any fee for such
|
|
copies and further provided that each copy contains this Copyright
|
|
Notice, whether distributed in print or electronically.</p>
|
|
</div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="spring-batch-intro.html">1. Spring Batch Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="spring-batch-intro.html#springBatchBackground">1.1. Background</a></span></dt><dt><span class="section"><a href="spring-batch-intro.html#springBatchUsageScenarios">1.2. Usage Scenarios</a></span></dt><dt><span class="section"><a href="spring-batch-intro.html#springBatchArchitecture">1.3. Spring Batch Architecture</a></span></dt><dt><span class="section"><a href="spring-batch-intro.html#batchArchitectureConsiderations">1.4. General Batch Principles and Guidelines</a></span></dt><dt><span class="section"><a href="spring-batch-intro.html#batchProcessingStrategy">1.5. Batch Processing Strategies</a></span></dt></dl></dd><dt><span class="chapter"><a href="whatsNew.html">2. What's New in Spring Batch 4.0</a></span></dt><dd><dl><dt><span class="section"><a href="whatsNew.html#whatsNewJava">2.1. Java 8 Requirement</a></span></dt><dt><span class="section"><a href="whatsNew.html#whatsNewDependencies">2.2. Dependencies re-baseline</a></span></dt><dt><span class="section"><a href="whatsNew.html#whatsNewBuilders">2.3. Provide builders for the ItemReaders and ItemWriters</a></span></dt></dl></dd><dt><span class="chapter"><a href="domain.html">3. The Domain Language of Batch</a></span></dt><dd><dl><dt><span class="section"><a href="domain.html#domainJob">3.1. Job</a></span></dt><dd><dl><dt><span class="section"><a href="domain.html#domainJobInstance">3.1.1. JobInstance</a></span></dt><dt><span class="section"><a href="domain.html#domainJobParameters">3.1.2. JobParameters</a></span></dt><dt><span class="section"><a href="domain.html#domainJobExecution">3.1.3. JobExecution</a></span></dt></dl></dd><dt><span class="section"><a href="domain.html#domainStep">3.2. Step</a></span></dt><dd><dl><dt><span class="section"><a href="domain.html#domainStepExecution">3.2.1. StepExecution</a></span></dt></dl></dd><dt><span class="section"><a href="domain.html#domainExecutionContext">3.3. ExecutionContext</a></span></dt><dt><span class="section"><a href="domain.html#domainJobRepository">3.4. JobRepository</a></span></dt><dt><span class="section"><a href="domain.html#domainJobLauncher">3.5. JobLauncher</a></span></dt><dt><span class="section"><a href="domain.html#domainItemReader">3.6. Item Reader</a></span></dt><dt><span class="section"><a href="domain.html#domainItemWriter">3.7. Item Writer</a></span></dt><dt><span class="section"><a href="domain.html#domainItemProcessor">3.8. Item Processor</a></span></dt><dt><span class="section"><a href="domain.html#domainBatchNamespace">3.9. Batch Namespace</a></span></dt></dl></dd><dt><span class="chapter"><a href="configureJob.html">4. Configuring and Running a Job</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#configuringAJob">4.1. Configuring a Job</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#restartability">4.1.1. Restartability</a></span></dt><dt><span class="section"><a href="configureJob.html#interceptingJobExecution">4.1.2. Intercepting Job Execution</a></span></dt><dt><span class="section"><a href="configureJob.html#inheritingFromAParentJob">4.1.3. Inheriting from a Parent Job</a></span></dt><dt><span class="section"><a href="configureJob.html#d5e953">4.1.4. JobParametersValidator</a></span></dt></dl></dd><dt><span class="section"><a href="configureJob.html#javaConfig">4.2. Java Config</a></span></dt><dt><span class="section"><a href="configureJob.html#configuringJobRepository">4.3. Configuring a JobRepository</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#txConfigForJobRepository">4.3.1. Transaction Configuration for the JobRepository</a></span></dt><dt><span class="section"><a href="configureJob.html#repositoryTablePrefix">4.3.2. Changing the Table Prefix</a></span></dt><dt><span class="section"><a href="configureJob.html#inMemoryRepository">4.3.3. In-Memory Repository</a></span></dt><dt><span class="section"><a href="configureJob.html#nonStandardDatabaseTypesInRepository">4.3.4. Non-standard Database Types in a Repository</a></span></dt></dl></dd><dt><span class="section"><a href="configureJob.html#configuringJobLauncher">4.4. Configuring a JobLauncher</a></span></dt><dt><span class="section"><a href="configureJob.html#runningAJob">4.5. Running a Job</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#runningJobsFromCommandLine">4.5.1. Running Jobs from the Command Line</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#commandLineJobRunner">The CommandLineJobRunner</a></span></dt><dt><span class="section"><a href="configureJob.html#exitCodes">ExitCodes</a></span></dt></dl></dd><dt><span class="section"><a href="configureJob.html#runningJobsFromWebContainer">4.5.2. Running Jobs from within a Web Container</a></span></dt></dl></dd><dt><span class="section"><a href="configureJob.html#advancedMetaData">4.6. Advanced Meta-Data Usage</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#queryingRepository">4.6.1. Querying the Repository</a></span></dt><dt><span class="section"><a href="configureJob.html#d5e1215">4.6.2. JobRegistry</a></span></dt><dd><dl><dt><span class="section"><a href="configureJob.html#d5e1220">JobRegistryBeanPostProcessor</a></span></dt><dt><span class="section"><a href="configureJob.html#d5e1225">AutomaticJobRegistrar</a></span></dt></dl></dd><dt><span class="section"><a href="configureJob.html#JobOperator">4.6.3. JobOperator</a></span></dt><dt><span class="section"><a href="configureJob.html#JobParametersIncrementer">4.6.4. JobParametersIncrementer</a></span></dt><dt><span class="section"><a href="configureJob.html#stoppingAJob">4.6.5. Stopping a Job</a></span></dt><dt><span class="section"><a href="configureJob.html#d5e1303">4.6.6. Aborting a Job</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="configureStep.html">5. Configuring a Step</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#chunkOrientedProcessing">5.1. Chunk-Oriented Processing</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#configuringAStep">5.1.1. Configuring a Step</a></span></dt><dt><span class="section"><a href="configureStep.html#InheritingFromParentStep">5.1.2. Inheriting from a Parent Step</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#abstractStep">Abstract Step</a></span></dt><dt><span class="section"><a href="configureStep.html#mergingListsOnStep">Merging Lists</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#commitInterval">5.1.3. The Commit Interval</a></span></dt><dt><span class="section"><a href="configureStep.html#stepRestart">5.1.4. Configuring a Step for Restart</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#startLimit">Setting a StartLimit</a></span></dt><dt><span class="section"><a href="configureStep.html#allowStartIfComplete">Restarting a completed step</a></span></dt><dt><span class="section"><a href="configureStep.html#stepRestartExample">Step Restart Configuration Example</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#configuringSkip">5.1.5. Configuring Skip Logic</a></span></dt><dt><span class="section"><a href="configureStep.html#retryLogic">5.1.6. Configuring Retry Logic</a></span></dt><dt><span class="section"><a href="configureStep.html#controllingRollback">5.1.7. Controlling Rollback</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#transactionalReaders">Transactional Readers</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#transactionAttributes">5.1.8. Transaction Attributes</a></span></dt><dt><span class="section"><a href="configureStep.html#registeringItemStreams">5.1.9. Registering ItemStreams with the Step</a></span></dt><dt><span class="section"><a href="configureStep.html#interceptingStepExecution">5.1.10. Intercepting Step Execution</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#stepExecutionListener">StepExecutionListener</a></span></dt><dt><span class="section"><a href="configureStep.html#chunkListener">ChunkListener</a></span></dt><dt><span class="section"><a href="configureStep.html#itemReadListener">ItemReadListener</a></span></dt><dt><span class="section"><a href="configureStep.html#itemProcessListener">ItemProcessListener</a></span></dt><dt><span class="section"><a href="configureStep.html#itemWriteListener">ItemWriteListener</a></span></dt><dt><span class="section"><a href="configureStep.html#skipListener">SkipListener</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="configureStep.html#taskletStep">5.2. TaskletStep</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#taskletAdapter">5.2.1. TaskletAdapter</a></span></dt><dt><span class="section"><a href="configureStep.html#exampleTaskletImplementation">5.2.2. Example Tasklet Implementation</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#controllingStepFlow">5.3. Controlling Step Flow</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#SequentialFlow">5.3.1. Sequential Flow</a></span></dt><dt><span class="section"><a href="configureStep.html#conditionalFlow">5.3.2. Conditional Flow</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#batchStatusVsExitStatus">Batch Status vs. Exit Status</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#configuringForStop">5.3.3. Configuring for Stop</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#endElement">The 'End' Element</a></span></dt><dt><span class="section"><a href="configureStep.html#failElement">The 'Fail' Element</a></span></dt><dt><span class="section"><a href="configureStep.html#stopElement">The 'Stop' Element</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#programmaticFlowDecisions">5.3.4. Programmatic Flow Decisions</a></span></dt><dt><span class="section"><a href="configureStep.html#split-flows">5.3.5. Split Flows</a></span></dt><dt><span class="section"><a href="configureStep.html#external-flows">5.3.6. Externalizing Flow Definitions and Dependencies Between
|
|
Jobs</a></span></dt></dl></dd><dt><span class="section"><a href="configureStep.html#late-binding">5.4. Late Binding of Job and Step Attributes</a></span></dt><dd><dl><dt><span class="section"><a href="configureStep.html#step-scope">5.4.1. Step Scope</a></span></dt><dt><span class="section"><a href="configureStep.html#job-scope">5.4.2. Job Scope</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="readersAndWriters.html">6. ItemReaders and ItemWriters</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#itemReader">6.1. ItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#itemWriter">6.2. ItemWriter</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#itemProcessor">6.3. ItemProcessor</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#chainingItemProcessors">6.3.1. Chaining ItemProcessors</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#filiteringRecords">6.3.2. Filtering Records</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#faultTolerant">6.3.3. Fault Tolerance</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#itemStream">6.4. ItemStream</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#delegatePatternAndRegistering">6.5. The Delegate Pattern and Registering with the Step</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#flatFiles">6.6. Flat Files</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#fieldSet">6.6.1. The FieldSet</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#flatFileItemReader">6.6.2. FlatFileItemReader</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#lineMapper">LineMapper</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#lineTokenizer">LineTokenizer</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#fieldSetMapper">FieldSetMapper</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#defaultLineMapper">DefaultLineMapper</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#simpleDelimitedFileReadingExample">Simple Delimited File Reading Example</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#mappingFieldsByName">Mapping Fields by Name</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#beanWrapperFieldSetMapper">Automapping FieldSets to Domain Objects</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#fixedLengthFileFormats">Fixed Length File Formats</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#prefixMatchingLineMapper">Multiple Record Types within a Single File</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#exceptionHandlingInFlatFiles">Exception Handling in Flat Files</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#flatFileItemWriter">6.6.3. FlatFileItemWriter</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#lineAggregator">LineAggregator</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#SimplifiedFileWritingExample">Simplified File Writing Example</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#FieldExtractor">FieldExtractor</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#delimitedFileWritingExample">Delimited File Writing Example</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#fixedWidthFileWritingExample">Fixed Width File Writing Example</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#handlingFileCreation">Handling File Creation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="readersAndWriters.html#xmlReadingWriting">6.7. XML Item Readers and Writers</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#StaxEventItemReader">6.7.1. StaxEventItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#StaxEventItemWriter">6.7.2. StaxEventItemWriter</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#multiFileInput">6.8. Multi-File Input</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#database">6.9. Database</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#cursorBasedItemReaders">6.9.1. Cursor Based ItemReaders</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#JdbcCursorItemReader">JdbcCursorItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#HibernateCursorItemReader">HibernateCursorItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#StoredProcedureItemReader">StoredProcedureItemReader</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#pagingItemReaders">6.9.2. Paging ItemReaders</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#JdbcPagingItemReader">JdbcPagingItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#JpaPagingItemReader">JpaPagingItemReader</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#IbatisPagingItemReader">IbatisPagingItemReader</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#databaseItemWriters">6.9.3. Database ItemWriters</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#reusingExistingServices">6.10. Reusing Existing Services</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#validatingInput">6.11. Validating Input</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#process-indicator">6.12. Preventing State Persistence</a></span></dt><dt><span class="section"><a href="readersAndWriters.html#customReadersWriters">6.13. Creating Custom ItemReaders and
|
|
ItemWriters</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#customReader">6.13.1. Custom ItemReader Example</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#restartableReader">Making the <code class="classname">ItemReader</code>
|
|
Restartable</a></span></dt></dl></dd><dt><span class="section"><a href="readersAndWriters.html#customWriter">6.13.2. Custom ItemWriter Example</a></span></dt><dd><dl><dt><span class="section"><a href="readersAndWriters.html#restartableWriter">Making the <code class="classname">ItemWriter</code>
|
|
Restartable</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="scalability.html">7. Scaling and Parallel Processing</a></span></dt><dd><dl><dt><span class="section"><a href="scalability.html#multithreadedStep">7.1. Multi-threaded Step</a></span></dt><dt><span class="section"><a href="scalability.html#scalabilityParallelSteps">7.2. Parallel Steps</a></span></dt><dt><span class="section"><a href="scalability.html#remoteChunking">7.3. Remote Chunking</a></span></dt><dt><span class="section"><a href="scalability.html#partitioning">7.4. Partitioning</a></span></dt><dd><dl><dt><span class="section"><a href="scalability.html#partitionHandler">7.4.1. PartitionHandler</a></span></dt><dt><span class="section"><a href="scalability.html#stepExecutionSplitter">7.4.2. Partitioner</a></span></dt><dt><span class="section"><a href="scalability.html#bindingInputDataToSteps">7.4.3. Binding Input Data to Steps</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="repeat.html">8. Repeat</a></span></dt><dd><dl><dt><span class="section"><a href="repeat.html#repeatTemplate">8.1. RepeatTemplate</a></span></dt><dd><dl><dt><span class="section"><a href="repeat.html#repeatContext">8.1.1. RepeatContext</a></span></dt><dt><span class="section"><a href="repeat.html#repeatStatus">8.1.2. RepeatStatus</a></span></dt></dl></dd><dt><span class="section"><a href="repeat.html#completionPolicies">8.2. Completion Policies</a></span></dt><dt><span class="section"><a href="repeat.html#repeatExceptionHandling">8.3. Exception Handling</a></span></dt><dt><span class="section"><a href="repeat.html#repeatListeners">8.4. Listeners</a></span></dt><dt><span class="section"><a href="repeat.html#repeatParallelProcessing">8.5. Parallel Processing</a></span></dt><dt><span class="section"><a href="repeat.html#declarativeIteration">8.6. Declarative Iteration</a></span></dt></dl></dd><dt><span class="chapter"><a href="retry.html">9. Retry</a></span></dt><dd><dl><dt><span class="section"><a href="retry.html#retryTemplate">9.1. RetryTemplate</a></span></dt><dd><dl><dt><span class="section"><a href="retry.html#retryContext">9.1.1. RetryContext</a></span></dt><dt><span class="section"><a href="retry.html#recoveryCallback">9.1.2. RecoveryCallback</a></span></dt><dt><span class="section"><a href="retry.html#statelessRetry">9.1.3. Stateless Retry</a></span></dt><dt><span class="section"><a href="retry.html#statefulRetry">9.1.4. Stateful Retry</a></span></dt></dl></dd><dt><span class="section"><a href="retry.html#retryPolicies">9.2. Retry Policies</a></span></dt><dt><span class="section"><a href="retry.html#backoffPolicies">9.3. Backoff Policies</a></span></dt><dt><span class="section"><a href="retry.html#retryListeners">9.4. Listeners</a></span></dt><dt><span class="section"><a href="retry.html#declarativeRetry">9.5. Declarative Retry</a></span></dt></dl></dd><dt><span class="chapter"><a href="testing.html">10. Unit Testing</a></span></dt><dd><dl><dt><span class="section"><a href="testing.html#creatingUnitTestClass">10.1. Creating a Unit Test Class</a></span></dt><dt><span class="section"><a href="testing.html#endToEndTesting">10.2. End-To-End Testing of Batch Jobs</a></span></dt><dt><span class="section"><a href="testing.html#testingIndividualSteps">10.3. Testing Individual Steps</a></span></dt><dt><span class="section"><a href="testing.html#d5e3514">10.4. Testing Step-Scoped Components</a></span></dt><dt><span class="section"><a href="testing.html#validatingOutputFiles">10.5. Validating Output Files</a></span></dt><dt><span class="section"><a href="testing.html#mockingDomainObjects">10.6. Mocking Domain Objects</a></span></dt></dl></dd><dt><span class="chapter"><a href="patterns.html">11. Common Batch Patterns</a></span></dt><dd><dl><dt><span class="section"><a href="patterns.html#loggingItemProcessingAndFailures">11.1. Logging Item Processing and Failures</a></span></dt><dt><span class="section"><a href="patterns.html#stoppingAJobManuallyForBusinessReasons">11.2. Stopping a Job Manually for Business Reasons</a></span></dt><dt><span class="section"><a href="patterns.html#addingAFooterRecord">11.3. Adding a Footer Record</a></span></dt><dd><dl><dt><span class="section"><a href="patterns.html#writingASummaryFooter">11.3.1. Writing a Summary Footer</a></span></dt></dl></dd><dt><span class="section"><a href="patterns.html#drivingQueryBasedItemReaders">11.4. Driving Query Based ItemReaders</a></span></dt><dt><span class="section"><a href="patterns.html#multiLineRecords">11.5. Multi-Line Records</a></span></dt><dt><span class="section"><a href="patterns.html#executingSystemCommands">11.6. Executing System Commands</a></span></dt><dt><span class="section"><a href="patterns.html#handlingStepCompletionWhenNoInputIsFound">11.7. Handling Step Completion When No Input is Found</a></span></dt><dt><span class="section"><a href="patterns.html#passingDataToFutureSteps">11.8. Passing Data to Future Steps</a></span></dt></dl></dd><dt><span class="chapter"><a href="jsr-352.html">12. JSR-352 Support</a></span></dt><dd><dl><dt><span class="section"><a href="jsr-352.html#jsrGeneralNotes">12.1. General Notes Spring Batch and JSR-352</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrSetup">12.2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="jsr-352.html#jsrSetupContexts">12.2.1. Application Contexts</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrSetupLaunching">12.2.2. Launching a JSR-352 based job</a></span></dt></dl></dd><dt><span class="section"><a href="jsr-352.html#dependencyInjection">12.3. Dependency Injection</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrJobProperties">12.4. Batch Properties</a></span></dt><dd><dl><dt><span class="section"><a href="jsr-352.html#jsrPropertySupport">12.4.1. Property Support</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrBatchPropertyAnnotation">12.4.2. <code class="classname">@BatchProperty</code> annotation</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrPropertySubstitution">12.4.3. Property Substitution</a></span></dt></dl></dd><dt><span class="section"><a href="jsr-352.html#jsrProcessingModels">12.5. Processing Models</a></span></dt><dd><dl><dt><span class="section"><a href="jsr-352.html#d5e3942">12.5.1. Item based processing</a></span></dt><dt><span class="section"><a href="jsr-352.html#d5e3952">12.5.2. Custom checkpointing</a></span></dt></dl></dd><dt><span class="section"><a href="jsr-352.html#jsrRunningAJob">12.6. Running a job</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrContexts">12.7. Contexts</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrStepFlow">12.8. Step Flow</a></span></dt><dt><span class="section"><a href="jsr-352.html#jsrScaling">12.9. Scaling a JSR-352 batch job</a></span></dt><dd><dl><dt><span class="section"><a href="jsr-352.html#jsrPartitioning">12.9.1. Partitioning</a></span></dt></dl></dd><dt><span class="section"><a href="jsr-352.html#jsrTesting">12.10. Testing</a></span></dt></dl></dd><dt><span class="chapter"><a href="springBatchIntegration.html">13. Spring Batch Integration</a></span></dt><dd><dl><dt><span class="sect1"><a href="springBatchIntegration.html#spring-batch-integration-introduction">13.1. Spring Batch Integration Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="springBatchIntegration.html#namespace-support">13.1.1. Namespace Support</a></span></dt><dt><span class="sect2"><a href="springBatchIntegration.html#launching-batch-jobs-through-messages">13.1.2. Launching Batch Jobs through Messages</a></span></dt><dd><dl><dt><span class="sect3"><a href="springBatchIntegration.html#transforming-a-file-into-a-joblaunchrequest">Transforming a file into a JobLaunchRequest</a></span></dt><dt><span class="sect3"><a href="springBatchIntegration.html#the-jobexecution-response">The JobExecution Response</a></span></dt><dt><span class="sect3"><a href="springBatchIntegration.html#spring-batch-integration-configuration">Spring Batch Integration Configuration</a></span></dt><dt><span class="sect3"><a href="springBatchIntegration.html#example-itemreader-configuration">Example ItemReader Configuration</a></span></dt></dl></dd><dt><span class="sect2"><a href="springBatchIntegration.html#providing-feedback-with-informational-messages">13.1.3. Providing Feedback with Informational Messages</a></span></dt><dt><span class="sect2"><a href="springBatchIntegration.html#asynchronous-processors">13.1.4. Asynchronous Processors</a></span></dt><dt><span class="sect2"><a href="springBatchIntegration.html#externalizing-batch-process-execution">13.1.5. Externalizing Batch Process Execution</a></span></dt><dd><dl><dt><span class="sect3"><a href="springBatchIntegration.html#remote-chunking">Remote Chunking</a></span></dt><dt><span class="sect3"><a href="springBatchIntegration.html#remote-partitioning">Remote Partitioning</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="listOfReadersAndWriters.html">A. List of ItemReaders and ItemWriters</a></span></dt><dd><dl><dt><span class="section"><a href="listOfReadersAndWriters.html#itemReadersAppendix">A.1. Item Readers</a></span></dt><dt><span class="section"><a href="listOfReadersAndWriters.html#itemWritersAppendix">A.2. Item Writers</a></span></dt></dl></dd><dt><span class="appendix"><a href="metaDataSchema.html">B. Meta-Data Schema</a></span></dt><dd><dl><dt><span class="section"><a href="metaDataSchema.html#metaDataSchemaOverview">B.1. Overview</a></span></dt><dd><dl><dt><span class="section"><a href="metaDataSchema.html#exampleDDLScripts">B.1.1. Example DDL Scripts</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataVersion">B.1.2. Version</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataIdentity">B.1.3. Identity</a></span></dt></dl></dd><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchJobInstance">B.2. BATCH_JOB_INSTANCE</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchJobParams">B.3. BATCH_JOB_EXECUTION_PARAMS</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchJobExecution">B.4. BATCH_JOB_EXECUTION</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchStepExecution">B.5. BATCH_STEP_EXECUTION</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchJobExecutionContext">B.6. BATCH_JOB_EXECUTION_CONTEXT</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataBatchStepExecutionContext">B.7. BATCH_STEP_EXECUTION_CONTEXT</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#metaDataArchiving">B.8. Archiving</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#multiByteCharacters">B.9. International and Multi-byte Characters</a></span></dt><dt><span class="section"><a href="metaDataSchema.html#recommendationsForIndexingMetaDataTables">B.10. Recommendations for Indexing Meta Data Tables</a></span></dt></dl></dd><dt><span class="appendix"><a href="transactions.html">C. Batch Processing and Transactions</a></span></dt><dd><dl><dt><span class="section"><a href="transactions.html#transactionsNoRetry">C.1. Simple Batching with No Retry</a></span></dt><dt><span class="section"><a href="transactions.html#transactionStatelessRetry">C.2. Simple Stateless Retry</a></span></dt><dt><span class="section"><a href="transactions.html#repeatRetry">C.3. Typical Repeat-Retry Pattern</a></span></dt><dt><span class="section"><a href="transactions.html#asyncChunkProcessing">C.4. Asynchronous Chunk Processing</a></span></dt><dt><span class="section"><a href="transactions.html#asyncItemProcessing">C.5. Asynchronous Item Processing</a></span></dt><dt><span class="section"><a href="transactions.html#transactionPropagation">C.6. Interactions Between Batching and Transaction Propagation</a></span></dt><dt><span class="section"><a href="transactions.html#specialTransactionOrthonogonal">C.7. Special Case: Transactions with Orthogonal Resources</a></span></dt><dt><span class="section"><a href="transactions.html#statelessRetryCannotRecover">C.8. Stateless Retry Cannot Recover</a></span></dt></dl></dd><dt><span class="glossary"><a href="glossary.html">Glossary</a></span></dt></dl></div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="spring-batch-intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> 1. Spring Batch Introduction</td></tr></table></div></body></html> |