Fault handling in 11g - fault-bindings.xml for a partnerLink

I'm using 11g and I'm trying to use the fault handling framework for a specific partner link. In fault-bindings.xml I have:
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicyBindings version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy">
<partnerLink faultPolicy="GetDateFaultPolicy">
<name>GetDateService</name>
</partnerLink>
</faultPolicyBindings>
I have a partner link named GetDateService in the bpel that I'd like to defin a policy for, but when I try to compile, I get:
Warning(3,58): Schema validation failed for fault-bindings.xml<Line 3, Column 58>: XML-24534: (Error) Element 'partnerLink' not expected.
Does the framework still allow partnerlinks granularity, it says it does in the docs?
Thanks

Maybe I should have looked at the new schema first.... : }
It's now reference:
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicyBindings version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy">
*<reference faultPolicy="GetDateFaultPolicy">*
<name>GetDateService</name>
*</reference>*
</faultPolicyBindings>
Edited by: Brutus35 on Sep 16, 2010 10:42 AM

Similar Messages

  • Fault Handling in 11g

    Hi,
    I am new to this bpel.I want to ask a basic question regarding bpel fault handling management frmawork ..
    My BPELProcess1 has just a throw activity with receive and reply activity.and I throw a bindingfault there.
    Then I added two xml files(fault-policies and fault-binding) where composite.xml resides and added property elment in the composite.xml.
    So,I think here fault policy and binding will work fine .But when I execute it I don't find any recovery option in em console.
    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/XMLSchema-instance">
    <component faultPolicy="myFaultHandling">
    <name>BPELProcess1</name>
    </component>
    </faultPolicyBindings>
    and fault-policies.xml file looks like
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="mylFaultHandling"
    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-human-intervention"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    and added this to the composite.xml
    <property name="oracle.composite.faultPolicyFile">fault-policies.xml</property>
    <property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>
    My question is
    1.Do I need to add a catch/catchAll block in bpel file ?and I want to know is it only a substitute mechanism to avoid catch/catchAll blok..
    2>Is there any way that I can catch the all project fault in a single framework by configuring em console rather than adding catch block or policy xml in each project ?
    Edited by: blue bell on May 3, 2011 4:46 AM

    Hi,
    +2>Is there any way that I can catch the all project fault in a single framework by configuring em console rather than adding catch block or policy xml in each project ?+
    For define the fault policies at the global level for all you project composites...u share the fault-policies.xml,fault-bindings.xml from mds and apply them to each composite.

  • Fault handling from MDS is not working for messagerejection

    Hi All,
    I am sorry if i am asking simple things, but after trying i couldn't figure out the problem so i reached here.
    In my project i am using file adapter in many places, so rejection handler is very important in finding out the missing files at the time of reading the file.So i created fault policies and bindings and i created simple process and placed the polices and binding files in the project, as expected it is working fine but if i referred the same files from my mds path rejection is not working.
    here is my fault polices and binding files.
    faultpolices.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicies version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="BpelFaultMechanism" 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="retry-action"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    <condition>
    <action ref="retry-action"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:selectionFailure">
    <condition>
    <action ref="retry-action"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="retry-action">
    <retry>
    <retryCount>4</retryCount>
    <retryInterval>2</retryInterval>
    <retryFailureAction ref="rethrow-action"/>
    </retry>
    </Action>
    <Action id="human-intervention-action">
    <humanIntervention/>
    </Action>
    <Action id="abort-action">
    <abort/>
    </Action>
    <Action id="replay-action">
    <replayScope/>
    </Action>
    <Action id="rethrow-action">
    <rethrowFault/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    <faultPolicy version="2.0.1" id="RejectedMessages">
    <Conditions>
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:Messagerejection">
    <condition>
    <action ref="writeToFile"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="writeToFile">
    <fileAction>
    <location>/u01/textdata/SOADEV/rejection</location>
    <fileName>Messagerejection_%ID%_%TIMESTAMP%.xml</fileName>
    </fileAction>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    Note:-In the above xml fault policy BpelFaultMechanism is used in all composite for common remote and binding fault errors and this one is working fine from mds location.
    Fault-Binding.xml
    <?xml version='1.0' encoding='windows-1252'?>
    <faultPolicyBindings version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="BpelFaultMechanism"/>
    <service faultPolicy="RejectedMessages">
    <name>Messagerejection</name>
    </service>
    </faultPolicyBindings>
    Composite.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Generated by Oracle SOA Modeler version 1.0 at [30/09/12 5:41 PM]. -->
    <composite name="Messagerejection"
    revision="1.0"
    label="2012-09-30_17-41-29_597"
    mode="active"
    state="on"
    xmlns="http://xmlns.oracle.com/sca/1.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
    xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"
    xmlns:ui="http://xmlns.oracle.com/soa/designer/">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/file/Correlation/Messagerejection/Messagerejection"
    location="Messagerejection.wsdl" importType="wsdl"/>
    <service name="Messagerejection" ui:wsdlLocation="Messagerejection.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/file/Correlation/Messagerejection/Messagerejection#wsdl.interface(Read_ptt)"/>
    <binding.jca config="Messagerejection_file.jca"/>
    <property name="oracle.composite.faultPolicyFile">oramds:/apps/Faultpolicyfiles/fault_policies.xml</property>
    <property name="oracle.composite.faultBindingFile">oramds:/apps/Faultpolicyfiles/fault_binding.xml</property>
    </service>
    <component name="Messagerejectionservice" version="1.1">
    <implementation.bpel src="Messagerejectionservice.bpel"/>
    <property name="bpel.config.oneWayDeliveryPolicy" type="xs:string"
    many="false">async.cache</property>
    </component>
    <wire>
    <source.uri>Messagerejection</source.uri>
    <target.uri>Messagerejectionservice/Messagerejection</target.uri>
    </wire>
    </composite>
    Also in some cases i am going with De-batching option,in which my xml file contains multiple record and publishing each record to the target service. In this case if any record has improper content then that particular record from should move to the custom folder.Please let me know how can i do this.
    I hope some one will help me here.
    Regards,
    Tarak

    Hi Kalyan,
    Thanks for helping me here.
    Now i am able to resolve the issue after restarting the server i place the properties of the files as below
    <?xml version="1.0" encoding="UTF-8" ?>
    <!-- Generated by Oracle SOA Modeler version 1.0 at [30/09/12 5:41 PM]. -->
    <composite name="Messagerejection"
    revision="1.0"
    label="2012-09-30_17-41-29_597"
    mode="active"
    state="on"
    xmlns="http://xmlns.oracle.com/sca/1.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
    xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"
    xmlns:ui="http://xmlns.oracle.com/soa/designer/">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/file/Correlation/Messagerejection/Messagerejection"
    location="Messagerejection.wsdl" importType="wsdl"/>
    <service name="Messagerejection" ui:wsdlLocation="Messagerejection.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/file/Correlation/Messagerejection/Messagerejection#wsdl.interface(Read_ptt)"/>
    <binding.jca config="Messagerejection_file.jca"/>
    </service>
    <property name="oracle.composite.faultPolicyFile">oramds:/apps/Faultpolicyfiles/fault_policies.xml</property>
    <property name="oracle.composite.faultBindingFile">oramds:/apps/Faultpolicyfiles/fault_binding.xml</property>
    <component name="Messagerejectionservice" version="1.1">
    <implementation.bpel src="Messagerejectionservice.bpel"/>
    <property name="bpel.config.oneWayDeliveryPolicy" type="xs:string"
    many="false">async.cache</property>
    </component>
    <wire>
    <source.uri>Messagerejection</source.uri>
    <target.uri>Messagerejectionservice/Messagerejection</target.uri>
    </wire>
    </composite>
    Regards,
    Tarak

  • 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 Handling in Mediator

    Hi,
    We have a DBAdpater to retrieve the data and a mediator to invoke the DBAdapter. In cases like No Records we want to create a soap fault. So we implemented Mediator Java callout and overriden postRouting() to read the response message and create a soapfault.
    [ we referred to blog http://technology.amis.nl/blog/6669/soa-suite-11g-introducing-mediator-java-callouts-for-debug-audit-and]
    but when we tried creating SOAPFault and add it to the response message, while execution , the response message is being parsed and seeing the fault it is throwing the exception below:
    java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException:
    This is a fault.
    at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestMode
    l.java:575)
    at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381)
    at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMetho
    dBinding.invoke(MethodExpressionMethodBinding.java:53)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMet
    hodBinding(UIXComponentBase.java:1259)
    at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand
    .java:183)
    I found that if exception from mediator is not handled, then the exception is throw as system fault as shown above.
    So we tried implementing external fault handling - by creating fault-policies.xml and fault-bindings.xml and a java callout.
    fault-bindings.xml
    <?xml version=”1.0" encoding=”UTF-8"?>
    <faultPolicyBindings version=”2.0.1" xmlns=”http://schemas.oracle.com/bpel/faultpolicy”>
    <composite faultPolicy=”SOM_ServiceFaults”/>
    </faultPolicyBindings>
    fault-policies.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies>
    <faultPolicy version="2.0.1" id="SOM_ServiceFaults">
    <Conditions>
    <faultName xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" name="env:Fault"> <!-- Qname of Business/SOAP fault -->
    <condition>
         <action ref="ora-custom"/>
    </condition>
    </faultName>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults" name="medns:mediatorFault">
    <condition>
    <action ref="ora-custom"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id=”ora-terminate”>
              <abort/>
         </Action>
    <Action id="ora-custom">
    <javaAction className="gm.som.FaultPolicyJavaAction" defaultAction="ora-terminate">
    <returnValue value="ora-terminate" ref="ora-terminate"/>
    </javaAction>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    But still getting the error.Appreciate any help on this.
    Thanks in Advance,
    Subhashini

    Not exactly but doing it the other way around by copying the fault msg to output variable and check flag for the response in my initial requester process then throw fault accordingly.. didnt have much time as it was holding back my other deliverables
    Thanks a lot for your time

  • Fault Handler do not catch selectionFailure

    Following is my fault handler policy defintions:
    <Conditions>
    <faultName name="bpelx:remoteFault">
    <condition>
    <test>$fault.code/code="WSDLReadingError"</test>
    <action ref="ora-rethrow-fault"/>
    </condition>
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName name="bpelx:bindingFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <faultName name="bpelx:runtimeFault">
    <condition>
    <action ref="ora-rethrow-fault"/>
    </condition>
    </faultName>
    *<faultName xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process" name="bpws:selectionFailure">*
    *<condition>*
    *<action ref="ora-human-intervention"/>*
    *</condition>*
    *</faultName>*
    </Conditions>
    <Actions>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>120</retryInterval>
    <exponentialBackoff/>
    </retry>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    While the policy definitions are working fine for runtime faults, it is not working for selectionFailure fault. Unless I add catch block in the bpel definition, the instances are faulted. Does fault handler ignores standard faults ?
    Please help. Thanks in advance.

    Yes, catch and catchAll branch can catch all the faults.
    fault policies will be executed only when the invoke activity fails.
    if both fault policies and catch and catchall brnaches are there,
    a. if invoke activity faults, then the fault policies will be executed.
    b. any other activity fails, then the catch or catchAll branch will be executed.
    Please look into these posts below...
    http://docs.oracle.com/cd/B31017_01/core.1013/b28764/bpel010.htm
    http://jianmingli.com/wp/?p=1740
    http://beatechnologies.wordpress.com/tag/fault-handling-and-management-in-oracle-soa-suite-11g/
    Hope this helps
    N

  • Fault handling policy for a process in the fault-binding.xml

    Can I specify a fault handling policy for a specific process using fault handling framework 10.1.3.3?
    <process faultPolicy="DefaultPolicy"/>
    I cannot specify the name of the process according to the xsd :(
    Can this be achieved?
    I have a two different partner links in different processes having the same name. If I add the partner link to the fault-binding.xml what would be the result?
    Note: I cannot use bpel.xml to specify the fault policies as of now.

    The fault policy bindings file does not allow you to specify a specific fault policy for an individual processes. You can only do this for all BPEL processes (eg: process Level) or at finer grained levels such as partner link levels.
    You might be able to use the partner link level for any services that call the process in which you wnat to error handle (eg: Process C needs to be error handled. Process A and B call C so for the partner link names for invoking C could have the fault policy defined for them). Therefore any faults returned from C could propagate back to process A / B and be handled within by the policy outside of Process C. Obviously if this apporach was used you would not want to use process level definitions as C would continue to use this.
    If the partner links were of the same name, they should both be handled by the fault policy that is defined withiin the Fault policy (e.g Partner Link level definitions)
    An approach that can be used is to specify the fault policy within the bpel.xml file. The information would be added as follows:
    </partnerLinkBindings>
    <!-- Start of Definition-->
    <faultPolicyBindings>
    <process faultPolicy="AProcessFaultPolicy"/>
    <partnerLink faultPolicy="APartnerLinnkPolicy">
    <name>insertSSN_dbAdapter</name>
    <name>Another_Adapter</name>
    </partnerLink>
    </faultPolicyBindings>
    <!-- End of Definition -->
    </BPELProcess>
    </BPELSuitcase>
    However, I noted you said you were unable to do this. I wasn't sure if this was for technical/governamce reasons or knowledge reasons (unsure where to place to the details.
    Hope that helps and does not confuse matters
    Dave

  • 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.

  • Urgent : 11g Fault Policy Java Handler

    Im trying to use fault policies in 11g and in fault policies want to catch the remote faults and pass it to a custom java handler.
    in Custom Handler use IFaultRecoveryJavaClass and also BPELFaultRecoveryContextImpl , i want to pick fault information
    and pass store it in DB...
    i placed the client jar file in <Oracle_HOME>\user_projects\domains\base_domain\lib
    Duuring runtime the server is able to Pick the IFaultRecoveryJavaClass but not BPELFaultRecoveryContextImpl
    is there anything im missing ?
    As per oracle documentation in Fault Handling in BPEL form SOA developer guide ..
    public class TestJavaAction implements IFaultRecoveryJavaClass {
    public void handleRetrySuccess(IFaultRecoveryContext ctx) {
    System.out.println("This is for retry success");
    handleFault(ctx);
    public String handleFault(IFaultRecoveryContext ctx) {          
    System.out.println("-----Inside handleFault-----\n" + ctx.toString());
    dumpProperties(ctx.getProperties());
    /* Get BPEL specific context here */
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl) ctx;
    bpelCtx.addAuditTrailEntry("hi there");
    System.out.println("Policy Id" + ctx.getPolicyId());
    please find the Fault Policy and Custom Java Class
    please see may fault policy below..
    =====================================================================================================================
    <?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.1.3" id="ConnectionFaults">
    <Conditions>
    <!-- Remote Fault Handler -->
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    <condition>
    <action ref="technical-fault-handler"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <!-- Human Intervention -->
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <!-- Technical Fault Action -->
    <Action id="technical-fault-handler">
    <javaAction className="com.FaultHandler"
    defaultAction="ora-human-intervention" propertySet="TechnicalProps">
    <returnValue value="OK" ref="ora-human-intervention"/>
    </javaAction>
    </Action>
    </Actions>
    <Properties>
    <!-- Properties for Technical Errors -->
    <propertySet name="TechnicalProps">
    <property name="logFileName">techinical-faults.log</property>
    <property name="logFileDir">c:\tmp\log</property>
    <property name="ErrorType">Technical</property>
    </propertySet>
    </Properties>
    </faultPolicy>
    </faultPolicies>
    Custom Java Handler ..
    =====================================================================================================================
    import java.io.File;
    import java.io.PrintStream;
    import java.util.ArrayList;
    import java.util.Map;
    ==============================================================
    // SOA Runtime fabric-runtime.jar Available with SOA Runtime Libraries
    ==============================================================
    import oracle.integration.platform.faultpolicy.IFaultRecoveryContext;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryJavaClass;
    ==============================================================
    // BPEL Runtime orabpel.jar Available with BPEL Runtime Libraries
    ==============================================================
    import com.collaxa.cube.engine.fp.BPELFaultRecoveryContextImpl;
    public class FaultHandler implements IFaultRecoveryJavaClass {
    public FaultHandler() {
    super();
    public void handleRetrySuccess(IFaultRecoveryContext ifc) {
    print("RertySuccess");
    public String handleFault(IFaultRecoveryContext ifc) {
    print("Handle Fault");
    Map<String,ArrayList> props = ifc.getProperties();
    for (Map.Entry<String,ArrayList> entry: props.entrySet()){
    print (entry.getKey() + " = " + entry.getValue().get(0));
    String logFileName = (String) props.get("logFileName").get(0);
    String logFileDir = (String) props.get("logFileDir").get(0);
    String ErrorType = (String) props.get("ErrorType").get(0);
    PrintStream ps = null;
    try
    ps = new PrintStream(logFileDir + File.separator + logFileName);
    catch (Exception e) {
    print(e.getMessage());
    System.out.println( "Fault Details");
    System.out.println("===============================================================");
    System.out.println("Fault Type ................ " + ifc.getType());
    System.out.println("Poilcy ID ................. " + ifc.getPolicyId());
    System.out.println("Faulted Partner Link ...... " + ifc.getReferenceName());
    System.out.println("Error Type ...... " + ErrorType);
    System.out.println("Port Type ................. " + ifc.getPortType());
    try {
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl) ifc;
    System.out.println("BPEL Context + getActivityName" + bpelCtx.getActivityName());
    System.out.println("BPEL Context + getActivityType" + bpelCtx.getActivityType());
    System.out.println("BPEL Context + getComponentInstanceId" + bpelCtx.getComponentInstanceId());
    System.out.println("BPEL Context + getComponentInstanceId" + bpelCtx.getComponentInstanceId());
    System.out.println("BPEL Context + getCompositeName" + bpelCtx.getCompositeName());
    System.out.println("BPEL Context + getECID" + bpelCtx.getECID());
    System.out.println("BPEL Context + getFault" + bpelCtx.getFault());
    System.out.println("BPEL Context + getFault" + bpelCtx.getProcessDN());
    catch (Exception ee){
    System.out.println("BPEL Context + Exception" + ee.getMessage());
    return "OK";
    Error Log ..
    =====================================================================================================================
    Caused by: com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}runtimeFault}
    parts: {{
    summary=<summary>com/collaxa/cube/engine/fp/BPELFaultRecoveryContextImpl</summary>
    ,detail=<detail>java.lang.NoClassDefFoundError: com/collaxa/cube/engine/fp/BPELFaultRecoveryContextImpl
         at com.FaultHandler.handleFault(FaultHandler.java:56)
         at com.collaxa.cube.engine.fp.RecoveryActionJava.execute(RecoveryActionJava.java:67)
         at com.collaxa.cube.engine.fp.BPELRecoverFault.recover(BPELRecoverFault.java:87)
         at oracle.fabric.CubeServiceEngine.recoverFault(CubeServiceEngine.java:1589)
         at oracle.integration.platform.faultpolicy.RecoverFault.recoverAndChain(RecoverFault.java:149)
         at oracle.integration.platform.faultpolicy.RecoverFault.resolveAndRecover(RecoverFault.java:112)
         at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveAndRecover(FaultRecoveryManagerImpl.java:121)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.resolveAndRecover(BPELInvokeWMP.java:1170)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__handleException(BPELInvokeWMP.java:1111)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__callback(BPELInvokeWMP.java:626)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.handleNormalInvoke(BPELInvokeWMP.java:465)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:182)
         at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:140)
         at com.collaxa.cube.engine.CubeEngine._performActivity(CubeEngine.java:2675)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2558)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1256)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:73)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:188)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:285)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4607)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:828)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:610)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:354)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
         at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
         at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy184.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.handleInvoke(BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.java:241)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:34)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:139)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:619)
    </detail>

    I tried bundling the jar file but still it is not able to pick up the class and throws the same exception. please find the following code which i tried to use to pick up the remote fault.
    System.out.println( "Fault Details");
    System.out.println( "===============================================================");
    System.out.println( "Fault Type ................ " + ifc.getType());
    System.out.println( "Poilcy ID ................. " + ifc.getPolicyId());
    System.out.println( "Faulted Partner Link ...... " + ifc.getReferenceName());
    System.out.println( "Error Type ...... " + ErrorType);
    System.out.println( "Port Type ................. " + ifc.getPortType());
    BPELFaultRecoveryContextImpl bpelCtx = (BPELFaultRecoveryContextImpl) ifc;
    System.out.println("BPEL Context + getActionId" + bpelCtx.getActionId());
    System.out.println("BPEL Context + getActivityName" + bpelCtx.getActivityName());
    System.out.println("BPEL Context + getActivityType" + bpelCtx.getActivityType());
    System.out.println("BPEL Context + getComponentInstanceId" + bpelCtx.getComponentInstanceId());
    System.out.println("BPEL Context + getCompositeName" + bpelCtx.getCompositeName());
    System.out.println("BPEL Context + getECID" + bpelCtx.getECID());
    System.out.println("BPEL Context + getFault" + bpelCtx.getFault());
    System.out.println("BPEL Context + getFault" + bpelCtx.getProcessDN());
    If you have any working example can you please pass the code. my emailid is [email protected]
    Edited by: lakshmi nadh on Jul 27, 2009 3:39 AM

  • Fault handling for Mediator component

    I am trying to capture all the system and business faults of the composite and email the details to system groups. I am having issues with the fault policy file and get the following error. My Composite is made up of Web Services ---> Mediator ---->DBAdapter
    INFO: FaultPoliciesParser.parsePolicies ------->Begin Parsing of policy file
    <Jun 18, 2012 3:48:58 PM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Failed to recover the mediator fault.
    oracle.fabric.common.FabricException: Missing fault policy: TESTFaultPolicy
    at oracle.integration.platform.faultpolicy.RecoverFault.resolveToActionRef(RecoverFault.java:101)
    at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveToActionRef(FaultRecoveryManagerImpl.java:151)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoveryHandler.resolveToActionRef(MediatorRecoveryHandler.java:158)
    at oracle.tip.mediator.common.error.ErrorMessageEnqueuer.enqueue(ErrorMessageEnqueuer.java:174)
    at oracle.tip.mediator.dispatch.db.DeferredDBWorker.handleError(DeferredDBWorker.java:117)
    at oracle.tip.mediator.common.listener.DBWorker.process(DBWorker.java:114)
    at oracle.tip.mediator.common.listener.AbstractWorker.run(AbstractWorker.java:83)
    at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
    at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
    at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    I am attaching the following files
    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="TESTFaultPolicy">
    <Conditions>
    <faultName>
    <condition>
    <action ref="ora-java"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-java">
    <javaAction className="test.EmailFaultHandler"
    defaultAction="ora-human-intervention">
    </javaAction>
    </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">
    <composite faultPolicy="TESTFaultPolicy"/>
    <component faultPolicy=" TESTFaultPolicy">
    <name>HandleRealTimeRequests</name>
    </component>
    </faultPolicyBindings>
    I am yet to figure out how to capture the fault and email to the groups in EmailFaultHandler.java file below
    EmailFaultHandler.java_
    package test;
    import com.collaxa.cube.engine.fp.BPELFaultRecoveryContextImpl;
    import java.util.Map;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryContext;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryJavaClass;
    public class EmailFaultHandler implements IFaultRecoveryJavaClass {
    public void handleRetrySuccess(IFaultRecoveryContext iFaultRecoveryContext) {
    public String handleFault(IFaultRecoveryContext iFaultRecoveryContext) {
    //Print Fault Meta Data to Console
    System.out.println("****************Fault Metadata********************************");
    System.out.println("Fault policy id: " + iFaultRecoveryContext.getPolicyId());
    System.out.println("Fault type: " + iFaultRecoveryContext.getType());
    System.out.println("Partnerlink: " + iFaultRecoveryContext.getReferenceName());
    System.out.println("Port type: " + iFaultRecoveryContext.getPortType());
    System.out.println("**************************************************************");
    //print all properties defined in the fault-policy file
    System.out.println("Properties Set for the Fault");
    Map props = iFaultRecoveryContext.getProperties();
    for (Object key: props.keySet())
    System.out.println("Key : " + key.toString() + " Value : " + props.get(key).toString());
    //Custom Code to Log Fault to File/DB/JMS or send Emails etc.
    return "Manual";
    Please suggest
    Thanks
    Edited by: user5108636 on 18/06/2012 00:20
    Edited by: user5108636 on 18/06/2012 00:20

    By the way, I managed to break through a little further. Now I am past this fault policy error. However, the java fault handler class is giving ClassNotFoundException. The way I added the java file (test.EmailFaultHandler) through JDeveloper in the composite project (Right click --> New ---> Java file). How do I add this to the classpath. I thought it automatically gets added to the SOA composite project classpath.
    Please suggest.
    INFO: FaultPoliciesParser.parsePolicies ------->Begin Parsing of policy file
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Error> <oracle.soa.mediator.common.listener> <BEA-000000> <Enququeing to Error hospital successful...>
    <Jun 19, 2012 10:58:05 AM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Error while loading "test.EmailFaultHandler" java class specified for action "ora-java".>
    <Jun 19, 2012 10:58:05 AM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Failed to recover the mediator fault.
    java.lang.ClassNotFoundException: test.EmailFaultHandler
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)
    at oracle.tip.mediator.common.error.recovery.CustomJavaHandler.execute(CustomJavaHandler.java:69)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoverFault.recover(MediatorRecoverFault.java:73)
    at oracle.tip.mediator.serviceEngine.MediatorFacadeService.recoverFault(MediatorFacadeService.java:988)
    at oracle.integration.platform.faultpolicy.RecoverFault.recoverAndChain(RecoverFault.java:161)
    at oracle.integration.platform.faultpolicy.RecoverFault.resolveAndRecover(RecoverFault.java:124)
    at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveAndRecover(FaultRecoveryManagerImpl.java:123)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoveryHandler.recover(MediatorRecoveryHandler.java:116)
    at oracle.tip.mediator.common.error.ErrorDBWorker.handleMessage(ErrorDBWorker.java:37)
    Thanks

  • Using Fault handling framework for executing Database procedure

    We have a requirement wereby we have API to be executed on Oracle DB which would return a code saying 0 or 1.
    I meaning error.
    Now with regards to exception handling we require that we receive remote fault we retry for 3 times & if not successful have a email sent out & a human intervention.
    This can be easily taken care by having define this in Fault polciy.xml
    Another requirement is when the API fails for some reason & we get returncode as 1.Now we would like ot invoke the same policy for this type of error.Although BPEL instance is not failed.But we can throw custom fault.
    Now the APi's that we have can be called in 3 ways.
    1.In each instance we call API exactly once
    2.In each instance we call API in a loop for each record in message.Hence if 10 records are there in message & while executin 7th time it failed then how to handle reminaing records?
    3.In each instance we call API only once but submit all 10 reocrds at once.And at same time 7th record fails then whats best way to handle this?
    We realy want to use fault handling mechanism because it gives a lot of options of replay rethroew continue...but given the requirement can somebody point out a right way of using fault policy?
    Thanks

    U can archive the records in archive tables once the database adapter polls the data.
    -Ramana.

  • 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>

  • What's your strategy for WebService errors that aren't raised through fault handler?

    Is there a way to underride the default functionality of
    WebService.as? I can't find the source code in the SDK, so I'm
    assuming this part of Flex isn't Open Source.
    I find that using WebServices that there are a lot of errors
    that potentially occur that I can't capture in the UI. Or, let me
    rephrase that, that I haven't been able to figure out how to
    capture in the UI.
    For example, the following "Could not load WSDL" error
    occurs. Now, I could probably devise a strategy around checking
    that the connection is alive and such, but then I've seen other
    errors that occur in the WebService base classes that are all fired
    asyncronously.
    Is there a way to add a default handler that capures these
    types of errors? (They're not captures by FaultHandlers).
    I can't have a UI that displays the big white box to end
    users with a stack trace. Thanks.
    [RPC Fault faultString="Could not load WSDL"
    faultCode="Server.NoServicesInWSDL" faultDetail="No
    <wsdl:service> elements found in WSDL at ."]
    at
    mx.rpc.wsdl::WSDL/getService()[E:\dev\flex_3_beta3\sdk\frameworks\projects\rpc\src\mx\rpc \wsdl\WSDL.as:256]
    at
    mx.rpc.wsdl::WSDL/getPort()[E:\dev\flex_3_beta3\sdk\frameworks\projects\rpc\src\mx\rpc\ws dl\WSDL.as:182]
    at mx.rpc.soap::WebService/
    http://www.adobe.com/2006/flex/mx/internal::wsdlHandler()[E:\dev\flex_3_beta3\sdk\framewor ks\projects\rpc\src\mx\rpc\soap\WebService.as:267
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at
    mx.rpc.wsdl::WSDLLoader/checkLoadsOutstanding()[E:\dev\flex_3_beta3\sdk\frameworks\projec ts\rpc\src\mx\rpc\wsdl\WSDLLoader.as:195]
    at
    mx.rpc.wsdl::WSDLLoader/resultHandler()[E:\dev\flex_3_beta3\sdk\frameworks\projects\rpc\s rc\mx\rpc\wsdl\WSDLLoader.as:173]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.rpc::AbstractInvoker/
    http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\flex_3_beta3\sdk\fra meworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:175
    at mx.rpc::AbstractInvoker/
    http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\flex_3_beta3\sdk\framew orks\projects\rpc\src\mx\rpc\AbstractInvoker.as:198
    at
    mx.rpc::Responder/result()[E:\dev\flex_3_beta3\sdk\frameworks\projects\rpc\src\mx\rpc\Res ponder.as:48]
    at
    mx.rpc::AsyncRequest/acknowledge()[E:\dev\flex_3_beta3\sdk\frameworks\projects\rpc\src\mx \rpc\AsyncRequest.as:81]
    at
    DirectHTTPMessageResponder/completeHandler()[E:\dev\flex_3_beta3\sdk\frameworks\projects\ rpc\src\mx\messaging\channels\DirectHTTPChannel.as:387]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

    I found out at FlexCOders, that when I'm not using the Debug
    version of the Player that these errors should correctly propogate
    to the Fault handler.

  • Fault handler triggered for "100 Continue" messages from web service

    I'm using the Flex/Flash "WebService" class to connect to a .NET4 web service.
    Things always work fine unless the service sends a "100 Continue" message,
    (which it does seemingly at random, which is allowed by HTTP1.1).
    The problem is that Flex/Flash does not appear to handle this message.
    It triggers the fault handler with the following message:
    "SOAP Response cannot be decoded".
    The message body pulled from the Flash Builder's "Network Monitor" window (raw view) is:
    HTTP/1.1 100 Continue
    Server: ASP.NET Development Server/10.0.0.0
    Date: Tue, 21 Aug 2012 14:42:25 GMT
    Content-Length: 0
    If I understand correctly, any client using HTTP 1.1 should be able to handle "100 Continue" messages even if they didn't ask for them.
    Does anyone know what's going on here?
    Here are the software versions of everything involved:
    Flash plugin: 11.3.300.257 (ActiveX)
    Flash Builder: 4.6
    Flex Compiler SDK: 4.6.0
    OS: WinXP Pro, 32-bit, SP3
    Browser: IE 8.0.6001
    Web Service: .NET framework 4
    Any help/advice is greatly appreciated!!

    Update: The problem also occurs with Firefox 12 using the debug version of FlashPlayer 11.3.300.257, so I don't think it's a browser issue... Looks like Flash itself.

  • [svn:fx-trunk] 15021: merge 15020: update ASDoc for execute() to use FaultEvent instead of ErrorMessage in the fault handler

    Revision: 15021
    Revision: 15021
    Author:   [email protected]
    Date:     2010-03-25 07:35:43 -0700 (Thu, 25 Mar 2010)
    Log Message:
    merge 15020: update ASDoc for execute() to use FaultEvent instead of ErrorMessage in the fault handler
    QE notes:
    Doc notes:
    Bugs:
    Reviewer:
    Tests run: checkintests
    Is noteworthy for integration:
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/olap/IOLAPCube.as

    *bump* I desperately need to get this fixed for work - I hope someone can please find a solution or point me in the right direction!!

Maybe you are looking for