Transacted
Общее описание
Блок Transacted включает транзакционное поведение для последующих шагов потока. Если любой шаг внутри транзакции завершится ошибкой, все выполненные до этого момента изменения будут отменены (выполнен rollback). Обеспечивает целостность и согласованность данных при интеграции с базами данных (БД).
Важные условия для корректной работы:
- Для блоков SQL/JDBC внутри Transacted должен быть отключен автоматический коммит (настраивается через соединение).
- Запросы SQL не должны содержать оператор
COMMIT. - При использовании разных соединений к СУБД, целевые базы данных должны поддерживать XA (двухфазный коммит). Кроме этого, для таких СУБД должны быть выполнены соответствующие настройки, например, для PostgreSQL значение параметра
max_prepared_transactionsдолжно быть больше нуля. - СУБД SQLite, ClickHouse, Teradata и Firebird не поддерживают двухфазный коммит (2PC). Их использование в одном Transacted‑блоке с СУБД, поддерживающими 2PC, может привести к ошибкам выполнения операций Commit и Rollback.
- Вложенные потоки с блоками SQL/JDBC при необходимости транзакционности должны содержать собственный блок Transacted.
Ограничения:
- Нельзя добавлять несколько Transacted‑блоков на одном уровне вложенности.
- Нельзя размещать Transacted‑блоки внутри блоков‑контейнеров, таких как Loop, Choice и т.д.
- Если ошибка возникает в потоке после контейнера Transacted, выполняется Rollback для всех предыдущих SQL- и JDBC-блоков, если для них выставлен Auto-Commit "false" и в запросе нет оператора COMMIT.
- Операции Commit и Rollback, запущенные блоком Transacted родительского потока, выполняются только на уровне этого потока и не распространяются на его дочерние потоки.
Блок Transacted может использоваться в качестве:
-
блока-обработчика
-
контейнера для группы шагов.
Блок-обработчик предназначен для управления, проверки и преобразования данных, которые используются в контексте потока.
Настройка блока
В данном разделе описаны параметры блока Transacted, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Description | description | Краткое описание блока. | Строка | |
| Ref | ref | Ссылка на bean в реестре. | Строка |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Disabled | disabled | Определяет, будет ли отключен блок в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |