Запустить весеннее пакетное задание, когда оно уже находится в транзакцииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запустить весеннее пакетное задание, когда оно уже находится в транзакции

Сообщение Anonymous »

У меня есть простой Spring-Service, который (помимо других задач) запускает пакетное задание Spring со следующим кодом:

Код: Выделить всё

@Autowired
private JobRegistry jobRegistry;

@Autowired
private JobLauncher jobLauncher;

public void startMyJob() {
Job job = jobRegistry.getJob("myJobName");
JobParameters jobParameters = new JobParametersBuilder().toJobParameters();
jobLauncher.run(job, jobParameters);
}
Это работает нормально, пока при вызове метода Serivce не активна транзакция. Однако при активной транзакции я получаю следующее исключение:

Код: Выделить всё

Caused by: java.lang.IllegalStateException: Existing transaction detected in JobRepository. Please fix this and try again (e.g. remove @Transactional annotations from client).
Я не могу легко удалить существующую транзакцию, поскольку она подразумевается из-за какого-то кода платформы, который находится вне моей досягаемости.

Итак, как мне вообще начать работу в этом контексте? Новое задание просто не должно использовать существующую транзакцию. Он мог бы просто запустить собственную транзакцию, но как его настроить, чтобы он работал?

Подробнее здесь: https://stackoverflow.com/questions/181 ... ransaction
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»