> Java > 두 개 이상의 Spring Batch 작업을 동시에 시작하려고 하면 ORA-08177: Unable to serialize access for this transaction 오류가 발생합니다.

두 개 이상의 Spring Batch 작업을 동시에 시작하려고 하면 ORA-08177: Unable to serialize access for this transaction 오류가 발생합니다.

王林
풀어 주다: 2024-02-09 17:00:10
앞으로
654명이 탐색했습니다.

php 편집기 Xigua는 Spring Batch를 사용할 때 문제가 발생할 수 있습니다. 두 개 이상의 Spring Batch 작업을 동시에 시작하려고 하면 오류가 발생합니다: ORA-08177: Unable to serialize access to this transaction. 이 오류는 혼란스러울 수 있지만 실제로는 데이터베이스 잠금 문제로 인해 발생합니다. 이 문제를 해결하기 전에 Spring Batch 및 데이터베이스 트랜잭션에 대한 배경 지식을 이해해야 합니다.

질문 내용

comletablefuture를 사용하여 두 개의 스프링 배치 작업을 병렬로 실행하려고 할 때 오류가 발생했습니다. 오류 메시지는 다음과 같습니다:

으아악

저는 스프링 배치 5.x, 스프링 부트 3.1.6, jdk 17을 사용하고 있습니다

응용 프로그램 속성

으아악

batchconfig.java

으아악

}

employeejobconfig.java

으아악

managerconfig.java

으아악

batchjobmanager.java

으아악

batchexecutorservice.java

으아악

batchjobrunner.java

으아악

batchjob.java

으아악

작업은 하나씩 또는 순차적으로 실행될 때 성공적으로 실행됩니다. 그런데 completablefuture를 사용하다가 문제가 발생했습니다. 스프링 배치 작업을 동시에 시작하는 것이 올바른 방법인가요?

Solution

1. application.properties

에 다음 속성을 추가합니다.

spring.main.allow-bean-definition-overriding=true

2. 아래의 batconfig.java에 표시된 대로 joblauncher()를 업데이트했습니다. 으아악

  1. 완전한 미래를 제거했습니다.

  2. batchexecutorservice.java를 삭제했습니다

  3. 작업을 호출하기 위해 Batchjobmanager.java에 다음 메서드를 추가했습니다.

    으아악

위 내용은 두 개 이상의 Spring Batch 작업을 동시에 시작하려고 하면 ORA-08177: Unable to serialize access for this transaction 오류가 발생합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
lsp
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿