나는두 멤버가 액세스하려고하면 레코드를 잠그는 방법은 무엇입니까?
내 환경이 .Net2.0, VS 2008 웹 응용 프로그램 두 멤버가 동시에 액세스하려고 할 때 내가 기록을 잠글 필요가
이다,이 같은 시나리오가 있습니다.
우리는 (sessionid를 퍼팅과 사전에 고유 번호를 기록하고 정적 또는 응용 프로그램 변수로 유지) 전면 말까지, 두 가지 방법으로
그것을 할 때 응답, 우리는 발표 할 예정 수 해당 페이지에서 나가고, 게시 버튼을 클릭하고 세션이 종료 된 후 클라이언트가 연결되어 있지 않습니다.
백엔드 (DB 자체에서 레코드 잠금 - 연구해야 함 - 팀원이보고 있음).
다른 방법이 있습니까? 각 단계마다 다른 방법을 찾아야합니까?
조건을 찾을 수 있습니까?
이미 데이터베이스를 사용하고 있다면 데이터베이스 트랜잭션을 사용하여 원하는 것을 얻을 수 있습니까? 트랜잭션 내에서 읽기/업데이트를 수행하고 충돌이 발생하면 DB는 실패한 트랜잭션을 롤백 한 다음 실패를 처리합니다. – sarnold
첫 번째 질문 : ** 왜 ** 잠금해야합니까 ?? 일반적으로 오늘의 데이터베이스는 낙관적 인 동시 처리를 사용합니다. 기본적으로 모든 것이 잘된다고 가정합니다 (99 %의 시간이 소요됩니다). 잠금 장치 등을 신경 쓰지 않아도됩니다. 충돌이 발생합니다. –
@sarnold : ASP.NET에 대한 생각은 아니지만 사용자가 브라우저에서 데이터를 입력/변경하는 동안 연결/트랜잭션을 열어 두시겠습니까? 그가 브라우저를 닫으면 어떻게 될까요? 더 이상 유효하지 않은 정리 잠금에 대한 추가 코드가 필요합니다. – Gertjan