General
For the purpose of my Ph.D. I am working much with XML format and frankly speaking working with XML in Oracle DB is very laborious to do. So I decided to start to use PostgreSQL DB which has quite some support for XML. But here new obstacle arises; namely ActiveBPEL does not support PostgreSQL “out-of-box”.
So, I went to Net and ask Google if any such theme exists. I came to the following link which was a good starting point for my work: ActiveBPEL patch for postgresql.
The problem with Luis solution is that is implemented in quite old versions of software.
So, I have started with latest (or at least more-latest
) configuration:
- Open Suse 9
- Jakarta Tomcat 5.0.28
- Eclipse 3.2.1 environment
- ActiveBPEL open-source engine 5.0-M1
- PostgreSQL 8.3
- PostgreSQL JDBC driver: postgresql-8.3-603.jdbc3.jar
What you should be able to do till now is:
- Create developlment environment with Eclipse 3.2.1
- Install Tomcat and ActiveBPEL engine with in-memory storage
- Install PostgreSQL DB
OK, so now we have basic platform to start working with.
DB creation
First we will create database that will hold our data.
- Create user in PostgreSQL database. We have created user named “activebpel”.
- Create the database itself:
CREATE DATABASE "ActiveBPEL"
WITH OWNER = activebpel
ENCODING = 'UTF8';
GRANT ALL ON DATABASE "ActiveBPEL" TO public;
GRANT ALL ON DATABASE "ActiveBPEL" TO activebpel;
- Create tables/sequences/etc… from the file PostgreSQL_DB_ActiveBPEL
Modifying ActiveBPEL source code
Till now we have DB ready to be used. Now we have to change the source code in order to reflect our changes of database type:
- In the files README.txt, AeAbstractSqlStorage.java.txt, postgres-sql.xml.txt you can find the changed files that needs to be added to the projects in ActiveBPEL.
- After incorporating the changes into source code you should build the
org.activebpel.rt.bpel.server project and copy the ae_rtbpelsvr.jar to the Tomcat installation jakarta-tomcat-5.0.28/shared/lib.
Configuring Tomcat
Now we should create database configuration for our new database. Below is the image of a configuration. Change the parameters according to your environment.

Configuring ActiveBPEL engine
Final step in our change is configuring ActiveBPEL engine to use PostgreSQL database storage. You should use the storage type of configuration file aeEngineConfig.xml file. You can take the one for Oracle persistence storage configuration. Below is the part of configuration that has to be changed in order to reflect our changes:
<entry name="StorageProviderFactory">
<entry name="Class" value="org.activebpel.rt.bpel.server.engine.storage.sql.AeSQLStorageProviderFactory"/>
<entry name="DatabaseType" value="postgres"/>
<entry name="Version" value="2.1.0.4"/>
<entry name="DataSource">
<entry name="Class" value="org.activebpel.rt.bpel.server.engine.storage.sql.AeJNDIDataSource"/>
<entry name="JNDILocation" value="java:comp/env/jdbc/ActiveBPELDB"/>
<entry name="Domain" value=""/>
</entry>
<entry name="CustomProviders">
<entry name="AeB4PTaskStorageProvider">
<entry name="Class" value="org.activebpel.rt.b4p.server.storage.sql.AeSQLTaskStorageProvider"/>
</entry>
</entry>
</entry>
Congratulations !
If everything went well till now you can now use ActiveBPEL open-source engine with PostgreSQL database.