먼저 저희 회사는 3티어 환경입니다..
다른데에도 3티어를 사용할테니 이런한 문제가 충분히 있을거라 여겨지고
검색을 할려니 뭐라 검색할지;;
질문은 미들웨어가 동시에 서버에서 데이터를 가져왔을때 commit하는 과정인데요
정확하게 예를 들어 얘기를 하면
영수증에 번호를 찍습니다.
영수증번호라는 테이블에 날짜와 영수증타입 영수증번호라는 3개의 필드만 존재하고
항상 날자별로 최상위 영수증번호만 가지구 있습니다( + 1씩 update 를 합니다 )
그러다보니 클라이언트에서 2~3인이 동시에 수납을 했을경우..
a 클라이언트 = 최상위 영수증 번호 1000번을 갖구있고
b 클라이언트 = 최상위 영수증 번호 1000번을 갖구있고
하다보니 a가 먼저 수행이 완료된다음 영수증번호가 1001로 변환하고
b가 수행을 하다 문제가 생겨 롤백을 할려고 하다보니 이미 1001로 증가되어 롤백이 안되어
프로그램이 죽어버리는 현상인거 같습니다..
도저히 이거 말곤 다른거라고 생각이 안드네요..다른문제 일수도있겠지만..
이경우 어떻게 처리해야할까요 -0-;;
락거는것도 물론 생각햇지만..락을 걸면 다른거에서 문제가 발생하여 락을 걸순없네요..
오라클 고수님들의..힘이...ㅎㄷㄷ