JBPM テーブルは別のデータベースに存在する必要がありますか?

StackOverflow https://stackoverflow.com/questions/1328817

  •  19-09-2019
  •  | 
  •  

質問

JBPM セッションを設定する場合、2 つのオプションがあります。

  1. JBPM マッピングを同じ Hibernate セッションに置くことができ、その結果、アプリケーション テーブルとともにデータベース内にそのテーブルが存在します。

  2. JBPM マッピングを別の Hibernate セッションに配置し、別のデータベースに保存できます。

方法 1 を推奨する記事を 1 つ見たことがあります。その理由はわかります。この方法では、JBPM データ オブジェクトへの外部キー参照を直接取得できるからです。私が確認した唯一の問題は、JBPM プロセスの実行中に jbpm オブジェクトを保存しようとすると、データベースでデッドロックが発生することです。

それ以外に、どの方法がより良いでしょうか?また、その理由は何ですか?

役に立ちましたか?

解決

これは、あなたが構築したいアーキテクチャに依存します。

あなたは、いくつかの異なるアプリケーションが通信1つの集中管理されたワークフローコンポーネントを、必要な場合、

は、単一のデータベースを移動するための方法である。

ワークフローは唯一のいくつかのアプリケーションに固有のものであれば、

大藤、分離のデータベースを維持することをお勧めします。それは他の人にあるように、その方法は、あなたがそれを後でいくつかのアプリケーションでのjBPMをアップグレードしておくことができます。

しかし、あなたもたくさんあっても、すべてのアプリケーションのために別々のDBを持っていることを決定することができます。 )を管理するための何の巨大なテーブルが存在しないため、この方法では、実行時のパフォーマンスは素晴らしいまま

あなたが見ることができるように、jBPMはあなたのアーキテクチャにそれを埋め込む方法では非常に柔軟です。だから、あなた自身のための分析を行い、アカウントの現在とあなたのアーキテクチャの今後の進化に入れ最善のアプローチ、何を決定する必要があります。

他のヒント

1つのデータベースにアプリケーションとjBPMテーブルの両方を置くあなたは、単一のトランザクションでのjBPMテーブルとアプリケーションデータの両方を更新することができます。たとえば、あなたはタスクがjBPMの中で行われた場合、アプリケーションデータにいくつかの属性を更新したい場合などに便利です。これは壊れるからあなたのデータを保持するのに役立ちます。そうしないと、あなたのjBPMトランザクションをコミットしてから、アプリケーションのデータ・トランザクションをコミットする問題に実行する場合、あなたは非常に大きな問題を持っている...

私たちは、バージョンをアップグレードするか、多分それは別のクライアントのために必要となるとき、別のベンダーを使用することができるようにするために別のjBPMデータベースを維持することを決めたケースがありました。前述したように、我々は、アプリケーションレベルでの単一の操作用に別のHibernateセッションに対処しなければならなかった状況に走りました。これらの条件の一貫性を保つために、我々は Atomikosする

と呼ばれるツールを使用することにしました
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top