Я делаю финансовое приложение, в котором я ожидаю проблему параллелизма данных.как справиться с этой проблемой параллелизма данных?
Предположим, что есть учетная запись ABC, в которой есть 500 долларов США. Пользователь из Интернета может перевести эти средства на другие счета. Это будет включать в себя 2 шага 1-й проверки наличия средств и 2-й передачи. Я делаю транзакцию и делаю в ней оба действия.
Проблема в том, что за какое-то время (скажем, Time1) есть 2 или 3 отдельных запроса на передачу (например, транзакция1, транзакция2, транзакция3) одинаковой суммы. Теперь выделенная сумма составляет 500 долларов США. Если все переводы начинаются в одно и то же время, все будут проверяться на сумму ($ 500)? который будет истинным, и следующее заявление перенесет средства на другой счет.
Я читал об уровнях изоляции транзакций, но не мог решить, какой уровень изоляции я должен использовать, на самом деле я путаюсь в его понимании. Пожалуйста, помогите мне.
Благодаря
Благодаря ГБН, это выглядит красиво решение. На это есть два вопроса. 1. Должен ли я освободить замок, или он будет автоматически включен. 2. Это поддерживается в SQL Server 2005 на общих хостингах? Спасибо – user576510
1. Автоматический при совершении (HOLDLOCK изменяет продолжительность). 2. Да: это стандартный SQL – gbn
в случае отката, также автоматически освобождается locak? – user576510