BPM возобновить зависшие процессы

Добрый день.

Из-за ошибки в коде получил lock на уровне бд во время выполнения одной из сервисных задач бизнес-процесса:
image
Проблему локализовал. После перезапуска сервера данная проблема не повторяется, но вот бизнес-процесс безнадежно завис на данном этапе:
image
Есть ли возможность возобновить такой процесс?

1 симпатия

Добрый день.
Вы можете посмотреть, на каком этапе по факту висит процесс:

select ex.* from ACT_RU_EXECUTION ex 
join BPM_PROC_INSTANCE pi on pi.ACT_PROCESS_INSTANCE_ID = ex.PROC_INST_ID_ 
where pi.ID = 'the_id_of_bpm_proc_instance_entiy';

В поле act_id_ результата запроса вы увидите элемент, на котором висит процесс. Если сервис “Создать прогресс этапа ППО” у вас падал с эксепшном, то процесс, вероятно, висит на элементе с таймером. Тогда вы можете попробовать найти связанную с текущим EXECUTION запись в таблице ACT_RU_JOB и проставить записи в ACT_RU_JOB значения колонок DUEDATE_ (какая-либо дата в будущем, когда должен быть выполнен таймер) и RETRIES_ (это количество попыток выполнения данной джобы. Поставьте 1). После этого, таймер должен сработать в заданное вами время и процесс снова придёт в этап “Создать прогресс этапа ППО”. Но это только если моя догадка верна, и процесс висит на таймере. В общем, посмотрите сначала что у вас в таблице ACT_RU_EXECUTION

2 симпатии

Совершенно верно - именно на таймере процессы и остановились в итоге.
Спасибо, теперь буду отлавливать