따라서 최대 절전 모드, 스프링, PostgreSQL 및 Quartz를 사용한다.Hibernate, PostgreSQL 및 Quartz를 사용한 동시 트랜잭션
Quartz my은 많은 스레드에서 많은 동시 작업을 수행하므로 각 작업은 일부 데이터를 DB에 삽입하고 트랜잭션으로 처리합니다. 각 행에는 DB 시퀀스에서 가져 오는 직렬 속성이 있습니다.
하나의 작업에 삽입 된 모든 행 (예 : 하나의 트랜잭션)은 순서 (예 : "1,2,3"- 첫 번째 동시 트랜잭션 및 " 4,5,6 "에서 두 번째로). 우리는 두 개 이상의 동시 트랜잭션이 있으면 것을 나는 알고
, - 그들은 숫자가 혼합 얻을 수 있습니다 ...
나는이 문제를 해결 할 수 있습니까?
시퀀스 지정은 무엇입니까? 데이터베이스가 그것을 할당하는 경우 단순히 요청을 수신 한 순서대로 순서를 지정하지 않습니까? 이것이 원하는 것입니까? – sjlevin
두 개의 동시 트랜잭션의 삽입이 혼합되어있을 수 있으므로 첫 번째 트랜잭션은 1,4,5와 두 번째 - 2,3,6을 할당 할 수 있습니다. 나는 이것을 원하지 않는다. –
동시성을 피하기 위해 테이블을 잠글 수 있지만 응용 프로그램이 훨씬 느려집니다. 그런데 왜이 번호들을 신경 쓰나요? 롤백이 끝나면 시퀀스가 롤백되지 않고 번호에 멍청이가 생깁니다. 이 숫자가 얼마나 중요한지, 그것이 무엇을 의미합니까? –