Follow Us on Twitter

Error Handling In SOA Suite 11G

by Cyril Hak on November 3, 2009 · 7 comments

This blog describes how to use Fault Management Framework in SOA suite 11G.

For error handling of our Mediator we just need two files the fault-policies.xml and the fault-bindings.xml. The files must be placed inside your SOA Composite project directory.

The fault-binding.xml file associates fault policies with composites or components.

In the next example we just put a reference to a fault policy named MyFaultHandler for our BPEL component.

<?xml version="1.0" encoding="UTF-8"?>
<faultpolicybindings version="2.0.1"
                     xsi:schemaLocation=" fault-bindings.xsd"
  <composite faultPolicy="MyFaultHandler"/>

The fault-policies file contains fault conditions and actions.

The following example shows the faultpolicy for MyFaultHandler. The faultpolicy handles all remote faults that comes from my bpel-process. The action that must be done when a remote fault occurs is called ora-human-intervention. In the ora-human-intervention action we place the <humanIntervention/> tag which will cause the process to be pauzed until it is handled by someone in the bpel-console. Other predefined actions that can be used are for example retry or abort. All options can be found in the fault-policy.xsd file.

The schema’s (xsd’s) for the fault-policy and fault-binding files can be found in the Oracle Fusion Middleware Developer’s Guide for Oracle SOA Suite 11g.

<faultpolicies xmlns=""
  <faultpolicy version="2.1.3" id="MyFaultHandler">
      <!-- Remote Fault Handler -->
      <faultname xmlns:bpelx=""
          <action ref="ora-human-intervention"/>
      <!-- Human Intervention -->
      <action id="ora-human-intervention">

The following screenshots show the flow trace of a BPEL-process instance with a remoteFault.

BPEL Process Instance Details

BPEL Process Instance Details

BPEL Error Flow

BPEL Error Flow Trace

As you can see the error can be recovered.

Error Handling In SOA Suite 11G, 3.7 out of 5 based on 3 ratings
VN:F [1.9.22_1171]
Rating: 3.7/5 (3 votes cast)
Tags: , , ,

{ 5 comments… read them below or add one }

Sundar Rajan July 30, 2010 at 2:32 pm


There is one more option to place the files for re-use that is placing the files in MDS. can you please brief on how to place the files in MDS. Adding to it suppose if action ora-java is selected where to place the .class file



Víctor December 10, 2010 at 9:55 pm

Hi Cyril, good post and i hope you can help me with the next issue

I did create both files fault-bindings.xml and fault-policies.xml at the same place where composite.xml is. I kow is not supposed to be required, but i added the next properties to the composite


I bound the component(bpel) and the composite to the fault policie
I put an invoke activity to a service and made sure it was not accesible.

Nevertheless, the framework is not catching the fault. this is wath i get from the logs


INFO: FaultPoliciesParser.parsePolicies ——->Begin Parsing of policy file
< Unhandled exception for ComponentDN=Utiles/SE_SUSPEND_PROCESS!1.02*soa_c04e2082-9b8b-49be-a14f-b6be51be3141/SE_SUSPEND_PROCESS CompositeInstanceId=4150129 ComponentInstanceId=7960113>
< This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope. Root cause : faultName: {{}remoteFault}
parts: {{
summary=oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s):
,detail=Unable to access the following endpoint(s):
< failed to handle message

Fault not handled.
failure to handle a fault thrown from a scope, by any blocks in the scope chain.
This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope.
A top-level fault handler should be added to the flow to handle faults not caught from within the flow.


and this are my files







well, that’s my problem. Greetings from México and Thanks in advance



Sahitya April 6, 2011 at 4:09 pm

java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.PolicyEnforcementException: no transaction to be exported! at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation( at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation( at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation( at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke( at sun.reflect.DelegatingMethodAccessorImpl.invoke( at java.lang.reflect.Method.invoke( at com.sun.el.parser.AstValue.invoke( at com.sun.el.MethodExpressionImpl.invoke( at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke( at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding( at org.apache.myfaces.trinidad.component.UIXCommand.broadcast( at$ at at at at$ at at at at javax.faces.component.UIViewRoot.broadcastEvents( at javax.faces.component.UIViewRoot.processApplication( at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication( at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase( at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute( at javax.faces.webapp.FacesServlet.service( at weblogic.servlet.internal.StubSecurityHelper$ at weblogic.servlet.internal.StubSecurityHelper.invokeServlet( at weblogic.servlet.internal.ServletStubImpl.execute( at weblogic.servlet.internal.TailFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter( at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter( at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter( at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl( at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter( at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at Source) at weblogic.servlet.internal.FilterChainImpl.doFilter( at oracle.sysman.emSDK.license.LicenseFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at oracle.adf.model.servlet.ADFBindingFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at oracle.adf.library.webapp.LibraryFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at at weblogic.servlet.internal.FilterChainImpl.doFilter( at at weblogic.servlet.internal.FilterChainImpl.doFilter( at at weblogic.servlet.internal.FilterChainImpl.doFilter( at at weblogic.servlet.internal.FilterChainImpl.doFilter( at oracle.dms.wls.DMSServletFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at weblogic.servlet.internal.RequestEventsFilter.doFilter( at weblogic.servlet.internal.FilterChainImpl.doFilter( at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt( at weblogic.servlet.internal.WebAppServletContext$ at at at weblogic.servlet.internal.WebAppServletContext.securedExecute( at weblogic.servlet.internal.WebAppServletContext.execute( at at at Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: oracle.fabric.common.PolicyEnforcementException: no transaction to be exported! at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke( at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch( at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation( at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation( … 69 more Caused by: oracle.fabric.common.PolicyEnforcementException: no transaction to be exported! at at at at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke( … 72 more Caused by: oracle.fabric.common.PolicyEnforcementException: no transaction to be exported! at oracle.integration.platform.common.InterceptorChainImpl.createPolicyEnforcementException( at oracle.integration.platform.common.InterceptorChainImpl.processRequest( at oracle.integration.platform.common.mgmt.InterceptorChainManager.processRequest( at at at at … 75 more Caused by: no transaction to be exported! at at at at oracle.integration.platform.common.InterceptorChainImpl$ at Method) at at oracle.integration.platform.common.InterceptorChainImpl.processRequestAsSubject( at oracle.integration.platform.common.InterceptorChainImpl.processRequest( … 80 more

This is the error I got when doing the testing with the deployed project ,it is repeated with all the DB operations like select ,insert ,delete ,update while testing ….
Cannot understand what it is about …
Can any body help me out with this pls to know the solution please
its urgent ,pls help me …


laylaelliston August 26, 2015 at 2:08 pm

Thank you very much for sharing this valuable information.Oracle SOA Online Training is excellent solution for learning from home.


Smith143 Berg November 27, 2015 at 3:17 pm

Thanks for giving Good Example.
Fantastic article, Viral. Very well written, clear and concise. One of the best links explaining one to many and hierarchy Oracle Soa. Thanks a lot.It is uaefull to me and my training Ithubonlinetraining center.


Leave a Comment


{ 2 trackbacks }

Previous post:

Next post:

About Whitehorses
Company profile

Whitehorses website

Home page

Follow us
Blog post RSS
Comment RSS