SOA 11g Fault Management Framework Issue

Hi,
I am using soa 11.1.1.3.
I have a composite with bpel process. Bpel process invokes a external web service.
I add fault-bindings.xml and fault policy to catch remote fault.
When I turn off web service, bpel process has the remote fault but the fault didn't be caught by fault management framework.
Here is my fault-policies.xml and fault-ibindings.xml
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicyBindings version="0.0.1"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- only applies for the bpel process -->
     <component faultPolicy="FusionMidFaults" >
</component>
</faultPolicyBindings>
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="0.0.1" id="FusionMidFaults"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions>
<!--
<faultName xmlns:medns="http://schemas.oracle.com/mediator/faults"
name="medns:mediatorFault">
<condition>
<action ref="MediatorJavaAction"/>
</condition>
</faultName>
-->
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:remoteFault">
<condition>
<action ref="BPELJavaAction"/>
</condition>
</faultName>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:bindingFault">
<condition>
<action ref="BPELJavaAction"/>
</condition>
</faultName>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:runtimeFault">
<condition>
<action ref="BPELJavaAction"/>
</condition>
</faultName>
</Conditions>
<Actions>
<!-- Generics -->
<Action id="default-terminate">
<abort/>
</Action>
<Action id="default-replay-scope">
<replayScope/>
</Action>
<Action id="default-rethrow-fault">
<rethrowFault/>
</Action>
<Action id="default-human-intervention">
<humanIntervention/>
</Action>
<!--
<Action id="MediatorJavaAction">
<javaAction className="MediatorJavaAction.myClass"
defaultAction="default-terminate">
<returnValue value="MANUAL" ref="default-human-intervention"/>
</javaAction>
</Action>
-->
<Action id="BPELJavaAction">
<!-- this is user provided class-->
<javaAction className="com.rubiconred.faultManagement.MyFaultPolicyJavaAction"
defaultAction="default-terminate">
<returnValue value="MANUAL" ref="default-human-intervention"/>
</javaAction>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>

Hi, I've the same issue. I created the fault-bindings.xml and fault-policies.xml in the same directory as composite.xml. I throw a fault in the BPEL process, but it does not get caught by the fault policy mechanism.
fault-bindings.xml
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicyBindings version="2.0.1"
xmlns="http://schemas.oracle.com/bpel/faultpolicy">
<composite faultPolicy="MyCompositeFaultPolicy"/>
</faultPolicyBindings>
fault-policies.xml
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<faultPolicy version="2.0.1" id="MyCompositeFaultPolicy"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.oracle.com/bpel/faultpolicy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This section describes fault conditions. Build more conditions with faultName, test and action -->
<Conditions>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:assertFailure">
<condition>
<action ref="ora-terminate"/>
</condition>
</faultName>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:runtimeFault">
<condition>
<action ref="ora-terminate"/>
</condition>
</faultName>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:remoteFault">
<condition>
<action ref="ora-terminate"/>
</condition>
</faultName>
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:bindingFault">
<condition>
<action ref="ora-terminate"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id="ora-retry">
<retry>
<retryCount>3</retryCount>
<retryInterval>10800</retryInterval>
<retryFailureAction ref="ora-human-intervention"/>
<!--<exponentialBackoff/>-->
</retry>
</Action>
<!-- This is an action will bubble up the fault-->
<Action id="ora-rethrow-fault">
<rethrowFault/>
</Action>
<Action id="ora-human-intervention">
<humanIntervention/>
</Action>
<!-- This action will cause the instance to terminate-->
<Action id="ora-terminate">
<abort/>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
I tried restarting the managed server, but it did not help. If you have any suggestions, please supply them.

Similar Messages

  • 10.1.3.3 fault management framework and catchall problem

    Hi all,
    I have a BPEL process with a catchall exception block for the entire process (in the .bpel file). The errorhandling determines if action needs to be taken on a given exception and notify's tech support with an e-mail if action needs to be taken. This works fine.
    However, it would be nice if you could retry faulted instances if for instance a web service was temporarily down. Here the fault management framework comes to the rescue. I have created default policy and fault-binding files. I have set it up so that any error goes to human interaction. Apparently this worked. An instance pending manual recovery was created, and it could be retry'ed from the BPEL console.
    So here is my problem: The fault management framework apparently overwrites the catchall exception in the BPEL process, so that while a task for human interaction is created the error block is not excuted first - meaning that no e-mail notification is sent and no differentiating between exception occurs.
    If I remove the default policy and fault-binding files then the catchall is used again.
    This may be expected behaviour, but I assume that it is possible to use both a catch all block in the bpel code AND the generic fault management framework.
    Does anybody have any ideas?
    Your assistance will be much appreciated.
    Regards,
    Aagaard

    Hi Aagaard,
    The BPEL Error Hospital that Oracle introduced with SOA Suite 10.1.3.3 will prevent you from having to model the handling of Binding Faults or Runtime Faults in BPEL processes.
    Hope in the future we will also be able to specify policies for handling custom faults that may occur anywhere in the BPEL process, i.e. not only on invoke activities.
    This framework will gives us the opportunity to handle all the business and runtime faults for an “invoke” activity. With the framework we can define one policy for every bpel domain.
    In the bpel/domains/default/config/fault-policy-binding.xml , we can setup the policies we would use and which processes,partnerlinks,port types will be part of it.
    If there is already some fault-handling (catch) defined in the the bpel process, the framework will overrule this, and use a policy if possible.
    Hope that answers your question!
    Cheers
    Anirudh Pucha

  • How does BPEL Fault Management Framework gel with ESB Error Handling ?

    I see that BPEL 10.1.3.3 has pretty neat Fault Management Framework (although I have to admit it is not very well advertised).
    The next logical question is: what about ESB ? Would that help in ESB error handling ? I understand that ESB has its own Error Hospital etc.; however, we have to constantly grapple with two distinct paths for any piece of integration functionality (1. ESB 2. BPEL). I guess, all of this will be moot in the 11g timeframe. Still wondering if anyone out there has somehow unified error handling for these two distinct offerings ?

    It's not available in ESB, you have to implement/extend that by your self. Off course in the next release everthing will be better :-)
    But, if you are able to use Oracle AIA (http://edelivery.oracle.com) You could use Oracle AIA Foundation, that has a fault 'hospital' implemented both for BPEL and ESB.
    Marc
    http://orasoa.blogspot.com

  • Oracle Fault Management Framework - how to intercept first invocation

    I know the Oracle Fault Management Framework is only activated on faults that occur on invokes.
    Which is fine for all internal calls.
    However, is there any way to get the framework to be activated on the very first invoke?
    I want to be able to get the framework to log all fault details and then rethrow. I'ms using Oracle version 10.1.3.4.
    However, if an external third party calls my process (say Process A) and an error occurs in process A that is NOT from an invoke, eg xpath error.
    The framework does NOT get activated.
    Any ideas how to get around this other than going into every BPEL and adding in a catchAll , log, throw fault?
    Thanks.

    There should be no difference between managing internal and external calls using the fault handler.
    If we can just talk about process A as a BPEL process which utilizes the fault management.
    It should not matter where the services process A calls reside. The fault management system will only get calls as part of an error occurring on an invoke.
    I don't agree with your comment that the framework will get called if a fault occurs any where within the domain. e.g. If process A has an assign activity and fails because it can't convert a string into date. The fault management system will not be called. Therefore it is independent if the services process A calls are internal or external.
    What is your reasoning behind having a process that continues in the event of a fault when the first fault could cause subsequent faults.
    If no fault is manged either by the framework or a catch then the raw error will be returned back to the consumer. So you will be able to debug that initial fault. Does this not fulfill your uses case?
    cheers
    James

  • Fault Management Framework

    Hi folks,
    I am studying the Fault Management Framework that comes with BPEL.
    It is a really nice feature: in a single place I can define a strategy for handling errors that occurs in the invoke activity of any BPEL process.
    I have a question about this: is there a similar tool or framework to handle in a single place errors that can occur in ANY activity of the BPEL process not only in the invoke activity.
    In other words, instead of using catchall in all of BPEL processes (and writing the same code in all BPEL processes) can I use the Fault Management Framework (or write some BPEL code) to catch errors like : selectionFailure, joinFailure or others and associate specific action with them?
    If anybody has an idea feels free to explain it!

    No.
    Marc
    http://orasoa.blogspot.com

  • SOA 11g: DB Adapter design issue

    I have a Stored Procedure that reads from a table, and in my composite I have a DB adapter to read the procedure, pull the data and a use mediator/BPEL to pass the data on to a JMS adapter.
    The question is
    1. how to poll the DB adapter to invoke the Stored Procedure automatically, like file/ftp adapter
    2. can similar polling operation be done on a JMS adapter
    I'm using SOA 11g with Weblogic Server 10.3 and Jdeveloper 11.1.1.2

    You can't poll a stored procedure, you can only poll changes to database tables, and views.
    Yes you can poll JMS like file adapter.
    cheers
    James

  • SOA fault management framework doesn't work

    The following is my fault-policies.xml and fault-binding.xml. Both are located in the same folder as the composite.xml. I simulated a remote fault. The fault was not caught by the framework.
    I even re-started both admin server and soa managed server.
    I am using SOA 11.1.1.5
    1. fault-binding.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <composite faultPolicy="POProcessingFaults"/>
    </faultPolicyBindings>
    2. fault-policies.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1"
    id="POProcessingFaults"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance">
    <Conditions>
    <!-- Step #1: Add your fault handler for remote fault here: -->
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <!-- Step #2: Add your fault handler for binding fault here: -->
    <!-- Step #3: Add your fault handler for mediator faults here: -->
    </Conditions>
    <Actions>
    <!-- Step #4: Add the Action definition for handling mediator faults using custom java here:-->
    <!-- Custom Java Handler: Logs the fault details to a log file -->
    <Action id="my-java-handler">
    <javaAction className="soatraining.faulthandling.MyFaultHandler"
    defaultAction="ora-terminate" propertySet="myProps">
    <returnValue value="OK" ref="ora-rethrow-fault"/>
    </javaAction>
    </Action>
    <!-- Retry -->
    <Action id="ora-retry">
    <retry>
    <retryCount>4</retryCount>
    <retryInterval>2</retryInterval>
    <exponentialBackoff/>
    </retry>
    </Action>
    <!-- Rethrow action -->
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <!-- Human Intervention -->
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <!-- Terminate -->
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    <!-- Property sets used by custom Java actions -->
    <Properties>
    <!-- Property set for MyFaultHandler customer java action -->
    <propertySet name="myProps">
    <property name="logFileName">myfaulthandler.log</property>
    <property name="logFileDir">c:\temp</property>
    </propertySet>
    <!-- Step #5: Add new property set for MyFaultHandler for logging Mediator faults here:-->
    </Properties>
    </faultPolicy>
    </faultPolicies>

    Please use the below files and let me know...
    fault-policies.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="bpelFaultHandling"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id = "ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id = "ora-retry">
    <retry>
    <retryCount>5</retryCount>
    <retryInterval>1</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref = "ora-rethrow-fault"/>
    </retry>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    fault-bindings.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="bpelFaultHandling"/>
    </faultPolicyBindings>
    Write two composites A and B . A is Asynchronous and B is Synchronous. Call B from A, just throw a remotefault from B; put the above two files in composite A in the folder where the composite.xml file resides.And also keep a catchALL block at the BPEL process level for the composite A. So when you execute A, The fault policies will come into play, try the same invoke for five times and rethrow the fault which will be caught by catchALL block in composite A and do something from A, either invoke back the caller or write some error message to the file or email or something else.
    Hope this helps...
    Thanks,
    N

  • Can SOA 11g fault policy handle XSD Validation errors from the Mediator?

    I would like all errors in my SOA process to go through the fault-policies.xml. But I don't seem to be able to catch any mediator error caused by an XSD validation failure. A sample of the sort of error I am trying to 'catch' is:
    Nonrecoverable System Fault          oracle.tip.mediator.infra.exception.MediatorException: ORAMED-01303:[Payload default schema validation error]XSD schema validation fails with error Invalid text 'A' in element: 'TermCode'Possible Fix:Fix payload and resubmit.
    My fault-policies.xml file is as follows:
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1"
         id="NewStudentRegistrationFaults"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults" name="medns:1303">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:GetNewStudentRegistrationFile">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults" name="medns:TYPE_ALL">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:mediatorException">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:bindingFault">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="java-fault-handler">
    <javaAction className="edu.villanova.soa.handlers.FaultNotificationHandler"
    defaultAction="ora-human-intervention" propertySet="faultNotificationProps">
    <returnValue value="OK" ref="ora-human-intervention"/>
    </javaAction>
    </Action>
    <!-- Human Intervention -->
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <!-- Terminate -->
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    <!-- Property sets used by custom Java actions -->
    <Properties>
    <!-- Property set for FaultNotificationHandler customer java action -->
    <propertySet name="faultNotificationProps">
    <property name="from">[email protected]</property>
    <property name="to">[email protected]</property>
    <property name="subject">Reporting a SOA fault</property>
    </propertySet>
    </Properties>
    </faultPolicy>
    <faultPolicy version="2.0.1"
         id="MediatorFaults"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults" name="medns:1303">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="java-fault-handler">
    <javaAction className="edu.villanova.soa.handlers.FaultNotificationHandler"
    defaultAction="ora-human-intervention" propertySet="faultNotificationProps">
    <returnValue value="OK" ref="ora-human-intervention"/>
    </javaAction>
    </Action>
    <!-- Human Intervention -->
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <!-- Terminate -->
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    <!-- Property sets used by custom Java actions -->
    <Properties>
    <!-- Property set for FaultNotificationHandler customer java action -->
    <propertySet name="faultNotificationProps">
    <property name="from">[email protected]</property>
    <property name="to">[email protected]</property>
    <property name="subject">Reporting a SOA rejected msg. fault</property>
    </propertySet>
    </Properties>
    </faultPolicy>
    </faultPolicies>
    My fault-bindings.xml file is as follows:
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="NewStudentRegistrationFaults"/>
    <component faultPolicy="MediatorFaults">
    <name>NewStudentRegistrationMediator</name>
    </component>
    <service faultPolicy="NewStudentRegistrationFaults">
    <name>GetNewStudentRegistrationFile</name>
    </service>
    </faultPolicyBindings>
    You'll notice that I've tried a number of ways (and various other combinations) to try to steer the error above into my Java fault handler but nothing has meet with success. The mplan is as follows:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <!--Generated by Oracle SOA Modeler version 1.0 at [2/3/10 1:21 PM].-->
    <Mediator name="NewStudentRegistationMediator" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/1.0/mediator"
    wsdlTargetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/Experiments/NewStudentRegistration/GetNewStudentRegistrationFile%2F">
    <operation name="Get" deliveryPolicy="AllOrNothing" priority="4"
    validateSchema="true">
    <switch>
    <case executionType="queued" name="RegToBanner.insert_2">
    <action>
    <transform>
    <part name="$out.NewstudentregistrationCollection"
    function="xslt(xsl/NewStudentRegistration_To_NewstudentregistrationCollection.xsl, $in.body)"/>
    </transform>
    <invoke reference="RegToBanner" operation="insert"/>
    </action>
    </case>
    </switch>
    </operation>
    </Mediator>
    I'm a newbie to Oracle SOA. So perhaps I am missing the obvious. But I haven't read much in the documentation specifically about using the XSD validation option on the mediator and have seen nothing specifically about catching this sort of exception in the fault policy (apart from the faults I already have in my policy). Can anyone suggest what I am doing incorrectly here or perhaps whether what I am attempting to do is not possible? Thanks.
    - Cris

    Has anyone got it working yet?
    In my case, I have the following sequence:
    FileAdapter -> Mediator1 -> Mediator2->DB Adapter
    I am deliberately introducing validation error in File. Isn't it correct to assume Fault framework would get triggered at Mediator1 level since we are invoking FileAdapter service?
    I am getting a strange behaviour. If I enable XSD validation at Mediator1 level, process is Faulted with no re-try option. However, if I enable XSD validation ONLY at Mediator2 level, I get Recoverable fault. There seems to be some disconnect between documentation and reality. I am using JDeveloper 11.1.1.3.0 version and SOA Suite 11g.
    Thanks,
    Amjad.

  • Fault Management Framework is not working....

    Hi all,
    i have installed soa 10.1.3.3.0, and i am done with post installations stpes too.
    i have created a simple bple, which invokes a PL(java webservice). i stopped the webservice and intiated the bpel process so that it shud get the remoteFault.
    i am binding the defaultpolicy (given by orcle) in bple.xml . But it is not working.
    still catch block is firing. invoke is showing in red color only. which means , obusly policy file is not registered. is it? so, how can i know wheter policy file is registered or not? how to make use of plicy file? am i missing any steps???
    can anyone please help me out......
    thans in advance

    hi this my fault-binding.xml file <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- Enabling this will cause all processes in this domain to use this
    fault policy
         <process faultPolicy="DefaultPolicy"/>
         -->
    <!-- DefaultPolicy is defined in ./fault-policies/DefaultPolicy.xml -->
         <partnerLink faultPolicy="DefaultPolicy">
         <!-- Enabling this will cause all invoke faults at partner link
         name of "creditRatingService" to use fault policy with
         id id = DefaultPolicy
         <name>creditRatingService</name>
         <name>SampleService</name>     
         -->
    <!-- all invoke faults at partner link below port type use fault policy
    with id = DefaultPolicy
    The following entry covers the samples/tutorials/122.DBAdapter/InsertWithCatch sample. -->
         <portType xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/insert/">db:insert_plt</portType>
         </partnerLink>
    </faultPolicyBindings>
    i have added the one more <name> branch for <patnerlink>
    <name>SamleService</name>
    even i bind the policy file in my bple.xml also,
    this is my bpel.xml flie
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <BPELSuitcase>
    <BPELProcess id="Fault_DEMO" src="Fault_DEMO.bpel">
    <partnerLinkBindings>
    <partnerLinkBinding name="client">
    <property name="wsdlLocation">Fault_DEMO.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding name="SampleService">
    <property name="wsdlLocation">SampleService2.wsdl</property>
    </partnerLinkBinding>
    </partnerLinkBindings>
    </BPELProcess>
    <faultPolicyBindings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://schemas.oracle.com/bpel/faultpolicy ../../../../../../../../fault-policy-binding.xsd"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <process faultPolicy="SamplePolicy"/>
    <partnerLink faultPolicy="SamplePolicy">
    <name>SampleService</name>
    </partnerLink>
    </faultPolicyBindings>
    </BPELSuitcase>
    is there any problem in these files?
    can anyone please help me?
    thanks in advance

  • Fault Management Framework - How to use test conditions

    I am building a fault policy file based on an external service that generates custom SOAP faults. I want to query a value in these faults but I don't know how to construct the test condition.
    I can find plenty of documented examples e.g.
    <Conditions>
    <faultName
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault”>
    <condition>
    *<test>$fault.code="3220"</test>*
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    But where can I find the $fault object to know how to create the xpath expression?
    This is my business fault logged in Enterprise Manager -
         <bpelFault>
         <faultType>1</faultType>
         <FaultManagementFrameworkService xmlns="http://yorkshirewater.com/faultmanagementframeworkservice/">
         <part name="fault">
              <ns0:FaultManagementFrameworkServiceFault xmlns:ns0="http://yorkshirewater.com/faultmanagementframeworkservice/">
              *<FaultCode>001</FaultCode>*
              <FaultCategory>ConnectionException</FaultCategory>
              <FaultDescription>Not Found</FaultDescription>
              <ServiceName>FaultManagementFrameworkService</ServiceName>
              <Operation>CreateConnectionError</Operation>
              <User>&lt;anonymous></User>
              </ns0:FaultManagementFrameworkServiceFault>
         </part>
         </FaultManagementFrameworkService>
         </bpelFault>
    I want to access the FaultCode value but can only currently capture all errors e.g.
    <Conditions>
    <faultName xmlns:osb="http://yorkshirewater.com/faultmanagementframeworkservice/" name="osb:FaultManagementFrameworkService">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>

    The code 3220 is just a copy from some Oracle documentation of an example test case.
    What I really want to do is get a value from my own business error e.g.
    <bpelFault>
    <faultType>1</faultType>
    <FaultManagementFrameworkService xmlns="http://yorkshirewater.com/faultmanagementframeworkservice/">
    <part name="fault">
    <ns0:FaultManagementFrameworkServiceFault xmlns:ns0="http://yorkshirewater.com/faultmanagementframeworkservice/">
    <FaultCode>001</FaultCode>
    <FaultCategory>ConnectionException</FaultCategory>
    <FaultDescription>Not Found</FaultDescription>
    <ServiceName>FaultManagementFrameworkService</ServiceName>
    <Operation>CreateConnectionError</Operation>
    <User><anonymous></User>
    </ns0:FaultManagementFrameworkServiceFault>
    </part>
    </FaultManagementFrameworkService>
    </bpelFault>
    If I use the following in my fault policy it will pick up all errors on the service (using Oracle Service Bus and a service call) -
    <Conditions>
    <faultName xmlns:osb="http://yorkshirewater.com/faultmanagementframeworkservice/" name="osb:FaultManagementFrameworkService">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    But I would actually like to drill down further and query the FaultCode value (001 in the above example) -
    <Conditions>
    <faultName xmlns:osb="http://yorkshirewater.com/faultmanagementframeworkservice/" name="osb:FaultManagementFrameworkService">
    <condition>
    <test>$fault.fault/osb:FaultManagementFrameworkServiceFault/osb:FaultCode="001"</test>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    Am I trying to do something that's not possible? If so how do you apply test conditions for business errors?

  • Error in soa 11g enterprise manager console

    I am getting this error, enterprise manager was working fine before,
    Error 404--Not Found
    From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
    10.4.5 404 Not Found
    The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.
    If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address

    r u able to login to the weblogic console??
    if yes please check the listen address and port?/
    and check in the deployments in the EM is in started mode or prepared mode.
    rebounce the server it should be solved

  • Retry mechanism in Fault handling framework SOA 11g

    hi
    i have used Fault management framework in my project. I have added fault-policies and fault-bindings file. in fault-policies file i am using retry mechanism for any remote or binding fault. but i am not able to see the retry working in flow trace. however human intervention and terminate actions are working fine.
    can any one assist me why retry mechanism is not working.
    thanks in advance.

    hi
    thanks for the response. i added that property in my bpel tag but unfortunately it didn't work. plus the instance remains in running state. plz help me out with this.
    this is my fault-policies.xml and fault-binding.xml
    fault-policies.xml*
    <?xml version="1.0"?>
    <faultPolicies xmlns="http://xmlns.oracle.com/CreateTaskPOC_jws/Project9/BPELProcess1">
    <faultPolicy version="2.0.1" id="MyCompositeFaultPolicy">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName><faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-rethrow-fault"><rethrowFault/></Action>
    <Action id="ora-retry">
    <Retry>
    <retryCount>3</retryCount>
    <retryInterval>2</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    </Retry>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    fault-bindings.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1" xmlns="http://xmlns.oracle.com/CreateTaskPOC_jws/Project9/BPELProcess1">
    <composite faultPolicy="MyCompositeFaultPolicy"/>
    <component faultPolicy="MyCompositeFaultPolicy">
    <name>BPELProcess1</name>
    </component>
    <reference faultPolicy="MyCompositeFaultPolicy">
    <name>InsertEmp_BPELProcess</name>
    </reference>
    </faultPolicyBindings>

  • 11g: Help regarding fault handling framework

    I am trying to implement a POC demonstrating the fault handling framework using fault policies. I am trying to handle remote and business faults. These faults are being thrown explicitly in the code. But I dont see the framework coming into picture. Here are the fault policies and fault bindings files
    The POC does the following
    1. If input is R, throws a remote fault.
    2. If input is B1, throws a business fault. There is a catch defined for this. But as we also have a policy for this error, we expect the policy overrides the catch
    3. If input is B2, throws a business fault. There is no catch defined for this. We expect the policy to handle this.
    4. If any other input, we return a string.
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <faultPolicy version="2.0.1" id="ComponentFaults"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:ns1="NS_B1"
    name="ns1:LP_B1">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:ns2="NS_B2"
    name="ns2:LP_B2">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    Here is the fault-bindings.xml file
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- Below listed component names use policy ComponentFaults -->
    <component faultPolicy="ComponentFaults">
    <name>BPEL</name>
    </component>
    </faultPolicyBindings>

    I created another bpel in the same composite that calls the original bpel. So now, those errros are supposed to travel to calling bpel.
    Fault policies are coming into effect now. So, one part of the problem is solved, that atleast syntax and all is correct, and the fwk does work (!) but another one has opened - why is the fault not getting handled by the fwk if there is a single bpel that is throwing and not catching those faults.
    Also, even in this new avatar, fault b1 is getting handled by the catch in BPEL process, while the fault policies are supposed to override any catches in bpel code.
    What I was attempting was, throwing the fault in a bpel process and expecting the fault handling fwk to handle it.
    It turns out, the framework is not capable of doing this, its only capable of handling faults coming after an invoke activity.
    Consulted Oracle Support on this. Their response
    The behavior within the single composite you are seeing is correct and is by design. As the documentation states:
    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_faults.htm#BABIGGIB
    If a fault occurs during runtime in an invoke activity in a process, the framework catches the fault and performs a user-specified action defined in a fault policy file associated with the activity.
    The fault management framework catches all faults (business and runtime) for an invoke activity.
    So the above means that unless the fault is thrown in response to an invoke activity the Fault Policy set will not be triggered, which has been confirmed through the test you have uploaded. Please let me know if you have any questions or concerns.

  • Fault Policy Management Framework in 10.1.3.3

    Hi,
    According to the Oracle Documentation, 10133technote. It says
    1) "A fault policy can be associated at the following levels:
    Partner link,Port type, Process & Domain."
    - Here can you through a light on "Process" n what "Process" means
    - Is it Refering to a BPEL Process or a "Process" in <faultPolicyBindings>
    - Can we have multiple "Process" for a <faultPolicyBindings>
    2) "The framework looks for fault policy bindings in the following files (in order of priority):
    - In the bpel.xml file at the process level
    - In the domain level file "
    - what entry should go in bpel.xml (are we really have to edit bpel.xml, created by JDEV)
    - what does it mean Process Level & Domain Level
    - where we can have a thin line between "Process Level" & "Domain Level"
    and How they differ-in while at Implemenation level
    Lastly what are the files that we need to modify/edit to make faultPolicy work.
    Thanx in adv

    Hello,
    See comments below:
    Hi user568921,
    Thanx for an immediate reply.
    Apologize for the long list of questions.
    1) Already we can have expentional Handling in BPEL,
    then why this
    Fault Management Framework be used on top of this
    [ irrespective of your BPEL Process has Expectional
    Handling or not (pl. correct me if im wrong)]
    more over i have to restart the server for each
    modification,
    this is not that recommended when it goes to
    Production.
    1a) if i have both BPEL Expectional Handling and
    Fault Management Framework applied to my Process
    which one preceedes.
    Fault Management Framework is used for generic fault
    handling on a deployed server.
    Since the change affects all deployed processes, we do
    not recommend changing policy or bindings in production.
    We are providing a client api in 10.1.3.4.0 to reload fault
    policy and binding files.
    Fault Management Framework precedes BPEL "catch". You can
    attempt retry actions, if this fails, invoke java code to
    email an administrator and mark the activity for human
    recovery or do a rethrowFault to pass to BPEL exception
    handling.
    2) This is what my bpel.xml files contains
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <BPELSuitcase>
    <BPELProcess id="FaultPolicyManagement"
    src="FaultPolicyManagement.bpel">
    <partnerLinkBindings>
    <partnerLinkBinding name="client">
    <property
    name="wsdlLocation">FaultPolicyManagement.wsdl</prope
    ty>
    </partnerLinkBinding>
    <partnerLinkBinding name="sayHelloService">
    <property
    name="wsdlLocation">sayHelloService3.wsdl</property>
    </partnerLinkBinding>
    <partnerLinkBinding
    name="FaultPolicyManagementSync">
    <property
    name="wsdlLocation">url?wsdl</property>
    </partnerLinkBinding>
    artnerLinkBindings>
    </BPELProcess>
    <faultPolicyBindings>
    process faultPolicy="defaultPolicy"/>
         <process faultPolicy="anvvPolicy"/>
    <partnerLink
    k faultPolicy="DefaultPolicy"></partnerLink>
         <partnerLink faultPolicy="anvvPolicy">
         <name>FaultPolicyManagementSync</name>
    <portType
    tType
    xmlns:db="http://FaultPolicyManagementSync">db:FaultPo
    licyManagementSync_plt</portType>
         </partnerLink>
    </faultPolicyBindings>
    /BPELSuitcase>
    when i edit the bpel.xml with
    <faultPolicyBindings></faultPolicyBindings> and
    deploy it
    all the <faultPolicyBindings></faultPolicyBindings>
    is resetting back to original bpel.xml
    ( The Content between
    <faultPolicyBindings></faultPolicyBindings> is taken
    from fault-bindings.xml file )
    why it is so ?
    and my fault-bindings.xml is
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    <process faultPolicy="DefaultPolicy"/>
    <process faultPolicy="anvvPolicy"/>
    <partnerLink
    k faultPolicy="DefaultPolicy"></partnerLink>
         <partnerLink faultPolicy="DefaultPolicy2">
         <name>FaultPolicyManagementSync</name>
    <portType
    tType
    xmlns:db="http://FaultPolicyManagementSync">db:FaultPo
    licyManagementSync_plt</portType>
         </partnerLink>
    </faultPolicyBindings>
    and DefaultPolicy.xml & DefaultPolicy2.xml is same as
    what is there in the server.
    Is the file contents correct in Implementation.
    Only one process tag is allowed.
    2a) if Fault Management Framework applied and NO
    <faultPolicyBindings></faultPolicyBindings> is added
    to bpel.xml
    and if it is left as it is (i.e., default bpel.xml
    generated by JDEV) then what is the policy it is
    applied.
    Once the system detects an invoke has faulted, it tries
    to check if there is a fault policy attached to this faulted
    partner link (or port type, or the process), if no policy
    binding is detected, it will flow bubble up the fault. By
    default there is no policy applied.
    3) Can you please let me know
    - how many ( fault-binding.xml &) fault-policy's can
    n i have per domain.
    - how many ( fault-binding.xml &) fault-policy's can
    n i have per process.
         many to one or many to many relationship.
    We can have only one policy
    [config/DefaultPolicy.xml] at a Domain Level
    To create a Fault Policy File for Automated Fault Recovery
    Create directories named fault-policies under the config directory for
    every domain in which you want to use the fault management framework.
    SOA_ORACLE_HOME\bpel\domains\domain_name\config\fault-policies
    You can have n fault policies per domain.
    To provide a fault policy applicable to an entire domain in the
    fault-bindings.xml file in the SOA_ORACLE_
    HOME\bpel\domains\domain_name\config directory.
    You can have 1 fault-bindings.xml per domain.
    3a) how can i make sure/ensure that Fault Management
    Framework is applied at each process level and/or at
    Domain level.Provide a fault-binding: with
    <process faultPolicy="YourPolicy"/>
    >
    4) Is there any Advantages, limitations / contrains
    that we have if we are opting Fault Management
    Framework (have to consider, before going to
    production).
    The framework is applicable for faults in "invoke" activity
    only.
    5) can i have any samples / URL for samples for Fault
    Management Framework in OTN or else where.
         so that i can work around.
    >
    >
    Other than 10133technotes.pdf do you have any other
    documentation which has an eloberative description
    about
    Fault Management Framework and its samples
    please guide me accordingly.Let me know if you need more information.

  • Fault management - ora-human-intervention - help

    Folks,
    I am playing with Fault management framework and everything went fine so far. However when I changed action to 'ora-huma-intervention' I am not seeing the desired output.
    My version - 10.1.3.3
    Here is my audit :
    [2009/05/07 15:13:58] [FAULT RECOVERY] Marked Invoke activity as "pending manual recovery".
    [2009/05/07 15:13:58] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown.More...
    [2009/05/07 15:13:58] "BPELFault" has not been caught by a catch block.
    [2009/05/07 15:13:58] BPEL process instance "3320518" cancelled
    According to audit, invoke activity is marked to 'Pending manual recovery', but the last line shows process instance is cancelled. I believe instance must not be cancelled in this stage and it must appear under activities tab if this work correctly ...
    Not sure if the problem is related,I see the below error in opmn log about the missing table 'wi_fault'.
    The process domain was unable to update the fault entry for the activity "3320518-BpInv0-BpSeq0.3-2" from the datastore. The exception reported is: ORA-00942: table or view does not exist
    Please check that the machine hosting the datasource is physically connected to the network. Otherwise, check that the datasource connection parameters (user/password) is currently valid.
    sql statement: SELECT COUNT(*) FROM wi_fault WHERE cikey = ? AND node_id = ? AND scope_id = ? AND count_id = ?
    Any guidance will be appreciated ...
    Ron

    That SQL error ORA-00942: table or view does not exist is caused because you haven't install the SQL scripts after performing the upgrade.
    The scripts that need to be run can be found
    E:\Oracle\product\soa\10.1.3\bpel\system\database\scripts
    run the scripts that are relevant to your upgrade.
    If you are running olite the SQL prompt is found
    E:\Oracle\product\soa\10.1.3\bpel\bin\polsql.cmd
    the fault management was introduced in 10.1.3.3 and requires these database changes.
    Also make sure your JDev version is the same as SOA Suite version.
    cheers
    James

Maybe you are looking for