5 Replies Latest reply on Dec 3, 2009 10:06 AM by kukeltje

    jBPM 4.2 architecture questions

    darkit

      Hi,

      I'm investigating a possibility to integrate jbpm in company. And I have couple question:

      1. Can JBPM be added to existed web application without db schema modification. I mean web application should use own schema and JBPM will use its one? It means there should be different transaction per request - does JBPM support it?

      2. If I install JBPM as dedicated service how can I be sure that external service and JBPM will commit their transaction only in case of both success. It's not good if service transferred money and commit transaction and then JBPM lost DB connect and after repair JBPM will be in old state and will try to run external service again.

      3. Does JBPM support clustering?

      Thanks

        • 1. Re: jBPM 4.2 architecture questions
          saraswati.santanu

          1. This is absolutely possible to have JBPM not to interfere with your db schema. In fact, by default JBPM will not be dependent on any of your db tables.

          2. This can be done easily. But this is not a JBPM feature. This is a JTA feature. You can have two XA Datasources, one for your application and one for JBPM and then the transaction manager will use 2 phase commit to make sure either both are committed or both are rolled back.

          3. It does.

          • 2. Re: jBPM 4.2 architecture questions
            kukeltje

            1: yes, either with its own or shared transaction 2: like you would in any other distributed app. e.g. using rmi and sharing a transaction 3: yes but it does not rely on e.g. jboss clustering. jBPM uses a shared database

            • 3. Re: jBPM 4.2 architecture questions
              kukeltje

              wow... almost an inflight collision :-)

              • 4. Re: jBPM 4.2 architecture questions
                darkit

                Thank everybody for answers


                "kukeltje" wrote:
                3: yes but it does not rely on e.g. jboss clustering. jBPM uses a shared database

                Does it mean developer can configure 2 level cache implementation or even turn off it? And are there any internal JBPM caches that should be configured in cluster environment.

                • 5. Re: jBPM 4.2 architecture questions
                  kukeltje

                  No jBPM caches, and 2nd level cache can be used e.g. in a clustered way if you want. By default second level cache is only used for processdefinitions afaik in a read-only way