Блокировка таблиц регистрация изменений плана обмена #750470


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

В этой группе 1С