Статья

20.09.2023

Серия семинаров, посвященных Flowable

Данный инструмент позволяет автоматизировать бизнес-процессы, описанные в нотациях BPMN 2.0.

 

В проекте сокринг Flowable применяется в качестве ядра — с помощью него определяется порядок вызова микросервисов. Потенциал и возможности Flowable огромные, но в то же время — это сложный механизм. И даже глубокое понимание деталей не может предостеречь от ошибок.

 

Так и произошло — команда столкнулась с «FlowableOptimisticLockingException». Эта проблема возникала редко и пропадала при повторном запуске процесса.

 

В поиске ответов, обратились к теории. В обеспечении стабильности Flowable важную роль играет оптимистичная блокировка — если две транзакции одновременно обновляют один и тот же ресурс, то одна из них завершается с ошибкой.

FlowableOptimisticLockingException-Business-Process-Model-and-Notation_3840x2160

Business Process Model and Notation (BPMN) — это стандартизированный метод отображения блок-схем, для создания и обмена простыми для понимания диаграммами. В нашей BPMN схеме параллельных транзакций не было. В чем же причина появления «FlowableOptimisticLockingException»?

 

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

 

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

 

После того как установили источник проблемы, решение пришло быстро — перенести отправление запроса в микросервис после завершения первой транзакции. Это помогло избавиться от бесконечной гонки.

Кириллов Даниил

Кириллов Даниил

Java-разработчик

arena-race_1148x552

Читайте также:

Статья

23.06.2023

Причины колебаний рынка ИТ-аутсорсинга в 2022 - 2023 годах

Новость

01.06.2023

Проект автоматизации проектного окружения

Статья

16.05.2023

Комфорт в большой или PRO ИТ-компании?

Больше новостей в наших социальных сетях