×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

5.12.10. Поддержка двухфазной фиксации в логическом декодировании

При использовании базовых функций обратного вызова плагина вывода (например, begin_cb , change_cb , commit_cb и параметр message_cb ) команды двухфазной фиксации, такие как PREPARE TRANSACTION , COMMIT PREPARED и ROLLBACK PREPARED не декодируются. В то время как PREPARE TRANSACTION игнорируется, COMMIT PREPARED декодируется как COMMIT и ROLLBACK PREPARED декодируется как ROLLBACK .

Для поддержки потоковой передачи двухфазных команд плагин вывода должен предоставлять дополнительные функции обратного вызова. Требуется наличие нескольких функций обратного вызова для двухфазной фиксации ( begin_prepare_cb , prepare_cb , commit_prepared_cb , rollback_prepared_cb и параметр stream_prepare_cb ) и одной необязательной функции ( filter_prepare_cb ).

Если функции обратного вызова плагина вывода для декодирования команд двухфазной фиксации определены, то при выполнении команды PREPARE TRANSACTION , изменения этой транзакции декодируются, передаются в плагин вывода, и prepare_cb callback-функция. Это отличается от базовой схемы декодирования, при которой изменения передаются в плагин вывода только в момент фиксации транзакции. На начало подготовленной транзакции указывает begin_prepare_cb callback.

Когда подготовленная транзакция отменяется с помощью команды ROLLBACK PREPARED , вызывается функция обратного вызова rollback_prepared_cb , а когда подготовленная транзакция фиксируется с помощью команды COMMIT PREPARED , вызывается функция обратного вызова commit_prepared_cb callback.

Плагин вывода может дополнительно определять правила фильтрации через filter_prepare_cb для декодирования только определенных транзакций в две фазы. Это может быть реализовано с помощью сопоставления по шаблону в gid или путем поиска с использованием xid .

Пользователям, желающим декодировать подготовленные транзакции, необходимо учитывать следующие моменты:

  • Если подготовленная транзакция монопольно заблокировала таблицы каталога [user], то декодирование операции PREPARE может быть заблокировано до фиксации основной транзакции.

  • Решение для логической репликации, реализующее распределенную двухфазную фиксацию с использованием данной функциональности, может привести к взаимной блокировке, если подготовленная транзакция заблокировала таблицы каталога [user] монопольно. Чтобы избежать этого, пользователям следует воздержаться от установки блокировок на таблицы каталога (например, явных LOCK команд) в таких транзакциях. См. Раздел 5.12.8.2 подробную информацию.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению