Невозможно выполнить задачи после вызова ksession.dispose в jBpm 5.3

Hi,

Я не могу выполнить задачу после удаления сеанса знаний, который создал процесс владения> задачи. Я использую версию jBPM 5.3. Ниже приведена трассировка стека.

java.lang.IllegalStateException: Недопустимый вызов метода. Эта сессия была предварительно удалена.

      org.drools.reteoo.DisposedReteooWorkingMemory.
                                     getWorkItemManager(DisposedReteooWorkingMemory.java:386)

      org.drools.impl.StatefulKnowledgeSessionImpl.
                                     getWorkItemManager(StatefulKnowledgeSessionImpl.java:311)

     org.drools.command.runtime.process.CompleteWorkItemCommand.
                                     execute(CompleteWorkItemCommand.java:69)

person sriram    schedule 29.10.2012    source источник


Ответы (1)


Это потому, что после того, как вы dispose() ksession вы больше не можете его использовать. Если у вас все еще есть незаконченные задачи, у вас есть 2 варианта:

  1. Не удаляйте сеанс, пока все его задачи не будут выполнены (или внутри него не будут запущены экземпляры процесса).
  2. Если вы удалили сеанс и используете постоянные сеансы, вы можете перезагрузить его из базы данных с помощью класса JPAKnowledgeService ПЕРЕД выполнением задачи.

Когда задача завершается в jBPM5, сеанс, создавший задачу, ДОЛЖЕН быть активен (должен находиться в памяти) и доступен (не удален).

С уважением,

person Esteban Aliverti    schedule 30.10.2012
comment
Спасибо, Эстебан, за ваше предложение. Я попробовал вариант 2, и он сработал. - person sriram; 07.11.2012