batch 3

Spring Batch와 직렬화 엑세스(ORA-08177) 오류 원인 및 해결

SQLException: ORA-08177: can't serialize access for this transactionSpring Batch 설정 중 '이 트랜잭션에 대한 직렬화 액세스를 할 수 없습니다.'는 에러가 발생했다. 결론부터 말하자면, 현재 애플리케이션의 트랜잭션 격리 수준이 직렬화(Serializable)로 설정되어 있는데, 이 규칙을 지키지 못해 발생한 에러이다. 여기서 '격리 수준'이란 트랜잭션 간의 동시성 문제를 해결하기 위한 규칙을 의미한다. 그중 Serializable 옵션은 한 트랜잭션이 특정 데이터를 읽는 동안, 다른 트랜잭션이 동일한 데이터에 접근/수정하는 것을 막기 위해 그 데이터에 잠금을 걸어 동시 접근을 방지한다. 따라서, 모든 트랜잭션이 마치 직렬로 실행되는 것처럼 ..

Spring 2024.12.14

[Spring Batch] ORA-00955 에러 해결하기

Spring Batch의 초기 구성을 설정하는 과정에서 여러 오류가 발생할 수 있다.이전 글에 이어 발생할 수 있는 ORA-0085 에러에 대해 알아보자. SQLSyntaxErrorException: ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.Caused by: org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of class path resource [org/springframework/batch/core/schema-oracle10g.sql]: CREATE TABLE BATCH_JOB_INSTANCE ( JOB_INSTANCE_ID..

Spring 2024.12.12

[Spring Batch] Table "BATCH_JOB_INSTANCE" not found

Batch 프로젝트의 초기 Config를 구성하는 과정에서 로컬과 개발 서버에서는 정상적으로 동작하는데,이상하게 운영 서버에서 실행하면 에러가 발생했다.해결하는 과정에서 여러 에러를 마주쳤는데, 최대한 상기하며 정리해보겠습니다. BadSqlGrammarException [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]운영에 배포하기 전에 개발서버에서 정상 동작하는 것을 확인했었다. 그리고 에러 로그도 SQL Exception 관련 문제라고 말하지만 문제가 되는 테이블은 Spring Batch에서 관리하는 메타 테이블이기 때문에 mapper 쪽을 잘못 작성해서 발생한 문제는 아니다. 어쨌든..

Spring 2024.11.20