2009-08-25 94 views
2

設置JBPM會話有兩種選擇。JBPM表應該放在單獨的數據庫中嗎?

  1. 你可以把同一個Hibernate Session你的jBPM的映射,並作爲一個結果,有他們在與應用程序表的數據庫表。

  2. 你可以把在一個單獨的Hibernate會話jBPM的映射,並讓他們在一個單獨的數據庫。

我見過一篇推薦方法1的文章,我可以看到爲什麼,因爲它允許您直接擁有對JBPM數據對象的外鍵引用。我所看到的唯一問題是,如果在JBPM進程運行時嘗試保存jbpm對象,則會導致數據庫死鎖。

除此之外,哪種方法會更好,並且出於何種原因?

回答

3

這取決於您想要構建的體系結構。

如果你想要一個集中管理的工作流程組件,其中幾種不同的應用與溝通,單個數據庫是要走的路。

OTOH,如果工作流程是特定於某些應用程序,這是更好地保持分離的數據庫。這樣,您可以稍後在某些應用程序中升級jBPM,並將其保留在其他應用程序中。

但是,您也可以決定爲每個應用程序都有一個單獨的數據庫,即使有很多。這樣,運行時的性能,因爲沒有巨大的表來管理)

正如你所看到的,jBPM是如何將其嵌入到您的架構非常靈活撐大。因此,您需要爲自己進行分析,並根據您的架構的當前和未來發展情況來決定最佳方法。

+0

我們去每個系統jBPM的,所以對我們來說,這將更有意義,都已經記下來,方便編碼和優勢一個數據庫工具的休眠關係。 – Zoidberg 2009-09-01 19:50:57

1

在1個數據庫既把你的應用程序和jBPM表允許你在一個事務中同時更新jBPM表和應用程序數據。例如,如果您想在jbpm中執行任務時更新應用程序數據的某些屬性,這很有用。這有助於防止數據被破壞。否則,如果您提交您的jbpm交易,然後遇到提交您的應用程序數據交易的問題,您將遇到一個相當大的問題...

+0

TI是真的,我碰到過很多次。 – Zoidberg 2009-09-03 03:00:24

1

我們有一個案例,我們決定保留jbpm數據庫以便能夠分開升級版本或在不同客戶需要時使用其他供應商。如上所述,我們遇到了一些情況,我們必須爲應用程序級別的單個操作處理單獨的休眠會話。爲了保持這些條件的一致性,我們決定使用一個名爲Atomikos

相關問題