JSR-352, Spring Batch and You

Preview:

DESCRIPTION

Speaker: Michael Minella JSR-352 is billed as bringing a standardized batch programming model to Java. What does the spec provide, what does it not, and what does it mean for Spring Batch applications? We will address all of these questions as well as provide insight into how Spring Batch will work with the JSR in a real world example.

Citation preview

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 1 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352, SPRING BATCH,JSR-352, SPRING BATCH,AND YOUAND YOU

Created by / Michael T Minella @michaelminella

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 2 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

WHO IS THIS GUY?WHO IS THIS GUY?

Author of Pro Spring BatchMember of the expert group for JSR-352Project lead for Spring Batch

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 3 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

I DO A LOT OF BATCH ;)I DO A LOT OF BATCH ;)

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 4 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

NO NEED TO TAKE NOTES!NO NEED TO TAKE NOTES!These talks are being recorded...These slides and code are on Github

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 5 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

FIND IT ALL HEREFIND IT ALL HERE

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 6 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 7 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

??

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 8 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

33

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 9 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 10 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH'S IMPLE‐SPRING BATCH'S IMPLE‐MENTATION OF JSR-352MENTATION OF JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 11 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH BEYONDSPRING BATCH BEYONDJSR-352JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 12 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

EXPECTATIONSEXPECTATIONSBasic knowledge of SpringBasic knowledge of Spring Batch

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 13 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

? WHEN YOU HAVE THEM? WHEN YOU HAVE THEM

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 14 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 15 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352 introduces an exciting new Javaspecification for building, deploying, and

running batch applications.- Chris Vignola

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 16 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING'S INVOLVEMENTSPRING'S INVOLVEMENT

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 17 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH IS ASPRING BATCH IS ALEADER IN THE SPACELEADER IN THE SPACE

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 18 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

RESULTS OF THE SPEC?RESULTS OF THE SPEC?

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 19 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 20 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 21 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

STRUCTURALLY THESTRUCTURALLY THESAMESAME

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 22 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

33API for building batch componentsA DSL for configuring batch componentsA contract of how batch components interact

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 23 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

HIGH LEVEL DIFFERENCESHIGH LEVEL DIFFERENCES

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 24 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH JOBSPRING BATCH JOB<job id="personJob"> <step id="step1"> <tasklet> <chunk commit-interval="5" reader="itemReader" processor="itemProcessor" writer="itemWriter" /> </tasklet> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 25 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352 JOBJSR-352 JOB<job id="personJob"> <step id="step1"> <chunk item-count="5"> <reader ref="itemReader"/> <processor ref="itemProcessor"/> <writer ref="itemWriter"/> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 26 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

<!-- Spring Batch --><job id="personJob"> <step id="step1"> <tasklet> <chunk commit-interval="5" reader="itemReader" processor="itemProcessor" writer="itemWriter"/> </tasklet> </step></job>

<!-- JSR-352 --><job id="personJob"> <step id="step1"> <chunk item-count="5"> <reader ref="itemReader"/> <processor ref="itemProcessor"/> <writer ref="itemWriter"/> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 27 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

??

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 28 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

DEPENDENCY INJECTIONDEPENDENCY INJECTIONFoundational technology of Spring BatchNot required with JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 29 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

REFERENCES IN JSR-352REFERENCES IN JSR-352<job id="personJob"> <step id="step1"> <chunk item-count="5"> <reader ref="itemReader"/> <processor ref="itemProcessor"/> <writer ref="itemWriter"/> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 30 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

REFERENCES POINT TO 1REFERENCES POINT TO 1OF 3 PLACESOF 3 PLACES

Spring beanbatch.xml definitionThe class itself

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 31 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BEANSPRING BEAN<bean id="itemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter" <property name="resource" ref="outputFile" /> <property name="marshaller" ref="customerMarshaller" /> <property name="rootTagName" value="customers" /></bean>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 32 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

BATCH.XMLBATCH.XML<batch-artifacts xmlns="http://xmlns.jcp.org/xml/ns/javaee">

<ref id="itemReader" class="org.sf.jsr.demo.ItemReader" /> <ref id="itemProcessor" class="org.sf.jsr.demo.ItemProcessor" /> <ref id="itemWriter" class="org.sf.jsr.demo.ItemWriter" />

</batch-artifacts>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 33 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

THE CLASS ITSELFTHE CLASS ITSELF<job id="personJob"> <step id="step1"> <chunk item-count="5"> <reader ref="org.sf.jsr.demo.ItemReader"/> <processor ref="org.sf.jsr.demo.ItemProcessor"/> <writer ref="org.sf.jsr.demo.ItemWriter"/> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 34 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

PROPERTIESPROPERTIESSpring injects them on bean definitionsJSR-352 injects properties from the job definitionJSR-352 properties are Strings only

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 35 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH JOBSPRING BATCH JOB<job id="formatJob"> <step id="step1"> <tasklet> <chunk reader="fileReader" writer="xmlWriter" commit-interval="#{jobParameters['commit.interval']}"/> </tasklet> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 36 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352 JOBJSR-352 JOB<job id="personJob"> <step id="step1"> <chunk item-count="#{jobParameters['commit.interval']}"> <reader ref="fileReader"> <properties> <property name="fileName" value="#{jobParameters['input.fileName']}" </properties> </reader> <writer ref="xmlWriter"> <properties> <property name="fileName" value="#{jobParameters['output.fileName']}" </properties> </writer> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 37 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

INJECTION OF PROPER‐INJECTION OF PROPER‐TIESTIES

@Inject@BatchPropertypublic String fileName;

@Inject@BatchProperty(name="otherProperty")public String otherProperty;

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 38 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

??

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 39 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

LET'S BUILD AN APP!LET'S BUILD AN APP!

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 40 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

00:00 -00:34

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 41 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

LOGS OF A VIRAL VIDEOLOGS OF A VIRAL VIDEOReleased in 2003.Downloaded 1.1 million times the first 2 weeksSince been downloaded 40 million times since it wasmoved to YouTube2008, Andy Baio posted the Apache logs for the first 6monthsFile is 1.6 GB unzipped and available via BitTorentFile was originally called "ghyslain_razaa.wmv"File was later renamed to "Star_Wars_Kid.wmv"

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 42 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

WHO WAS WATCHINGWHO WAS WATCHINGTHIS VIDEO?THIS VIDEO?

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 43 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

OUR JOBOUR JOB

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 44 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

STEP PROCESSING MOD‐STEP PROCESSING MOD‐ELSELS

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 45 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

BATCHLETBATCHLET

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 46 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

BATCHLET = STOPPABLE‐BATCHLET = STOPPABLE‐TASKLETTASKLET

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 47 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

public interface Tasklet { RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception;}

public interface StoppableTasklet extends Tasklet { void stop();}

public interface Batchlet { public String process() throws Exception; public void stop() throws Exception; }

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 48 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

STEP 1...SPLIT THE FILESTEP 1...SPLIT THE FILE

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 49 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

LAUNCHINGLAUNCHING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 50 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JOBOPERATORJOBOPERATORJobOperator jobOperator = BatchRuntime.getJobOperator();

// startlong jobExecutionId = jobOperator.start("myJob", new Properties());

// restartlong newJobExecutionId = jobOperator.restart(jobExecutionId, new Properties());

// stopjobOperator.stop(jobExecutionid);

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 51 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

CHUNK PROCESSINGCHUNK PROCESSING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 52 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCHSPRING BATCH

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 53 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH REALLYSPRING BATCH REALLY

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 54 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 55 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

CHUNK RELATED INTER‐CHUNK RELATED INTER‐FACESFACES

ItemReaderItemProcessorItemWriter

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 56 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

CHECKPOINTSCHECKPOINTSItemCustom

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 57 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

STEP 2...IMPORT THE FILESTEP 2...IMPORT THE FILE

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 58 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

ERROR HANDLINGERROR HANDLING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 59 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SKIPSKIP<job id="skip" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> <step id="step1"> <chunk skip-limit="3"> <reader ref="retryableListReader"/> <writer ref="fileWriter"/> <!-- Skippable exceptions --> <skippable-exception-classes> <include class="java.lang.RuntimeException"/> </skippable-exception-classes> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 60 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

RETRYRETRY<job id="retry" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> <step id="step1"> <chunk retry-limit="3"> <reader ref="retryableListReader"/> <writer ref="fileWriter"/>

<!-- Retryable exceptions --> <retryable-exception-classes> <include class="java.lang.RuntimeException"/> </retryable-exception-classes> </chunk> </step></job>

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 61 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

READ RETRIESREAD RETRIESSpring Batch hasn't supported read retriesJSR-352 allows read retriesExisting Spring Batch readers won't support read retry with3.0

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 62 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SCALINGSCALING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 63 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPLITSSPLITSSame as Spring Batch

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 64 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

PARTITIONINGPARTITIONINGExecutes chunks or multiple instances of Batchlets inparallelTwo configuration options

Hardcoded in XMLPartitionMapper

Adds two additional concepts...

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 65 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

PARTITION REDUCERPARTITION REDUCERProvides a hook for compensating logic upon failureReally just a specializedStepListener/StepExecutionListenr

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 66 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

PARTITION COLLECTOR/PARTITION COLLECTOR/ANALYZERANALYZER

Collector collects data from batch artifactsAnalyzer allows the ability to set ExitStatus after apartitioned step

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 67 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH'SSPRING BATCH'SIMPLEMENTATIONIMPLEMENTATION

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 68 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH STATUSSPRING BATCH STATUSReleased 3.0.0.M2 last nightPasses > 50% of the TCK tests3.0 will be JSR-352 compliant

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 69 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

"RAW" JSR-352 VERSION"RAW" JSR-352 VERSIONClasses: 8Lines of custom code: 826

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 70 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

33API for building batch componentsA DSL for configuring batch componentsA contract of how batch components interact

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 71 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

??

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 72 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

COMPONENTS!!!COMPONENTS!!!

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 73 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352 PROVIDES 0JSR-352 PROVIDES 0IMPLEMENTATIONSIMPLEMENTATIONS

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 74 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

ITEM READERSITEM READERSAggregateItemReader

AmqpItemReader

FlatFileItemReader

HibernateCursorItemReader

HibernatePagingItemReader

IbatisPagingItemReader

ItemReaderAdapter

JdbcCursorItemReader

JdbcPagingItemReader

JmsItemReader

JpaPagingItemReader

ListItemReader

MongoItemReader

Neo4jItemReader

RepositoryItemReader

StoredProcedureItemReader

StaxEventItemReader

ITEM WRITERSITEM WRITERS

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 75 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SAME APP...SPRING-IFIEDSAME APP...SPRING-IFIED

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 76 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

COMPARISONCOMPARISON

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 77 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

"RAW" JSR-352 VERSION"RAW" JSR-352 VERSIONClasses: 8Lines of custom code: 826

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 78 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING JSR-352 VERSIONSPRING JSR-352 VERSIONClasses: 5Lines of custom code: 596

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 79 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

BEYOND JSR-352BEYOND JSR-352

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 80 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING!SPRING!

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 81 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

TYPE SAFE PROPERTIESTYPE SAFE PROPERTIES

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 82 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

NO INHERITENCENO INHERITENCE

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 83 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SCALABILITYSCALABILITY

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 84 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

JSR-352 IS SINGLE JVMJSR-352 IS SINGLE JVMONLYONLY

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 85 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING BATCH SCALESSPRING BATCH SCALESBEYOND 1 JVMBEYOND 1 JVM

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 86 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

REMOTE CHUNKINGREMOTE CHUNKING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 87 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

REMOTE PARTITIONINGREMOTE PARTITIONING

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 88 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

BATCH DOESN'T OCCURBATCH DOESN'T OCCURIN A VACUUMIN A VACUUM

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 89 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

LAUNCHING JOBS VIALAUNCHING JOBS VIAMESSAGESMESSAGES

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 90 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING HADOOPSPRING HADOOP

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 91 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

SPRING XDSPRING XD

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 92 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

??

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 93 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

FIND THIS DECK ANDFIND THIS DECK ANDDEMO CODE:DEMO CODE:

Github

9/13/13 4:33 PMJSR-352, Spring Batch, and You

Page 94 of 94http://mminella.github.io/jsr352-springbatch-and-you/?print-pdf#/

KEEP IN TOUCH!KEEP IN TOUCH!Michael Minella

Twitter: Github:

Spring BatchSite: Session replays on YouTube:

SpringSite:

@MichaelMinellamminella

Spring BatchYouTube

Spring IO

Recommended