Tuesday, April 15, 2008

Exception framework in 10.1.3.3.0

Some bullet points about the framework:
----------------------------------------
1) It works only for the faults raised thru invoke activity.
It doesn't seem to be capturing faults thrown using throw activity.
2) It captures any type fault: Business or Runtime fault.
3) Two things must be specified:
1) Fault Policy file(in /domains/default/config/fault-policies directory.)
Specifies actions for faults.
Lists the actions to be used for the faults.
2) Fault Bindings (Either in bpel.xml file OR in /domains/default/config/fault-bindings.xml file)
-> Remember "default" in the path refers to a domain name. Which could be replace by any other existing domain name.
Binds the faults to Partner Link, Port Type and/or Process.
Can be specified at process level or domain level.

Let's see what happens when an invoke activity receives a fault:
-----------------------------------------------------------------

1) Framework first captures the fault.
2) It then checks the bpel.xml file, if any bindings are specified. If not, then domain level bindings are checked. This is to determine which policy file is to be used.
3) Invoke activity has PartnerLink name, Port Type name.
These two are used as a criteria to determine fault policy file.

The order of bindings being probed are as follows:

1) Partner link in bpel.xml file
2) Port type in bpel.xml file
3) Process in bpel.xml file
4) Partner link in fault-bindings.xml file
5) Port type in fault-bindings.xml file
6) Process in fault-bindings.xml file

If nothing matches in these bindings, the fault is handled by the faultHandler.

If a match is found in let's say step-1, remaining steps are not looked at.
So if partner link binding in bpel.xml file is found, the corresponding policy is used and fault policy resolution process stops there itself. s

Remember that, bindings in fault-bindings.xml are at domain level. So they apply to all the processes deployed in the domain.

Once fault policy file is determined, the framework tries to match the fault which occurred in invoke activity to the list of fault-conditions in policy file sequentially. This is similar to deciding exception handler for an exception in any programming language.

Once condition matches, the corresponding action is executed for recovery.

There could be the following actions:
----------------------------------------
1) Retry
2) Replay
3) Rethrow
4) Terminate
5) Human Interaction
6) JavaAction

Wednesday, April 2, 2008

10.1.3.3 installation error.

Problem:
=========
I faced another problem while patching my 10.1.3.1.0 AS instance with 10.1.3.3.0 on Microsoft Windows XP.I've downloaded a patch# 6148874 from metalink for the same.Everything went smooth until BPEL Configuration Assistant fails for some syntactic problem. And because of this problem, I was not able to open the BPEL Console. Everything else seemed to be working fine.
In the Details window in OUI, I got the following error:
---------------------------------------------------------
Output generated from configuration assistant "BPEL Configuration Assistant":Files\Java\j2re1.4.2_13\lib\ext\QTJava.zip";C:\Program Files\Rational\ClearQuest\cqjni.jar;C:\Program Files\Java\jre1.6.0_03\lib\ext\QTJava.zip;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\dom4j-1.6.1.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\jaxen-1.1-beta-6.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\jaxme-api-0.3.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\pull-parser-2.1.10.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\tools\xercesImpl-2.6.2.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\tools\jaxme-0.3.jar"=="" was unexpected at this time.

Configuration assistant "BPEL Configuration Assistant" failed ================================================================================================================Output generated from configuration assistant "BPEL Configuration Assistant" (attempt 2) :
Files\Java\j2re1.4.2_13\lib\ext\QTJava.zip";C:\Program Files\Rational\ClearQuest\cqjni.jar;C:\Program Files\Java\jre1.6.0_03\lib\ext\QTJava.zip;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\dom4j-1.6.1.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\jaxen-1.1-beta-6.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\jaxme-api-0.3.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\pull-parser-2.1.10.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\tools\xercesImpl-2.6.2.jar;C:\MAIN\WORK\MyDocs\DOCS\XML\DOM_API\dom4j-1.6.1\lib\tools\jaxme-0.3.jar"=="" was unexpected at this time.
Configuration assistant "BPEL Configuration Assistant" failed
I tried de-installing 10.1.3.1.0 and reinstalling it and patching it again. But no luck.Tried to run BPEL Configuration Assistant using the following commands:1) C:\product\10.1.3.1\OracleAS_1\onfig\eploy_bpel.bat oc4jadmin2) C:\product\10.1.3.1\OracleAS_1\ant\bin\ant -f C:\product\10.1.3.1\OracleAS_1\bpel\system\services\install\ant-tasks\redeploy.xml -Dias_admin.password=oc4jadmin
But got the same error.
Cause:
=======
One of the classpath entries had space " " in between as in c:\Program Files\qt and was eclosed by quotes.

Solution:
=========
Remove those entries from the path which contain white spaces. It should work fine.