I have been using JBPM5.3 for some months and then I switch to JBPM5.4.
After I download JBPM5.4.Final full installer, I thought the DB Set up will be exactly the same with JBPM5.3 full installer https://community.jboss.org/wiki/SetUpJBPM53ToUseMSSQLServer2008
But I realized that some things has changed and at the time when I write this, the guide for changing Database in JBPM5.4 full installer is still outdated http://docs.jboss.org/jbpm/v5.4/userguide/ch.installer.html#d0e609
A. What I Am Going To Do
1. I will change the Database setting of jbpm5.4 final full installer and point it to use MS SQL Server 2008
2. The Database driver used is jtds-1.2.4
3. Although it is possible to have separate database for Task and Process data, in this setup I will use only one Database for all the Task database tables and all the Process database tables.
4. I do this set up using Windows XP 64 Bit
5. apache ant version used is Apache Ant 1.8.4
6. jdk used is jdk 1.6 (set in Windows Environment variable as JAVA_HOME)
B. The Setup Steps
1. JBPM5.4 final full installer comes with almost every needed component, except eclipse (optional). But I want the eclipse, so I download eclipse-java-helios-SR2-win32-x86_64.zip and put it into
jbpm-installer\lib folder
2. Because my OS is 64 bit version, I have to do a modification to the build.xml file found in jbpm-installer folder. So I changed this part
<condition property="download.type" value="win32">
<os family="windows" />
</condition>
to
<condition property="download.type" value="win32-x86_64">
<os family="windows" />
</condition>
3. Now its time to set up the Hibernate settings, mostly we will make changes to the hibernate dialect, lets open jbpm-installer\db folder.
4. I am not sure how each file is used here in jbpm5.4 since the official guide still reflect jbpm5.3 files, so here is what I do, I start with opening jbpm-installer\db\jbpm-persistence-JPA1.xml
I changed:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.max_fetch_depth" value="3"/>
to
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.max_fetch_depth" value="3"/>
5. Then I open jbpm-installer\db\jbpm-persistence-JPA2.xml
I changed:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
to
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
6. Lets continue, and open jbpm-installer\db\task-persistence-JPA1.xml
I changed:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
<property name="hibernate.connection.url" value="jdbc:h2:tcp://localhost/runtime/task" />
<property name="hibernate.connection.username" value="sa"/>
<property name="hibernate.connection.password" value=""/>
to
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://DBName:1433/MyJBPMDB" />
<property name="hibernate.connection.username" value="myuser"/>
<property name="hibernate.connection.password" value="mypassword"/>
7. Open jbpm-installer\db\task-persistence-JPA2.xml
I changed:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.max_fetch_depth" value="3"/>
to
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.max_fetch_depth" value="3"/>