2014-12-29 4 views
1

ASP.net에서 웹 서비스에 노출 된 웹 메서드가 있습니다. 요청에 나는 데이터베이스에서 레코드를 가져오고 트랜잭션을 시작합니다. 트랜잭션 i에서 레코드를 업데이트하고 다른 작업을 수행하고 트랜잭션을 커밋합니다. 이제 또 다른 요청이 웹 메소드에서 왔고 다른 트랜잭션이 진행되는 동안 동일한 레코드를 가져옵니다. (noLock)으로 더티 읽기를 사용 중입니다. 시간 초과로 인해 nolock가 제거되었습니다. 나는 vb 및 SQL 서버 2008 R2 ASP.net을 사용하고 있습니다.ASP.net에서 웹 서비스의 동시 요청을 처리하는 방법은 무엇입니까?

답변

1

업데이트 할 준비가되면 잠금을 유지하고 잠금 시간을 최소로 유지하십시오. 읽기 및 쓰기 작업간에 레코드가 업데이트되었는지 감지해야하는 경우 레코드를 읽을 때 타임 스탬프를 가져 와서 변경 내용을 쓸 준비가되었을 때 타임 스탬프가 변경되었는지 확인하십시오. 시간 소인이 동일하지 않으면, 다른 스레드가 레코드를 갱신하고 변경 사항이 더 이상 유효하지 않음을 감지했습니다.

+0

레코드를 잠그면 트랜잭션 시작 후 다른 요청이 왔을 때 도움이 될 수 있습니다. 요청이 실제로 트랜잭션을 시작하기 전에 마이크로 초 안에 올 수 있습니다. –

관련 문제