Ошибка при НачатьЗапись() записи сообщения обмена

1. alexeyo51 31.01.20 13:32 Сейчас в теме
Недавно заметили, что в ЖР возникает ошибка в коде обработки КОИБ (БСП)
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелДляОбмена):

Текст ошибки:
Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!


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

Выяснилось, что при определенной последовательности действий платформа ведет себя странно и 20 секунд держит блокировку узла в одном из сеансов
1. В 1-м сеансе вызвать НачатьЗапись(), сразу после этого вызвать ПрерватьЗапись() или не вызывать ЗакончитьЗапись()
2. Во 2-м сеансе вызвать НачатьЗапись(), далее ЗакончитьЗапись()
3. В 1-м сеансе вызвать НачатьЗапись() и получить ошибку.

При всех остальных комбинациях ошибка не возникает.

Осугубляет то, что эта ошибка в случае с БСПшными обменами не соответствует условиях эксперимента, что делает ее загадочной и оттого опасной в перспективе.
Может быть, кто-то сталкивался с таким поведением и знает, в чем суть и как решить проблему.

Приложил обработку, на которой можно воспроизвести ошибку.
Прикрепленные файлы:
ПроверкаОшибкиОбмена.epf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alexeyo51 28.12.23 12:28 Сейчас в теме
Решение оказалось в том, чтобы НачатьЗапись оформить в транзакцию (см. доработанную обработку).
Правда не понятен механизм исправления проблемы при этом, но это работает.
Прикрепленные файлы:
ПроверкаОшибкиОбмена.epf
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот