|
Блокировка таблиц регистрация изменений плана обмена | ☑ | ||
---|---|---|---|---|
0
lucifer
12.08.15
✎
10:09
|
из книги "настольная книга эксперта по техн. вопросам"
"Когда происходит выгрузка сообщений обмена, эта таблица блокируется для того, что бы пока данные выгружаются никто не мог внести изменения" Вопрос, что в данном контексте значит "выгрузка сообщений обмена", это та выгрузка которая осуществляется платформой если у плана обмена включена опция "распределенная информационная база"? |
|||
1
Maxus43
12.08.15
✎
10:12
|
Неважно стоит ли галка РИБ, при выгрузке изменений блокируется, т.е. когда выгружается и проставляются номера сообщений в таблицах изменений
|
|||
2
TormozIT
гуру
12.08.15
✎
10:18
|
В книге написано неверно. Обязательная блокировка накладывается во время выполнения выборки изменений (метод ПланыОбмена.ВыбратьИзменения()). Все остальные блокировки необязательные.
|
|||
3
TormozIT
гуру
12.08.15
✎
10:22
|
Если используется штатный механизм выгрузки сообщения (метод ПланыОбмена.ЗаписатьИзменения()), то в нем выборка изменений тоже выполняется, но неявно, а после нее идет долгая запись выбранных изменений в файл. Запись выбранных изменений в файл может выполняться в транзакциях, размер которых в количестве объектов определяется параметром
<ЭлементовВТранзакции> (необязательный) Тип: Число. Определяет максимальное число элементов данных, которые помещаются в сообщение в рамках одной транзакции базы данных. Если значение параметра равно 0 (значение по умолчанию), то все данные помещаются в рамках одной транзакции. Такой режим является рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Но при создании сообщения в многопользовательском режиме могут быть конфликты блокировок между транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми другими пользователями. Для снижения вероятности возникновения таких конфликтов можно задать значение этого параметра, отличное от значения по умолчанию. Чем меньше значение параметра, тем меньше вероятность конфликта блокировок, но выше вероятность помещения в сообщение несогласованных данных. Значение по умолчанию: 0. |
|||
4
Галахад
гуру
12.08.15
✎
10:31
|
(2) А почему "Когда происходит выгрузка сообщений обмена, эта таблица блокируется" не верно по отношению к:
"Обязательная блокировка накладывается во время выполнения выборки изменений (метод ПланыОбмена.ВыбратьИзменения())" |
|||
5
lucifer
12.08.15
✎
10:34
|
(1) так все это я могу делать самостоятельно, вопрос в том когда блокировка накладывается когда платформа выгружает изменения в файл (а выгружает она есть стоит галка "распределенная информационная база") или всегда? Я же могу сам читать изменения из таблицы изменений, а потом выгружать, после чего УдалитьРегистрациюИзменений() что бы удалить из узла то что накопилось
(2) ну т.е. как я писал в (0) если используется "распределенная информационная база" |
|||
6
Живой Ископаемый
12.08.15
✎
10:35
|
2(5) нет
|
|||
7
lucifer
12.08.15
✎
10:38
|
(6) классный ответ )
|
|||
8
Живой Ископаемый
12.08.15
✎
10:39
|
2(7) нет на твою ложную предпосылку "ну т.е. как я писал в (0) если используется "распределенная информационная база"", что не ясно?
|
|||
9
TormozIT
гуру
12.08.15
✎
10:40
|
(4) Написано слишком расплывчато и большинство сначала думают, что блокировка удерживается на протяжении всей выгрузки. Строго говоря конечно написано недостаточно четко, а по факту получается неверно, т.к. порождает неверное понимание у большинства незнакомых с темой.
|
|||
10
lucifer
12.08.15
✎
10:41
|
(9) ну вот что значит "всей выгрузки", это работа метода ВыбратьИзменения(), я же могу читать данные из таблицы изменений запросом
|
|||
11
Галахад
гуру
12.08.15
✎
10:45
|
(9) Это да. Можно было бы и получше сформулировать.
|
|||
12
TormozIT
гуру
12.08.15
✎
10:47
|
(10) Если провести опрос по трактовке выражения "выгрузка изменений", то уверен, подавляющее большинство укажет на "выгрузка данных" вместо "выборка изменений". Все таки когда есть более однозначные термины, нужно употреблять именно их, а не создавать неоднозначности на ровном месте.
|
|||
13
lucifer
12.08.15
✎
10:50
|
Ок задам вопрос в лоб. Есть план обмена галка "распределенная информационная база" не установлена, периодически по правилу конвертации через обработку "Универсальный обмен данными в формате XML" выгружаются сущности что попали в этот план обмена, на момент выгрузки таблица изменений блокируется?
|
|||
14
TormozIT
гуру
12.08.15
✎
10:51
|
(13) Нет.
|
|||
15
TormozIT
гуру
12.08.15
✎
10:54
|
(14) Опять же учитывая, что
выгрузка изменений - запись уже выбранных изменений в файл/строку выборка изменений - прикрепление изменений к сообщению обмена (метод ПланыОбмена.ВыбратьИзменения()) |
|||
16
Галахад
гуру
12.08.15
✎
10:56
|
:-) Похоже одного вопроса будет мало...
|
|||
17
lucifer
12.08.15
✎
10:56
|
(14) ну и отличненько
|
|||
18
Maxus43
12.08.15
✎
11:08
|
(13) Да
:) |
|||
19
Maxus43
12.08.15
✎
11:10
|
галка РИБ не влияет на этот механизм вобще, но ты же используешь при выгрузке стандартные ВыбратьИзменения() и т.д., а не запросами дёргаешь, значит блокируется таблица изменений
|
|||
20
lucifer
12.08.15
✎
11:23
|
(18) (14) -> очная ставка
|
|||
21
TormozIT
гуру
12.08.15
✎
11:26
|
(20) В нечеткой терминологии на один вопрос можно отвечать условно правильно и да и нет.
|
|||
22
Maxus43
12.08.15
✎
11:26
|
(20) не, много умных слов. И простая логика из (2)(3) противоречит (14). Я незнаю как так)
|
|||
23
TormozIT
гуру
12.08.15
✎
11:27
|
Походу (15) никто специально не читает.
|
|||
24
TormozIT
гуру
12.08.15
✎
11:27
|
Точнее походу (15) все специально не читают =)
|
|||
25
Maxus43
12.08.15
✎
11:29
|
(23) если не обращать внимания на терминологию в (13) (автор имеет ввиду впринципе блокируются или нет при выгрузке, в которую входит и выборка и выгрузка по факту), можно сказать что ответ Да. Незнаю зачем тут галка РИБ фигурирует, разницы нет
|
|||
26
lucifer
12.08.15
✎
12:00
|
(25) ну выбирать то можно по разному, я могу просто получить запросом список общностей из узла, при чтении таблица не блокируется ж. 90% что обработка Универсальный обмен данными в формате XML так и работает
|
|||
27
lucifer
12.08.15
✎
12:01
|
(26) сущностей*
|
|||
28
TormozIT
гуру
12.08.15
✎
12:19
|
Если при выгрузке сообщения не требуется получать квитанцию (подтверждение) доставки, то обойти изменения на узле оптимальнее с точки зрения параллельности своим запросом, т.е. без вызова ВыбратьИзменения().
(26) Обработка "Универсальный обмен данными в формате XML" до сих пор не умеет запросом обходить изменения на узле. Поэтому твое предположение неверно. Чтобы выгрузить изменения, она их выбирает методом ВыбратьИзменения() и таким образом накладывает блокировку на время его выполнения на таблицы изменений. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |