SqliteConnection BeginTransaction() 호출 발행 후 궁금한 점이 있었는데 예약 잠금이 작동하여 쓰기 차단을 시작합니까?Sqlite 트랜잭션 - 예약 잠금은 언제 효력을 발생합니까?
예약 잠금은 실제 BeginTransaction 호출에 해당합니까? 아니면 Commit이 호출되고 트랜잭션이 실행 된 후에 만 사용합니까?
내 기존 데이터 액세스 계층을 활용하고 경쟁 조건을 방지하기 위해 필요할 때마다 사용자 정의 트랜잭션을 작성할 필요없이 b/c에게 문의하십시오. BeginTransaction()에 대한 호출을하지 않아도됩니다. 기존의 선택/삽입/업데이트 래퍼 조합을 호출하여 독점 쓰기 액세스 권한을 가진 상태에서 문제를 해결하고 마지막으로 커밋을 호출합니다. 피하려고하는 경쟁 조건을 방지하기 위해 트랜잭션의 예약 잠금이 BeginTransaction (즉, 반환되기 전 언젠가) 호출시 "즉시"활성 상태 여야합니다.
더 자세한 설명이 필요하면 알려 주시면 기꺼이 알려 드리겠습니다. 귀하의 전문 지식에 대해 친절하게 감사드립니다.
이 답변은 여기에 있습니다 : http://sqlite.phxsoftware.com/forums/p/1157/4892.aspx는이 문제를 다루지 만 이것에 대한 다른 문서가 없기 때문에이 사실 또는 일부에 대한 일부 확인 그것에 관한 자세한 내용은 좋을 것입니다. 위에서 설명한 앞서 설명한 솔루션을 따라 진행하면 DAL을 크게 수정해야하므로 BeginTransaction/Commit에서 잠금이 작동하는 방법을 확신하고 싶습니다. 다시 한번 감사드립니다. – samosaris