2017-10-13 3 views
0

임은 최대 절전 모드를 사용하여 자바 웹 응용 프로그램을 개발하고 나는 기본적인 문제를 건너 왔어요 :적절한 최대 절전 모드 레이어 디자인

  • 을 감안할 때 사용자 A는 일부 Hibernate 트랜잭션을 트리거합니다. 트랜잭션 시작,로드, 커밋 트랜잭션.
  • 동시에 사용자 B도 유사한 트랜잭션을 트리거합니다. 그런 다음 예외가 발생합니다. 중첩 트랜잭션은 지원되지 않습니다..

한 번에 둘 이상의 트랜잭션을 활성화 할 수없는 것처럼 보입니다.

솔루션을 조사한 결과, 트랜잭션 당 세션 패턴과 같은 많은 개요 설명을 발견했지만 실제로는 아무것도 발견하지 못했습니다.

그래서 내 질문은 다음과 같습니다. 여러 동시 사용자를위한 최대 절전 모드 트랜잭션을 처리하기위한 적절하고 간단한 방법은 무엇입니까?

+0

Hibernate는 당연히 simulatenous 트랜잭션을 완벽하게 처리 할 수 ​​있습니다. 우리가 가진 예외와 그것을 트리거하는 코드를 보여주십시오. hibernate의 '일반적인'사용은 거래를 처리하는 데 사용하는 것에 달려 있기 때문에 절대로 사용하지 마십시오. – Thierry

답변

0

트랜잭션 관리는 꽤 표준 적이며, Hibernate에 의해 던져진 예외가 치명적임을 기억하자. 트랜잭션을 롤백하고 즉시 현재 세션을 닫아야한다.

각 거래를 마감해야합니다.

Session session = null; 
Transaction t = null; 
try{ 
    session = HibernateUtil.getSessionFactory().openSession(); 
    t = session.beginTransaction(); 


    //do what ever you want(session); 

    t.commit(); 


}catch(RuntimeException e){ 
     System.out.println(e.getMessage()); 

} 
관련 문제