1

やあ、

タスクの所有プロセスを作成したナレッジ セッションを破棄した後、タスクを完了できません。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)
4

1 に答える 1

1

これは、ksession を dispose() すると、もう使用できないためです。保留中のタスクがまだある場合は、次の 2 つのオプションがあります。

  1. すべてのタスクが完了するまで (またはセッション内で実行されているプロセス インスタンスがなくなるまで)、セッションを破棄しないでください。
  2. セッションを破棄し、永続セッションを使用している場合は、タスクを完了する前に、JPAKnowledgeService クラスを使用してデータベースから再ロードできます。

jBPM5 でタスクが完了すると、タスクを作成したセッションがアクティブ (メモリ内にある必要があります) で、利用可能 (破棄されていない) である必要があります。

よろしくお願いします、

于 2012-10-30T08:42:16.083 に答える