Jak wskazał MattC, miałem ten błąd, gdy mój ItemProcessor
był błędny. Z jakiegoś powodu, podczas moich zajęć procesorów, było zamknięcie połączenia źródła danych z jobrepository
, więc moja Wyjątek:
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
Pod koniec stacktrace, udało mi się znaleźć:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Connection is closed.
Aby zidentyfikować problem, najpierw izoluję fazę. Zbudowałem NoOpProcessor i NoOpItemWriter. Poprawiono zadanie i działało dobrze. Więc mój problem nie był skierowany do czytelnika.
Potem powróciłem do mojej "pełnej" implementacji ItemWriter i znowu zadziałało. Więc mój problem nie dotyczył pisarza. Kiedy włączyłem mój "pełny" procesor, błąd wystąpił ponownie. Więc błąd był w tym i zacząłem debugowanie.
Tak, niestety, moja odpowiedź brzmi: debug ...
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.");
}
}
}
Hi każdej aktualizacji w tej sprawie? – user2583922
Rozwiązałeś to? – surlac
To może rozwiązać Twój problem http://ashamathavan.blogspot.in/2010/12/optimisticlockingfailureexception.html –