Configuring ALBPM Enterprise Edition (WebLogic) with SQL Server
I recently ran into an issue with ALBPM 5.7 MP2 when it was deployed on Weblogic 9.2. The Engine would look like it started properly, but automatic activities within a process would not be executed. Upon closer review of the Engine Log, this error was seen:
An exception occurred while executing a transaction. Details: An error occurred while accesing the database. Technical detail: SQL statement: ' SELECT DUETIME, ID, PROCESSID, INSTID, THREADID, TSTAMP, TYPE, ACTIVITYNAME, ORIGINPROCESSDN, REALTHREADID, NETYPE, PRIORITY, LATER, DATA FROM PTODOITEMS WITH (ROWLOCK , UPDLOCK) WHERE DUETIME < 2007-05-21 18:00:17.5 AND LATER = true FOR UPDATE' Caused by: Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR.
This error was related to the way that Weblogic uses JDBC drivers to make connections to the database...
The installation instructions implied that the JDBC Data Source configured in the Weblogic Console be of the same type as what was used in the Directory DB from the Process Administrator. However, this was not the case. When I initially configured the Data Source, I used the Microsoft SQL Server JDBC driver because I assumed they had to be the same. Not only did they NOT have to be the same, from my experience, the MS SQL Server JDBC driver does not work with the BPM Engine. The proper driver to use is the Bea's MS SQL Server Driver (Type 4)... provided by BEA. (Interesting side note: It looks like the Directory DB does have to use the Microsoft SQL Server driver). Here are the steps to create the Data Source using the correct driver:
- Log in to the WL Console and select "Create a New JDBC Data Source". Make sure to use the JNDI name that is specified in the Process Administrator and use the Database Driver "Bea's MS SQL Server Driver (Type 4)...":
- Make sure to uncheck the Support Global Transactions checkbox:
- Fill out the rest of the Data Source as you would normally.