代码之家  ›  专栏  ›  技术社区  ›  Zoidberg

jbpm表应该在单独的数据库中吗?

  •  2
  • Zoidberg  · 技术社区  · 16 年前

    设置jbpm会话时有两个选项。

    1. 您可以将JBPM映射放在同一个休眠会话中,结果是,将它们的表与应用程序表放在数据库中。

    2. 您可以将jbpm映射放在单独的休眠会话中,并将它们放在单独的数据库中。

    我看过一篇推荐方法1的文章,我知道为什么,因为它允许您直接拥有对jbpm数据对象的外键引用。我看到弹出窗口的唯一问题是,如果在运行jbpm进程时尝试保存jbpm对象,则会导致数据库死锁。

    除此之外,哪种方法更好,原因是什么?

    3 回复  |  直到 14 年前
        1
  •  3
  •   jbarrez    16 年前

    这取决于您想要构建的体系结构。

    如果您想要一个集中管理的工作流组件,其中有几个不同的应用程序可以与之通信,那么一个数据库就可以了。

    但是,如果工作流只针对某些应用程序,那么最好保持数据库的分离。这样,您可以稍后在某些应用程序中升级jbpm,并将其保留在其他应用程序中。

    但是你也可以决定为每个应用程序都有一个单独的数据库,即使有很多。这样,运行时性能保持良好,因为没有要管理的大表)

    如您所见,jbpm在如何将其嵌入到您的体系结构中非常灵活。因此,您需要为自己进行分析,并决定什么是最好的方法,同时考虑到您的体系结构当前和未来的演进。

        2
  •  1
  •   user167627    16 年前

    将应用程序和jbpm表放在1个数据库中可以在单个事务中更新jbpm表和应用程序数据。例如,如果您希望在jbpm中执行任务时更新应用程序数据的某些属性,则此功能非常有用。这有助于防止数据损坏。否则,如果您提交了jbpm事务,然后在提交应用程序数据事务时遇到问题,那么您会遇到一个非常大的问题…

        3
  •  1
  •   eaykin    14 年前

    我们在一个案例中决定将jbpm数据库分开,以便能够升级版本,或者在不同客户机需要时使用其他供应商。如上所述,我们遇到了这样的情况:我们必须在应用程序级别为单个操作处理单独的休眠会话。为了保持这些条件的一致性,我们决定使用一个名为 Atomikos

    推荐文章