Как я реализую “пессимистическую блокировку” в приложении asp.net?

Причина в том, что Student расширение Person делает его Comparable<Person>, но не Comparable<Student>, что ожидает ваш ArrayBox.

Этого должно быть достаточно, чтобы позволить ему implement Comparable<Student>.

6
задан andynormancx 6 March 2009 в 07:41
поделиться

1 ответ

Это кажется, что Вы - большая часть пути там. Я не думаю, что Вам действительно нужен LockRefreshedTime, хотя, он ничего действительно не добавляет. Можно точно также использовать LockAcquiredTime для решения, когда блокировка стала устаревшей.

Другая вещь, которую Вы захотите сделать, удостоверяются, что Вы используете транзакции. Необходимо перенести проверку и установку блокировки в рамках транзакции базы данных, так, чтобы Вы не заканчивали с двумя пользователями, которые думают, что у них есть допустимая блокировка.

Если у Вас есть задачи, которые требуют, чтобы получение соединило больше чем один ресурс (т.е. больше чем одну запись данного типа или больше чем одного типа записи) затем, необходимо применить блокировки в том же порядке везде, где Вы делаете блокировку. Иначе у Вас может быть тупик, где один бит кода имеет запись заблокированный и желает заблокировать запись B, и другой бит кода имеет заблокированный B и ожидает записи A.

Относительно того, как Вы удостоверяетесь, блокировки неожиданно не выпущены. Удостоверьтесь что, если у Вас есть какой-либо длительный процесс, который мог бы работать дольше, чем Ваш тайм-аут блокировки, что он обновляет свою блокировку во время его выполнения.

Термин "явная блокировка" также используется для описания на этот раз блокировки.

8
ответ дан 10 December 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: