Solved

spring batch

Posted on 2014-01-06
4
860 Views
Last Modified: 2014-01-12
Hello,

can anybody tell what is the reason why  the skip limit is ignored.... if skip limit is set to 1 and if i have 3 bad record.... it does not stop after processing first record...........

I am trying to call the skip by executor class

but still it gives the same error.....

 Executor.java

o    try {

o    // job execution

o    }catch (SkipLimitExceededException skipLimitExceededException) {

§  System.exit(1);

o    } catch (Exception exception) {

§  if (log.isErrorEnabled()) {

§  log.error("Error performing job" + exception.getMessage());

o    }

o    log.debug(exception);

 

o    }finally {

o    context.close();

o    }

 

o    System.exit(0);

 

o   }// end of Executor.java

Open in new window


public boolean shouldSkip(Throwable throwable, int skipCount)
		throws SkipLimitExceededException{
		StringBuffer stringBuffer = new StringBuffer();
		
		if (throwable instanceof FlatFileParseException) {
			int linenumber = ((FlatFileParseException) throwable).getLineNumber();
			String input = ((FlatFileParseException) throwable).getInput();
			stringBuffer.append("Parsing exception encountered on line #" + linenumber + "; input = " + input);
			log.error(stringBuffer.toString());
		}else {
			stringBuffer.append(throwable.getMessage());
			log.error(stringBuffer.toString());
			log.debug(throwable);
		}
		try{
		if (getSkipLimit() <= skipCount && getSkipLimit() > 0) {
			SkipLimitExceededException skipLimitExceededException = new SkipLimitExceededException(
					skipCount, throwable);
			log.error("Skip Limit Exceeded "+skipLimit);
			log.debug("Skip Limit Exceeded", skipLimitExceededException);
			throw skipLimitExceededException;
			
		}
		}catch(SkipLimitExceededException skipLimitExceededException){
			
		}
		
		return true;
	}

Open in new window



      

         <bean id="midFlatFileLineTokenizer"

                        class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">

                               <property name="delimiter" value="${com.met.midutiliy.delimiter:|}" />
                               <property name="names" value="${com.met.midutiliy.field.list:fromMemberID, toMemberID}" />

 <property name="strict" value="false" />
 </bean>

Open in new window

0
Comment
Question by:roy_sanu
  • 3
4 Comments
 
LVL 16

Expert Comment

by:krakatoa
ID: 39758982
Not sure. But this :

if (getSkipLimit() <= skipCount && getSkipLimit() > 0) {

Open in new window


could anyway be simply :

if (skipCount >= getSkipLimit()){

Open in new window

0
 

Author Comment

by:roy_sanu
ID: 39759755


my errors are getting displayed on the console, but i do not want to display in the console. i understand that using throwable exception i am getting error in the console How i can get rid off it... or how throwable can be logged

your comments will be highly appreciable...........

Thanks in advance...........



Encountered an error executing the step
org.springframework.batch.core.step.skip.SkipLimitExceededException: Skip limit of '2' exceeded
	at com.listener.MIDSkipPolicy.shouldSkip(MIDSkipPolicy.java:53)
	at org.springframework.batch.core.step.skip.CompositeSkipPolicy.shouldSkip(CompositeSkipPolicy.java:41)
	at org.springframework.batch.core.step.skip.ExceptionClassifierSkipPolicy.shouldSkip(ExceptionClassifierSkipPolicy.java:70)
	at org.springframework.batch.core.step.item.FaultTolerantChunkProvider.shouldSkip(FaultTolerantChunkProvider.java:134)
	at org.springframework.batch.core.step.item.FaultTolerantChunkProvider.read(FaultTolerantChunkProvider.java:91)
	at org.springframework.batch.core.step.item.SimpleChunkProvider$1.doInIteration(SimpleChunkProvider.java:114)
	at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:368)
	at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
	at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144)
	at org.springframework.batch.core.step.item.SimpleChunkProvider.provide(SimpleChunkProvider.java:108)
	at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:69)
	at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:395)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:131)

Open in new window

0
 

Accepted Solution

by:
roy_sanu earned 0 total points
ID: 39762781
Removed this part of the code it is working fine
		try{


     }catch(SkipLimitExceededException skipLimitExceededException){

Open in new window


Thanks
0
 

Author Closing Comment

by:roy_sanu
ID: 39774460
removal of the try and catch block of  }catch(SkipLimitExceededException skipLimitExceededException){
0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question