Как указывал MattC, у меня была эта ошибка, когда прослушивался мой ItemProcessor
. По какой-то причине, во время моего процессора деятельности, он закрывал соединение источника данных с jobrepository
, так что мое исключение было:
Encountered an error saving batch meta data for step step1 in job myjob. This job is now in an unknown state and should not be restarted.
org.springframework.dao.OptimisticLockingFailureException: Attempt to update step execution id=1 with wrong version (1), where current version is 2
В конце StackTrace, я смог найти:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Connection is closed.
Чтобы идентифицировать проблему, сначала выделим фазу. Я построил NoOpProcessor и NoOpItemWriter. Скорректированный тасклет, и он работал хорошо. Поэтому моя проблема не была в отношении читателя.
Затем я откатился к своей «полной» реализации ItemWriter, и снова он работал хорошо. Так что моя проблема была не с автором. Когда я включил свой «полный» процессор, ошибка снова возникла. Итак, в нем была ошибка, и я начал отладку.
Так, к сожалению, мой ответ: отлаживать ...
public class NoOpProcessor implements ItemProcessor<Object, Object> {
@Override
public Object process(Object arg0) throws Exception {
System.out.println("Input object: " + Objects.toString(arg0));
return arg0;
}
}
public class NoOpItemWriter implements ItemWriter<Object> {
@Override
public void write(List<? extends Object> items) throws Exception {
if (items != null) {
System.out.println("Qtty of items to be written: " + items.size());
for (Object obj : items) {
System.out.println(Objects.toString(obj));
}
} else {
System.out.println("The items list is null. Nothing to be written.");
}
}
}
Привет любое обновление по этому поводу? – user2583922
Вы решили это? – surlac
Это может решить вашу проблему http://ashamathavan.blogspot.in/2010/12/optimisticlockingfailureexception.html –