Детали задачи
-
История
-
Решение: Готово
-
Medium
-
Не заполнено
-
Не заполнено
-
Не заполнено
Описание
Если таймер падает с ошибкой три раза подряд, то процесс полностью останавливается и нет никакой информации о том что таймер/процесс был остановлен. Только искать через сервисы флоубла умерший таймер
Варианты решения:
- Админский вариант, добавить гибко настраиваемую джобу, которая проверяет умер ли процесс (проверяет таймеры с нужным id таймера из flowalbe), и переводит документ в статус “Ошибка выполнения процесса”. Дальше админ восстанавливает таймеры, в ручную или можно добавить действие
- Автоматический вариант. Добавить джобу которая 1-2 раза в день проверяет умершие таймеры и оживляет процессы сама. т.е. ограничение в три попытки и процесс умер убирается.
Можно так-же добавить проверку что если это ошибка was updated by another transaction concurrently таймер восстанавливается, если другая логируется и пропускается.
Может быть проблема с дублирующимся таймерами, когда их кол-во резко растёт в БД ECOSCOM-3885. Как решение можно добавить лимит кол-во таймером для восстановление по процессу, если нужно оживить больше 100 таймеров пропускаем процесс и логируем информацию
Так-же можно совместить решения и при если пропускаем процесс, менять статус у документа
Примеры ошибок:
ActivityInstanceEntity[id=10886326, activityId=sid-BEF8848E-9EF4-45E4-A3D8-2B6678BEBFCC, activityName=null, executionId= 7394154] was updated by another transaction concurrently
Execution[ id '7300785' ] - activity 'sid-BEF8848E-9EF4-45E4-A3D8-2B6678BEBFCC' - parent '7300778' was updated by another transaction concurrently
HistoricActivityInstanceEntity[id=10892946, activityId=sid-BEF8848E-9EF4-45E4-A3D8-2B6678BEBFCC, activityName=null, executionId= 7394154] was updated by another transaction concurrently
HistoricVariableInstanceEntity[id=7285867, name=ediAttachmentsStatus, revision=62239, type=flwAlfrescoScriptNode] was updated by another transaction concurrently