13 Replies Latest reply on Feb 6, 2008 7:41 PM by Meghana Joglekar

    Is jBPM-BPEL GA backward compatible to beta 3?

    Meghana Joglekar Novice

      Hello,

      We have several processes running on jBPM BPEL Beta3. We have created a deployment system that deploys our BPEL processes to the server. Now if we upgrade to GA, will we have to change that system? or is it backward compatible?

      In beta version, it required bpel-application and bpel-definition files but now in new model it doesn't.


      Thank you,
      Meghana

        • 1. Re: Is jBPM-BPEL GA backward compatible to beta 3?
          Alejandro Guizar Master

          The change in the deployment model was intended to reduce the "paperwork" required to deploy a process to the bare minimum. The separate web module deployment was eliminated and is now handled automatically by the engine on the server side.

          The descriptors you mention still exist but have undergone changes.
          bpel-definition is mostly unchanged. It was given a stable schema and made optional.
          bpel-application was renamed to bpel-deployment and given a stable schema as well. As you know, in 1.1.Beta3 this descriptor was provided as part of the web module. In 1.1.GA, it is generated automatically. If you desire, you can provide your own version in your process archive, in this exact location: WEB-INF/classes/bpel-deployment.xml. In fact, the contents of the WEB-INF/ directory in your process archive are copied verbatim to the resulting web module. Any missing artifact is generated by the process deployment servlet.

          • 2. Re: Is jBPM-BPEL GA backward compatible to beta 3?
            Meghana Joglekar Novice

            Thanks Alex.

            It seems we will have to redeploy already deployed BPEL processes. I can change bpel-application.xml to bpel-deployment.xml but cannot do the same with bpel-definition.xml which has its namespace changed :(

            I am not expecting any workaround in this case but if there is any please advise.

            Thank you,
            Meghana.

            • 3. Re: Is jBPM-BPEL GA backward compatible to beta 3?
              Meghana Joglekar Novice

              Hello Alex,

              After making the necessary changes to bpel-definition.xml and bpel-deployment.xml [renamed and changed namespace etc.] in our deployment module, when I tried to deploy same BPEL process again on updated JBPM database, I get following error -

              13:50:23,654 INFO [STDOUT] Retrieving document at 'D:\Program Files\Serena\Business Mashups\Common\jboss405\server\defa
              ult\work\jboss.web\localhost\mashupmgr\alf\78740638-9c44-4da2-b182-8a50503206fd\feb5\src/main/bpel\resources/xml/feb5.ws
              dl'.
              13:50:23,674 INFO [STDOUT] Retrieving document at 'D:\Program Files\Serena\Business Mashups\Common\jboss405\server\defa
              ult\work\jboss.web\localhost\mashupmgr\alf\78740638-9c44-4da2-b182-8a50503206fd\feb5\src/main/bpel\resources/xml/Convert
              Temperature.wsdl'.
              13:50:24,155 INFO [STDOUT] deploying process definition: file=feb5-feb5-process.zip
              13:50:25,307 WARN [JDBCExceptionReporter] SQL Error: 547, SQLState: 23000
              13:50:25,307 ERROR [JDBCExceptionReporter] The INSERT statement conflicted with the FOREIGN KEY constraint "FK_TO_QUERY"
              . The conflict occurred in database "OldJbpm", table "dbo.BPEL_SCRIPT", column 'ID_'.
              13:50:25,307 INFO [STDOUT] could not deploy process definition: feb5 could not insert: [org.jbpm.bpel.graph.basic.assig
              n.ToVariable]
              13:50:25,317 ERROR [STDERR] D:\Program Files\Serena\Business Mashups\Common\jboss405\server\default\work\jboss.web\local
              host\mashupmgr\alf\78740638-9c44-4da2-b182-8a50503206fd\feb5\build.xml:358: ERROR: Axis fault - Transport error: 400 Err
              or: Bad Request
              13:50:25,317 ERROR [STDERR] at org.jbpm.bpel.ant.DeployProcessTask.execute(DeployProcessTask.java:125)
              13:50:25,317 ERROR [STDERR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
              13:50:25,317 ERROR [STDERR] at org.apache.tools.ant.Task.perform(Task.java:364)
              13:50:25,317 ERROR [STDERR] at org.apache.tools.ant.Target.execute(Target.java:341)
              


              Any idea about what could be causing this error?

              Thank you,
              Meghana

              • 4. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                Alejandro Guizar Master

                Seems like a database schema conflict. There were some changes in the database layout between 1.1.Beta3 and 1.1.GA. Does this occur on a clean or an existing database?

                • 5. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                  Meghana Joglekar Novice

                  I think so too. This is upgraded database from older Beta3 to now GA. I have changed the hibernate config property to update schema but it seems to be not taking care of it. My setting is -

                   <property name="hibernate.hbm2ddl.auto">update</property>
                  


                  If database upgrade doesn't work, it may prohibit us from taking up BPEL GA :(

                  Thanks,
                  Meghana.

                  • 6. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                    Alejandro Guizar Master

                    Can you test it on a new database to confirm this is a schema update issue?

                    • 7. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                      Meghana Joglekar Novice

                      Yep. Tested already. It works on new database if I use BPEL console to deploy my process. It doesn't work on new database with our current deployment module. I get exception -

                      14:08:49,095 ERROR [STDERR] java.lang.ClassCastException: org.jbpm.bpel.graph.def.BpelProcessDefinition
                      14:08:49,095 ERROR [STDERR] at org.jbpm.bpel.ant.ServiceGeneratorTask.execute(ServiceGeneratorTask.java:55)
                      14:08:49,095 ERROR [STDERR] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
                      14:08:49,095 ERROR [STDERR] at org.apache.tools.ant.Task.perform(Task.java:364)
                      14:08:49,095 ERROR [STDERR] at org.apache.tools.ant.Target.execute(Target.java:341)
                      14:08:49,095 ERROR [STDERR] at org.apache.tools.ant.Target.performTasks(Target.java:369)
                      


                      Any suggestion?

                      Thanks,
                      Meghana

                      • 8. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                        Alejandro Guizar Master

                        Try moving from org.jbpm.bpel.ant.ServiceGeneratorTask to org.jbpm.bpel.tools.ant.WsdlServiceTask (in jbpm-bpel-tools.jar). The interface is largely similar, although the tool has been upgraded to generate bpel-deployment.xml along with the WSDL documents.

                        Apart from that, several things had to change between the last beta and the GA version to allow the latter to be stable. It might be best to keep the current versions of your processes on your Beta3 installation and deploy new versions on a GA installation. Also, you should consider migrating to the new deployment procedure as it will put much less burden on what your own module has to do.

                        • 9. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                          Meghana Joglekar Novice

                          Thanks Alex. That is exactly what I am planning to do i.e. moving to new deployment module. Though that changes a lot of things for us e.g how the endpoint is going to look now will be controlled by JBPM GA rather than we controlling it. It means educating everyone again, finding out the limitations, documentation changes etc...

                          That aside what I see in eclipse debugger is 'BpelProcessDefinition' so it puzzles me why it throws ClassCastException at that point.

                          Anyway, what I am more interested in is finding out if we can move whole JBPM DB from Beta3 to GA. Unfortunately, it is not possible to keep previous ones running on Beta3 and new on GA

                          Thanks, I sincerely appreciate your help.
                          Meghana

                          • 10. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                            Alejandro Guizar Master

                            You can still control how the web service is deployed if you like. To do so, provide your own web.xml in the process archive and set the URL pattern on the servlet mapping elements to whatever value you like.

                            To control the context root, either provide a jboss-web.xml descriptor in the process archive or take advantage of the following fact. Say your process archive is called myprocess.zip. The generated web module will be called myprocess.war. In absence of jboss-web.xml, the context root will be myprocess.

                            • 11. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                              Meghana Joglekar Novice

                              Thanks Alex,

                              I got our deployment module working with fresh GA and also upgraded to GA engine. I had to drop 2 foreign keys, FK_TO_QUERY and FK_ALIAS_QUERY to make the upgrade work. But it is looking good so far. The problem was that Snippet.hbm.xml uses BPEL_SNIPPET as its table now and not BPEL_SCRIPT.

                              While we are at this discussion, can you provide me some information about how I can undeploy BPEL processes? Is there any API to do that? Do you prefer separate thread for this question?

                              Thanks,
                              Meghana

                              • 12. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                                Alejandro Guizar Master

                                I get it now. Due to the renaming, the old BPEL_SCRIPT table and the foreign keys referencing it still exist. When you insert a new record in BPEL_TO, the constraint is violated because the query is inserted into BPEL_SNIPPET, a. o. t. BPEL_SCRIPT. Thanks for figuring it out.

                                I'd prefer to discuss undeployment on a separate topic.

                                • 13. Re: Is jBPM-BPEL GA backward compatible to beta 3?
                                  Meghana Joglekar Novice

                                  Yes. That's exactly what was happening.

                                  I will create separate topic for my other question.

                                  Thanks,
                                  Meghana