|
Методы блокировки объектов | ☑ | ||
---|---|---|---|---|
0
Septera
23.04.12
✎
15:43
|
Решил навести порядок в фоновой обработке некоторых документов, помня примерно как это делается приступил к тестированию на SQL базе двух вариантов:
1. Заблокировать() 2. "ВЫБРАТЬ ДЛЯ ИЗМЕНЕНИЯ" По сабжу что лучше то? |
|||
1
Maxus43
23.04.12
✎
15:45
|
1. хз, помоему он не работает как хочется
2. работает в рамках транзакции |
|||
2
rs_trade
23.04.12
✎
15:47
|
(0) Заблокировать() это ты чей метод имеешь ввиду? так на всякий случай.
|
|||
3
Septera
23.04.12
✎
15:51
|
(1) тестил сейчас Заблокировать() на объектах документа, все отлично работает, параллельно с других компов добавлял новые документы, а то что транзакция нужна для второго варианта это да, но впринципе не страшно, главное результат))
(2) объект документа |
|||
4
Septera
23.04.12
✎
16:08
|
Методика тестирования:
- на первом ПК запускаем:
- на втором ПК через 5 секунд запускаем:
Результат: на втором ПК исключение: "Не удалось заблокировать запись." |
|||
5
Фауст
23.04.12
✎
16:10
|
Ты теплое с мягким сравниваешь. Эти методы разные задачи решают они не взаимозаменяемые. У тебя задача какая ?
|
|||
6
Reset
23.04.12
✎
16:11
|
Порадовал метод получения паузы в 15 сек
|
|||
7
Septera
23.04.12
✎
16:12
|
(5) блокировать объект на время его использования и корректно отслеживать это на остальных пк
|
|||
8
Фауст
23.04.12
✎
16:20
|
Это что обработка которая документы проводит ? Чего боишся ? блокировкой от чего защитится хочешь ?
|
|||
9
Septera
23.04.12
✎
16:28
|
(8) прямо допрос)
1. обработка создает документы 2. дедлоков 3. от дедлоков |
|||
10
Фауст
23.04.12
✎
16:33
|
Просто мало инфы чтобы тебе ответить...
Если от дедлоков то про Заблокировть() забуть, это вообще из другой оперы. Тебе нужно использовать "ДЛЯ ИЗМЕНЕНИЯ" И не в самой обработке, а в модуле проведения, это если их там еще нет, обычно если не самописка они там уже есть. |
|||
11
Septera
23.04.12
✎
16:38
|
(10) "ДЛЯ ИЗМЕНЕНИЯ" уже полгода использую на одном очень агрессивном узле и там этот метод блокировки показал хороший результат, но подумал может есть лучший вариант, к примеру программная (поверхностная) блокировка объектов
|
|||
12
Фауст
23.04.12
✎
16:47
|
Не, так не получится, у тебя он не будет ждать пока блокировка снимется, просто отвалится, если наткнется. Ты блокируешь только документы но не регистры- дедлоки все равно не вылечатся. А один и тот же документ все равно одновременно нельзя записать разным пользователям, так что смысла не имеет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |