Пакетные транзакции MuleSoft ESB

Спасибо заранее за любую помощь. Вот сценарий, который я пытаюсь воссоздать в Mulesoft.

1 500000 записей в таблице. Вот текущий процесс, который мы используем.

Начать транзакцию.

удалить все записи из таблицы.

перезагрузите таблицу из плоского файла.

совершить сделку.

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

Мне удалось получить необходимую нам скорость с помощью элемента Batch < 10 минут, но, похоже, транзакции не поддерживаются во всем потоке пакета.

Любые идеи, как я мог заставить это работать в Mulesoft?

Еще раз спасибо.

3 ответа

Немного другой рабочий процесс, но как насчет:

  • Загрузить временную таблицу из плоского файла
  • В случае удачного исходного стола
  • Переименовать временную таблицу в исходное имя таблицы

Вы можете сохранить рабочий процесс пакетной обработки Mule, чтобы загрузить временную таблицу и забыть об откате.

Для этого вы можете попробовать следующее:

  • Использовать транзакции XA (поскольку будет использоваться более одного соединителя, независимо от использования одного и того же транспорта или нет)
  • Включите в транзакцию ресурс, используемый в пользовательском коде Java.

Это также может быть применено в том же транспортном средстве (например, JDBC в конфигурации Mule, а также в компоненте Java), поэтому оно не ограничивается случаем, продемонстрированным в PoC, который приводится только в качестве ссылки.

Пожалуйста, обратитесь к этой статье https://dzone.com/articles/passing-java-arrays-in-oracle-stored-procedure-fro

Из записей опроса временных таблиц. Вы можете создать массив с любым количеством записей. С размером 100K будет включать в себя только 15 поездок туда и обратно.

Чтобы определить записи об ошибках, вы можете вставить записи в таблицу ошибок, но это должно быть реализовано в процедуре базы данных.

Другие вопросы по тегам