Oracle BPEL Process Manager has its ‘dehydration’ store where details for BPEL process instances as well as human workflows are recorded. Access to the data in the BPEL PM database is provided through a Java API, that is also used by the BPEL PM Console and Worklist Application. This API facilitates and ensures correct access; we do not need to know any database details for example, we simply ask our questions to the API.
However, there comes a time where the API does no longer satisfy you. Or me. That moment comes pretty soon: I want to see what is in that database for myself. Let’s see how.
The default dehydration store for Oracle BPEL PM – by the way, in this article I am looking at release 10.1.3, currently available as part of the preview for 10.1.3 SOA Suite – is Oracle Lite. I have worked a lot with (proper I would almost say) Oracle Databases and very little with Oracle Lite. So I now need to find out how to access this Oracle Lite database and the BPEL PM data in it. I need to find out what user and password are and what the database url is – host, port etc.
From the Application Server Console, I can find out some information:
It does not tell me the password, but the entire URL is here as well as the username I am looking for. I might guess that the password used is manager, but how can I find out for sure? Well, since I am looking at an entirely local installation, I have easy access to the OC4J directories. In the directory SOASUITE_HOME\j2ee\home\config I find the file data-sources.xml. In this file is the entry corresponding with the definition of the Connection Pool shown in the screenshot:
<connection-pool name="BPELPM_CONNECTION_POOL"><br /> <connection-factory <br /> factory-class="oracle.lite.poljdbc.POLJDBCDriver" <br /> user="system" <br /> password="manager" <br /> url="jdbc:email@example.com:1531:orabpel"/><br /></connection-pool><br />
And indeed, the password is defaulted to manager.
Querying the Dehydration store
Now I know how to get to the Dehydration Store, I can use several tools to actually perform queries. One of these is JDeveloper’s database browsing functionality. In JDeveloper, I create a new Connection: BPEL_OLITE_LOCAL, of type Third Party JDBC driver.
Note that I had to create (in JDeveloper 10.1.3 that is) a new Library (I called it Oracle Lite) with the SOA_HOME\bpel\lib\olite40.jar file in its CLASSPATH in order to get the connection running properly. Perhaps due to lack of knowledge of Oracle Lite I have done something far less simple than is possible here.
At this point I am set up to start browing the contents of the BPEL Dehydration Store: