3 Replies Latest reply on Nov 20, 2008 6:25 AM by Thomas Diesler

    Drill down on database incompatibilities

    Thomas Diesler Master

      Folks,

      I compared the generated DDL scripts between

      * jpdl-3.2.2-SOA-4.2.0.CP02
      * jbpm-3.3.0.GA

      Here the results for mysql

      --- src/main/resources/ddl/jbpm.jpdl.mysql.sql (revision 2985)
      +++ src/main/resources/ddl/jbpm.jpdl.mysql.sql (working copy)
      
      -create table JBPM_MODULEDEFINITION (... NAME_ text, ...)
      +create table JBPM_MODULEDEFINITION (... NAME_ varchar(255), ...)
      
      -create table JBPM_NODE (... SIGNAL_ integer, ...)
      +create table JBPM_NODE (... PARENTLOCKMODE_ varchar(255), SIGNAL_ integer, ...)
      
      -create table JBPM_VARIABLEINSTANCE (... STRINGVALUE_ text, ...)
      +create table JBPM_VARIABLEINSTANCE (... STRINGVALUE_ varchar(255), ...)
      


      Is this what you would expect?

        • 1. Re: Drill down on database incompatibilities
          Thomas Diesler Master

          The full list of incompatibilities against jbpm-3.2.2 that show up in the sybase script

          https://jira.jboss.org/jira/browse/JBPM-1849

          < create table JBPM_ACTION (... EXPRESSION_ varchar(4000) null, ...)
          > create table JBPM_ACTION (... EXPRESSION_ text null, ...)
          
          < create table JBPM_COMMENT (... MESSAGE_ varchar(4000) null, ...)
          > create table JBPM_COMMENT (... MESSAGE_ text null, ...)
          
          < create table JBPM_DELEGATION (... CLASSNAME_ varchar(4000) null, CONFIGURATION_ varchar(4000) null, ...)
          > create table JBPM_DELEGATION (... CLASSNAME_ text null, CONFIGURATION_ text null, ...)
          
          < create table JBPM_EXCEPTIONHANDLER (... EXCEPTIONCLASSNAME_ varchar(4000) null, ...)
          > create table JBPM_EXCEPTIONHANDLER (... EXCEPTIONCLASSNAME_ text null, ...)
          
          < create table JBPM_JOB (... EXCEPTION_ varchar(4000) null, ...)
          > create table JBPM_JOB (... EXCEPTION_ text null, ...)
          
          < create table JBPM_LOG (... MESSAGE_ varchar(4000) null, EXCEPTION_ varchar(4000) null, ... OLDSTRINGVALUE_ varchar(4000) null, NEWSTRINGVALUE_ varchar(4000) null, ...)
          > create table JBPM_LOG (... MESSAGE_ text null, EXCEPTION_ text null, ... OLDSTRINGVALUE_ text null, NEWSTRINGVALUE_ text null, ...)
          
          < create table JBPM_MODULEDEFINITION (... NAME_ varchar(4000) null, ...)
          > create table JBPM_MODULEDEFINITION (... NAME_ varchar(255) null, ...)
          
          < create table JBPM_NODE (... DESCRIPTION_ varchar(4000) null, ...)
          > create table JBPM_NODE (... DESCRIPTION_ text null, PARENTLOCKMODE_ varchar(255) null, ...)
          
          < create table JBPM_PROCESSDEFINITION (... DESCRIPTION_ varchar(4000) null, ...)
          > create table JBPM_PROCESSDEFINITION (... DESCRIPTION_ text null, ...)
          
          < create table JBPM_TASK (... DESCRIPTION_ varchar(4000) null, ...)
          > create table JBPM_TASK (... DESCRIPTION_ text null, ...)
          
          < create table JBPM_TASKINSTANCE (... DESCRIPTION_ varchar(4000) null, ...)
          > create table JBPM_TASKINSTANCE (... DESCRIPTION_ text null, ...)
          
          < create table JBPM_TRANSITION (... DESCRIPTION_ varchar(4000) null, ...)
          > create table JBPM_TRANSITION (... DESCRIPTION_ text null, ...)
          
          < create table JBPM_VARIABLEINSTANCE (... STRINGVALUE_ varchar(4000) null, ...)
          > create table JBPM_VARIABLEINSTANCE (... STRINGVALUE_ varchar(255) null, ...)
          


          • 2. Re: Drill down on database incompatibilities
            Thomas Diesler Master

            I would rollback everything except stuff that has explicitly been asked for

            < create table JBPM_JOB (... EXCEPTION_ varchar(4000) null, ...)
            > create table JBPM_JOB (... EXCEPTION_ text null, ...)
            
            < create table JBPM_LOG (... EXCEPTION_ varchar(4000) null, ... )
            > create table JBPM_LOG (... EXCEPTION_ text null, ...)
            
            < create table JBPM_NODE (...)
            > create table JBPM_NODE (... PARENTLOCKMODE_ varchar(255) null, ...)
            


            For the exception columns I add new columns UPD331_EXCEPTION_ text
            and map the data at the object level to the correct column

            • 3. Re: Drill down on database incompatibilities
              Thomas Diesler Master

              I verified that the jtds driver transparently handles the difference between varchar(4000) and text

              The Hudson QA now runs againt the jbpmcompat schema, which is the schema generated by jbpm-3.2.2 plus the additional PARENTLOCKMODE_ column