우리는 2 개의로드 밸런싱 서버에 Spring 3 + Hibernate 애플리케이션을 배치했다.Spring 3 애플리케이션에서 Hibernate @ SequenceGenerator와 관련된 문제
데이터베이스에 50 개의 삽입 후, 최대 절전 모드는 계속해서 카운트를 증가시키는 DB 시퀀스 nextval을 호출하지 않습니다. 그리고 이것으로 인해 두 서버의 시퀀스 값이 겹쳐서 "Unique Constraint Violation"예외가 발생합니다.
예. 첫째, 두 서버의 시퀀스 값이 각각 100과 150이라고 가정 해보십시오. 첫 번째 인스턴스의 시퀀스가 149에 도달하면 seq.nextVal을 호출해야합니다. 하지만 그렇게하지 않고 연속적으로 seq 값을 150으로 증가시키지 않고 다른 인스턴스에 의해 사용되어 실패하고 있기 때문에. 기본 할당 크기 : 50
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CUSTOMER_ID_SEQ")
@SequenceGenerator(name = "CUSTOMER_ID_SEQ", sequenceName = "CUSTOMER_SEQ")
@Column(name = "CUST_ID", unique = true, nullable = false)
public long getCustId() {
return custId;
}
미리 감사드립니다.