Frage

Bei der Einrichtung Ihrer JBPM -Sitzung gibt es zwei Optionen.

  1. Sie können Ihre JBPM -Zuordnungen in derselben Hibernate -Sitzung einfügen und infolgedessen ihre Tabellen in der Datenbank mit den Anwendungstabellen haben.

  2. Sie können die JBPM -Mappings in eine separate Hibernate -Sitzung einfügen und sie in einer separaten Datenbank haben.

Ich habe einen Artikel gesehen, der die Methode 1 empfiehlt, und ich kann sehen, warum, weil Sie dies direkt fremde Schlüsselreferenzen auf die JBPM -Datenobjekte direkt haben können. Das einzige Problem, das ich gesehen habe, ist Popup, wenn Sie versuchen, das JBPM -Objekt zu speichern, während ein JBPM -Prozess ausgeführt wird. Sie erhalten einen Deadlock in der Datenbank.

Ansonsten wäre welche Methode besser und aus welchen Gründen?

War es hilfreich?

Lösung

Es hängt von der Architektur ab, die Sie bauen möchten.

Wenn Sie eine zentral verwaltete Workflow -Komponente wünschen, in der verschiedene Anwendungen kommunizieren, ist eine einzige Datenbank der richtige Weg.

Wenn der Workflow nur für einige Anwendungen spezifisch ist, ist es besser, die Datenbanken getrennt zu halten. Auf diese Weise können Sie JBPM später in einigen Anwendungen aktualisieren und es so lassen, wie es in anderen ist.

Sie können sich aber auch für eine separate DB für jede App entscheiden, auch wenn es viel gibt. Auf diese Weise bleibt die Laufzeitleistung großartig, da es keinen riesigen Tisch gibt, der verwaltet wird)

Wie Sie sehen können, ist JBPM sehr flexibel, wie Sie es in Ihre Architektur einbetten können. Sie müssen also die Analyse für sich selbst durchführen und entscheiden, was der beste Ansatz ist, der aktuelle und zukünftige Entwicklung Ihrer Architektur berücksichtigt wird.

Andere Tipps

Wenn Sie sowohl Ihre Anwendung als auch JBPM -Tabellen in 1 Datenbank einsetzen, können Sie sowohl JBPM -Tabellen als auch Ihre Anwendungsdaten in einer einzigen Transaktion aktualisieren. Dies ist nützlich, wenn Sie beispielsweise einige Attribut für Ihre Anwendungsdaten aktualisieren möchten, wenn eine Aufgabe in JBPM ausgeführt wird. Dies hilft, dass Ihre Daten nicht beschädigt werden. Andernfalls haben Sie, wenn Sie Ihre JBPM -Transaktion begehen und dann in ein Problem stoßen, das Ihre Anwendungsdaten -Transaktion begeht, ein ziemlich großes Problem ...

Wir hatten einen Fall, in dem wir uns entschlossen haben, die JBPM -Datenbank getrennt zu halten, um die Version zu verbessern oder einen anderen Anbieter zu verwenden, wenn sie für verschiedene Clients erforderlich wäre. Wie oben erwähnt, begegnen wir in Situationen, in denen wir uns mit separaten Hibernate -Sitzungen für eine einzelne Operation in Anwendungsebene auseinandersetzen mussten. Um die Konsistenz unter diesen Bedingungen zu erhalten, haben wir beschlossen, ein Tool namens namens zu verwenden Atomikos

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top