Thursday, June 26, 2008

Malformed URL error when deploying BPEL demos

In this case, the error was thrown when deploying the workflow form for the AsyncLoanService demo.

I got rid of this error by amending the ant-orabpel.properties file in the \bpel\utilities directory.

Check the values for
hostname = local-nc.xx.xx.com
and
j2ee.hostname = ncommisk-de

set
j2ee.hostname = local-nc.xx.xx.com

Thursday, June 12, 2008

Various other ESB Design Time errors

ORA-12516 when installing ESB
Please check the following parameter values –
processes - Recommended is 150
sessions - Recommended is 100

Login to SQLPLUS as system –
show parameters processes
alter system set processes = 150 scope=spfile;
show parameters sessions
alter system set sessions = 100 scope=spfile;

jdbc/esb not found

ensure you have the following in the oc4j_esbdt data-sources.xml





esb console doesn't start automatically

check the server.xml at
mySoaHome\j2ee\oc4j_esbdt\config\

to ensure that the app has been defined with start="true"

Tuesday, May 6, 2008

Deleting BPEL instances and related human workflow data from the database

The scenario - I want to delete BPEL process instances along with any related Human Workflow data from the dehydration store.

I took the first part from the collaxa package in the ORABPEL schema, then added the rest for human workflow cleanup.

procedure delete_ci_wf( p_cikey in integer )
as
cursor c_wftask (v_cikey in cube_scope.CIKEY%TYPE)is
select taskid
from wftask
where instanceid = v_cikey;

v_taskid wftask.TASKID%TYPE;

begin
-- Delete the cube instance first
--
delete from cube_instance where cikey = p_cikey;

-- Then cascade the delete to other tables with references
--
delete from cube_scope where cikey = p_cikey;
delete from work_item where cikey = p_cikey;
delete from wi_exception where cikey = p_cikey;
delete from scope_activation where cikey = p_cikey;
delete from dlv_subscription where cikey = p_cikey;
delete from audit_trail where cikey = p_cikey;
delete from audit_details where cikey = p_cikey;
delete from sync_trail where cikey = p_cikey;
delete from sync_store where cikey = p_cikey;
delete from test_details where cikey = p_cikey;
delete from document_ci_ref where cikey = p_cikey;

-- Then cascade the delete to the human workflow tables
-- with references to this instance
--
-- cube_instance cikey = wftask.instanceid

OPEN c_wftask (p_cikey);
LOOP
FETCH c_wftask into v_taskid;
EXIT WHEN c_wftask%NOTFOUND;
delete from wftaskhistory where taskid = v_taskid;
delete from wfassignee where taskid = v_taskid;
delete from wfattachment where taskid = v_taskid;
delete from wfcomments where taskid = v_taskid;
delete from wfmessageattribute where taskid = v_taskid;
delete from wfnotification where taskid = v_taskid;
delete from wfnotificationmessages where taskid = v_taskid;
delete from wfroutingslip where taskid = v_taskid;
delete from wftasktimer where taskid = v_taskid;
END LOOP;

delete from wftask where instanceid = p_cikey;
commit;
end delete_ci_wf;

Naturally for a comprehensive purge I will have to delete the stale instances from invoke_message, dlv_message , xml_document etc.

Friday, April 25, 2008

Checking input XML for optional elements

The scenario - Check whether the optional Title element is present in the input XML payload to the BPEL process. If it isn't present, then add it with the default value "DefaultValue".




The XSD -










The input XML -





I created a simple synchronous BPEL process with input and output variable set to outputCustomerData. I added a transform activity.


The following will check whether the element is present and set the default value, if necessary.









Monday, March 3, 2008

AD4J - App Diagnostics for Java

I'm currently looking at the area of SOA High Availability, Config/Tuning.
AD4J slots very nicely in here for JVM and DB diagnostics

Download from
http://www.oracle.com/technology/software/products/oem/htdocs/jade.html

Install doc guide at
http://download.oracle.com/docs/cd/B16240_01/doc/admin.102/e11084/toc.htm

Usage scenarios doc at
http://www.oracle.com/technology/products/oem/pdf/oraclead4j_usagescenarios.pdf

Friday, February 22, 2008

Oracle ESB -Designtime cache has not been initialized

I got this error just after installing the ESB DesignTime(Repository) component on SOA Suite when I called up http://localhost:7777/esb

I looked in the logfiles for the oc4j instance hosting esbdt

In my case at
D:\SOAHA\soaONE\j2ee\oc4j_esbdt\log\oc4j_esbdt_OC4J_ESBDT_1\oc4j\log.xml

The error message was as follows -

java.lang.NoClassDefFoundError: org/apache/log4j/Category))

The workaround is as follows -

Add the following line to the orion-application.xml file for esbdt

(remove-inherited...)


Tuesday, February 12, 2008

ACEGI on OC4J

Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with comprehensive authentication, authorization, instance-based access control, channel security and human user detection capabilities.

I downloaded acegi version 1.0.6 from http://www.acegisecurity.org/downloads.html

Extract the zip to a temp directory -



Extract the acegi-security-samples-tutorial-1.0.6.war to a temp directory



Copy this directory structure to OC4J e.g. to d:\oc4j




Update OC4J default-web-site.xml




Update OC4J application.xml



Restart OC4J

Test



More info - http://www.acegisecurity.org/