Query on Fault Handling in SOA 11g

Hi All,
I have created a BPEL process which polls a DB table and does a logical delete(updates status column as read). Now I wanted to rollback the update incase of any fault in the BPEL process. I have an email activity and an audit table entry in my catch/catch-all blocks.
1. If I don’t add any error handling code to BPEL, the transaction (update to DB) is rolled back incase of fault
2. If I add any error handling code to BPEL, the transaction (update to DB) doesn’t get rolled back incase of fault.
3. If I add bpelx:rollback in my catch/catch-all blocks, the transaction (update to DB) gets rolled back but I am unable to send email/add audit entries as those get rolled back too.
4. I created a new datasource which supports local transactions and configured the Auditing to make use of this datasource. Now in this case when bpelx:rollback happens incase of fault, transaction (update to DB) gets rolled back and Audit data is also added (since it’s a separate transaction and not part of the Global transaction). However email activity still doesn’t get sent as it is rolled back as well.
Please let me know how do I handle this scenario where incase of rollback both Auditing as well as email should work.
Regards
Subhankar

Hi,
The email activity basically invokes a notification service(partner link/reference). Can we set the below properties at the reference section ?
<property name="bpel.config.oneWayDeliveryPolicy" many="false" type="xs:string">sync</property>
<property name="bpel.config.transaction" many="false" type="xs:string">requiresNew</property>
Or do these properties need to be set at the BPEL process service component section in the composite.xml file only. I tried setting at reference level, however it isnt taking effect. Basically I am trying to have the email activity(notification service) as a separate transaction.
Thanks
Subhankar

Similar Messages

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

  • Fault Policies in soa 11g with email notification

    SOA 11.1.1.3
    I want to implement faulpolicies.xml and send email notification. (for binding ,remote fault after certain retries).Can I use email activity in BPEL catch block for this , what should I add ,in my faultpolicies.xml to trigger email activity
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicy version="2.0.1" id="FaultPolicyName"
    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:runtimeFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry">
    <retry>
    <retryCount>8</retryCount>
    <retryInterval>2</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref="send-notification"/>
    </retry>
    </Action>
    </Actions>
    Also, can anyone please tell which is a better option - using email activity or custom java code in fault
    policies.xml.
    Thanks

    Like Oraacler suggested, you can definitely rethrow the fault to BPEL to send the notification. However, your BPEL fault handlers will become pretty tedious when you have to check for error types in your catch block to retrieve the message and type the e-mail. On top of that, if you have multiple catch blocks in a single process or multiple processes spec'd to throw similar notifications, you will have to add a lot of redundant code. You can definitely externalize the notification to a different process that handles all e-mails, but even that does not take out having multiple invokes on the faulted process.
    Having a fault handler Java class to handle global faults allows you to externalize and standardize exception management and also dramatically minimizes BPEL code. In your Java class you also get the API's to access a lot more information then you will in BPEL allowing you to provide detailed messages. This has been my choice to account for any error that should not happen on a regular basis (binding and remote).
    The only drawback of the Java class is the development piece which can take forever since you have to restart the server after every little change. There is however a way to write a client java class for development on JDeveloper which directly connects to the weblogic-soa dehydration store to look up an instance with a fault and retrieve the fault message. You can then use that message to do your testing/development before finalizing it and moving it to the server.
    Depends on what you decide, let us know if you run into any more constraints and we can definitely try to help you.
    Thanks and good luck!

  • How to implement Fault Handler in BPEL

    Any good material or sample available on ? How to handle exception properly If error does occur in BPEL ?

    Hi',
    Check this out,
    http://rathinasaba.wordpress.com/2011/05/29/fault-handling-in-bpel/
    http://rahullahiri.blogspot.com/2011/02/basic-fault-handling-in-soa-11g.html
    http://jianmingli.com/wp/?p=2708
    -Yatan

  • 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 Policies SOA 11g

    Hi All,
    Presently my Fault Policies file looks like
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicies>
    <faultPolicy version="2.0.1" id="RejectedMessages">
    <Conditions>
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:getSummaryCSVRecords">
    <condition>
    <action ref="ora-writeToFile"/>
    </condition>
    </faultName>
    <faultName>
    <condition>
    <action ref="ora-rethrow-fault"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-writeToFile">
    <fileAction>
    <location>/tmp/Rej_Msgs</location>
    <fileName>PSDRejectedMsg.xml</fileName>
    </fileAction>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    So , the rejected messages that are given gets placed onto a file system.
    My Query is , if instead of this i want the rejected message to pass onto a queue that is already present in my SOA 11g instance , what might the configurations i might need.
    Presently , my thoughts are to rename ora-writeToFile to ora-writeToQueue .
    change <fileAction> to <QueueAction> and then providing <location> as deployment profile where Queue is present and <QueueName> as the Queue to be used ,
    will this work???????

    yes...this would work

  • 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

  • SOA 11g- Error handling of Asynchronous composites

    Hi,
    We are working on Error Handling framework design for both synchronous, asynchrounous composites of SOA 11g.
    Any pointers on the same will be helpfull as how to capture errors occuring during asynchronous services calls.
    Thanks,
    Sowmya

    Thanks Naresh.
    Can you help me if the below is possbile.
    I have a process which takes an input and splits the inputs into multiple requests to some external system in a flow-N activity. There is an invoke activity with-in the flow N activity. And this invoke is an asynchrnous call. If at runtime we have 5 flows for flow-N, with 5 calls to external system, and out of these 4 are successful and one errors out. Can we have an error handler to just resubmit the failed request to the external system. Once we get the response from the resubmission, we want to continue with merging the output of all 5 and sending it back.
    Also, let me know if there will be any issue with the call back operation due to resubmission of the invoke. This is an asynchronous invoke with call back mechanism for response.
    Thank you so much.
    PK

  • How to handle logging in SOA 11g

    Hi All,
    I have a SOA Suite 11g R3 installation running on WLS in Windows. Can someone help me in refering on how can we set log levels in SOA11g. In 10g, we had to set this at the BPELConsole and for certain others using EM, but im not able to locate a corresponding knob in 11g to control logging. Sometimes the server starts logging and everything is sent to the command window that i start the soa_server in and chockes the environment.
    Kindly let me know the corresponding equivalent of handling logging in SOA 11g as what we did in SOA10g using BPELConsole.
    Many thanks,

    In the em, go to SOA --> SOA-Infra
    Right click on SOA-Infra and go to Logs --> Log Configuration
    In Log levels tab, expand oracle.soa --> oracle.soa.bpel
    Now you may set the desired log level here.
    You may be interested in -
    http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10226/bp_mon.htm
    http://download.oracle.com/docs/cd/E14571_01/web.1111/e13739/logging_services.htm#i1172535
    Regards,
    Anuj

  • Difference between soa Error handling framework 10g & 11g

    Hi,
    Is there any document available which shows the difference between soa Error handling framework 10g & 11g
    Thanks..

    Hi,
    Please find the documentation links here..
    http://wiki.oracle.com/page/Application+Integration+Architecture
    Foundation Pack Product Documentation - Metalink Note 824495.1
    You can refer to the developer guide "E14750-01.pdf" and Chapter 13 for error handling related information.
    Regards,
    Narayana

  • Fault Policy framework doesnt work - SOA 11g

    Hi All,
    I am trying to excute a composite in which i had a business fault and i had the swicth condition based on reply.
    If reply is other than success or failure i will throw a fault Invalid data and the fault is catched by teh fault handler. but the fault policy doesn't work.
    these is my fault ploicy
    <?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="java-fault-handler"/>
    </condition>
    </faultName>
    <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:runtimeFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    name="bpws:selectionFailure">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    name="bpws:InvalidData">
    <condition>
    <action ref="java-fault-handler"/>
    </condition>
    </faultName>
    <!-- <fault name="test" type="bpws:InvalidData" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" >
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </fault> -->
    </Conditions>
    <Actions>
    <!-- Generics -->
    Note: The preseeded recovery action tag names (ora-retry, ora-human-intervention, ora-terminate, and so on) are only samples.
    You can substitute these names with ones appropriate to your environment.
    Notes: ¦ Fault policy file names are not restricted to one specific name.However, they must conform to the fault-policy.xsd schema file. ¦ Example
    12–5 provides an example of catching faults based on fault names. You can also catch faults based on message types, or on both:
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>2</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref="java-fault-handler"/>
    <retrySuccessAction ref="ora-terminate"/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="java-fault-handler">
    <javaAction className="in.ibm.com.FAPErrorHandler"
    defaultAction="ora-human-intervention" propertySet="properties">
    <returnValue value="OK" ref="ora-human-intervention"/>
    </javaAction>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    <Action id="default-replay-scope">
    <replayScope/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    And my fault bindings.xml file
    <?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">
    <composite faultPolicy="FusionMidFaults"/>
    <!--<composite faultPolicy="ServiceExceptionFaults"/>-->
    <!--<composite faultPolicy="GenericSystemFaults"/>-->
    </faultPolicyBindings>
    In 10g we used a default fauly policy and we used to register it used to work fine. Here there is soem thing wrong with the java class.?????
    my compsoite execution gives the following error
    <bpelFault>
    <faultType>
    <message>0</message>
    </faultType>
    <InvalidData>
    <part name="summary">
    <summary xsi:type="def:string">Invalid status from HOL</summary>
    </part>
    <part name="detail">
    <detail xsi:type="def:string">HOL Sends Invalid Status</detail>
    </part>
    <part name="code">
    <code xsi:type="def:string">Error</code>
    </part>
    </InvalidData>
    </bpelFault>
    as per my fault value but not calling my java class... how do i know my fault policy is working or not ?????This is teh errored fault
         Error Message: {http://schemas.xmlsoap.org/ws/2003/03/business-process/}InvalidData
    Fault ID     default/FAPCustomerInitiatedBarUnbar!1.0*374a445a-1396-438e-a7c4-76bf5c6404a8/FAPCustomerInitiatedBarUnbarProcess/210005-BpThw0-BpSeq30.11-3
    Fault Time     Oct 25, 2010 4:26:49 PM
    Non Recoverable System Fault :
    <bpelFault><faultType> <message>0</message></faultType><InvalidData xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Invalid status from HOL</summary></part><part name="detail"><detail xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">HOL Sends Invalid Status</detail></part><part name="code"><code xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Error</code></part></InvalidData></bpelFault>
    I verified the serverlog and diagonostic log file..
    the java class is not called what is wrong with my java class call in fault policy.
    Venugopal Raja
    Edited by: user12893766 on Oct 25, 2010 3:57 AM
    Edited by: user12893766 on Oct 25, 2010 5:35 AM

    Many Thanks.
    I had misinteprted the documentation I had read which stipulated the pattern of the test should be $fault.<PartName>/<LocationPath>.
    What I didnt realise was the $fault.<PartName> e.g. $fault.code returned the root node which in this case is <code>. Therefore no further location path is required as this is a simple type / string field rather than a complex type

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

  • 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 - BPELFaultRecoveryContextImpl - how to get payload

    Hi,
    I have a custom java action for every fault in my composite. Once in the handler I need to access the payload, in case it's a mediator fault it's quite easy as MediatorRecoveryContext provides a public method to access its message. How can I do it in case it's a bpel error? I believe te payload is inside the scope, but it is proteted and no method to retrieve it. Thanks in advance

    Came upon this link while searching - seems relevant..
    http://www.albinsblog.com/2011/10/oracle-soa-11g-retrieving-request.html#.UMYgm6ycaS0

  • 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

Maybe you are looking for

  • Apple's trailer site crashes Firefox w/ mplayer plugin

    Okay, this is beyond weird. Basically, I can go and watch a video in high quality or otherwise pretty much anywhere that isn't Apple's website... If I go there, Firefox just crashes without an error or explanation. This is pretty unfortunate since I

  • Using external Jar with a mobile application

    Hi folks!    I need some help with my application, i make a simple mobile application and i need to use a external jar, in this case, this jar have a simple JAVA class that represents a manipulation with eSWT, so my problem is How to using external J

  • Word Download

    For years, I have been using the code: <CFIF IsDefined("Word")> <cfheader name="Content-Type" value="application/msword"> <cfheader name="Content-Disposition" value="attachment;filename=MyFile.doc"> </CFIF> to cause a WOrd file to be created in a doc

  • Error while trying to publish

    So I've been trying to publish my website and I keep receiving this error. I've tried deactivating my muse and signing back into muse incase it was a problem with my sign in information but I still continue to receive this "Unknown Adobe Business Cat

  • Is it possible to stop broadcasting BTopenzone

    Hi everyone so i got one of these old school hubs http://postimage.org/image/q3a36w14l/ And im broadcasting Btopenzone is there anyway to disable this. I had 30 people connect to me about a week ago all from Iphones shows up when i log into my Hub th