Fault Policy Management Framework in 10.1.3.3

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

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

Similar Messages

  • BPEL - Fault Policy Management

    Hi All
    I trying to implement the fault policy management in oracle soa suite 10.1.3.5 and
    I am facing a problem in it.
    I have defined the process level policies in the fault-bindings.xml file as shown below and its not working.
    <faultPolicyBindings>
    <process faultPolicy="NICBPELFaultPolicy">
    <name>mainCalcProcess2</name>
    </process>
    <process faultPolicy="RetryPolicy">
    <name>addMainProcess</name>
    </process>
    </faultPolicyBindings>
    is it a correct way of fault handling?
    Regards
    Senthil R

    Sathish Venkatr... wrote:
    Hi,
    Could you provide me the details of testing this Fault policy.
    You can handle the fault policy at process level and domain level, it looks like you are trying to have fault policy at <font face="tahoma,verdana,sans-serif" size="1" color="#000">Domain</font> level.
    You have defined the Fauilt at domain level by defining in fault-bindings.xml file.
    Have you restarted the server after defining this fault? If yes how are you testing this fault?
    Thanks
    SathishI got more deep understanding about this part, Thanks for your explanation! Nice writing.

  • BPEL 10.1.3.5 Fault Management - Using Xpath in Fault Policy conditions

    Hi all.
    I have a requirement to use the xpath functions "contais" and "upper-case" inside a condition in a fault policy file. I've done some tests and didn't get successful results so far.
    My first test using the policy file was the following:
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
              xmlns:ebsv1="http://www.claro.com.br/EBS/Claro/v1"
              xmlns:ebov1="http://www.claro.com.br/EBO/Claro/v1"
              name="ebsv1:TechnicalFault">
         <condition>
         *<test>$fault.TechnicalFault/ebsv1:TechnicalFault/ebov1:message = 'TE-0001'</test>*
         <action ref="ora-human-intervention" />
         </condition>
    In this first test I used a simple expression just to test the overall namespace declarations and xpath navigation. It worked as expected.
    Second, I modified the test to use the "contais" function. I need to use this function because my message will eventually contain the value 'TE-0001' mixed with other string:
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
              xmlns:ebsv1="http://www.claro.com.br/EBS/Claro/v1"
              xmlns:ebov1="http://www.claro.com.br/EBO/Claro/v1"
              name="ebsv1:TechnicalFault">
         <condition>
         *<test>contains($fault.TechnicalFault/ebsv1:TechnicalFault/ebov1:message, 'TE-0001')</test>*
         <action ref="ora-human-intervention" />
         </condition>
    In this second test I allways get FALSE results, meaning that this expression may not be correct. I'm certain that this should be evaluated to TRUE as the test scenario is the same as the first test. Is there something missing?? I turned on debug level log in the domain but didn't find any hint about the fault management processing.
    Besides the use of the contains function, it would be nice if I'm able use the function upper-case. Something like this:
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
              xmlns:ebsv1="http://www.claro.com.br/EBS/Claro/v1"
              xmlns:ebov1="http://www.claro.com.br/EBO/Claro/v1"
              xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
              name="ebsv1:TechnicalFault">
         <condition>
         *<test>contains(xp20:upper-case($fault.TechnicalFault/ebsv1:TechnicalFault/ebov1:message), 'TE-0001')</test>*
         <action ref="ora-human-intervention" />
         </condition>
    Any ideas???
    Thanks
    Denis

    Hi again.
    Has anyone been able to use any kind of Xpath function inside a policy file? If so, could you please share the code fragment including the namespace declarations and the conditions?
    Does anyone know if Fault Management Framework at least support the use of Xpath functions?
    Thanks.
    Denis

  • EDN not available throws runtimeFault - Fault Policy Framework unable to catch it

    Hi Team,
    I have been working on some error handling scenarios for EDN .
    From my observation if BPEL is used to publish the event, BPEL Fault policy cannot catch EDN errors (e.g., EDN unavailable) but BPEL catch activity can catch it.
    Steps performed :
    1. Create a BPEL to publish the event to EDN.
    2.Create fault policy to catch  BPEL runtime fault .
    3.Go to weblogic console to change EDNdatasource target to get "EDN datasource not available error".
    4.Test your BPEL.
    My requirement is to retry such faults and invoke human intervention after retry failure using BPEL.
    Please let me know how to achieve this

    Follow the oracle documentation
    - http://docs.oracle.com/cd/E28271_01/dev.1111/e10224/bp_faults.htm#BABIGGIB
    *The fault management framework catches all faults (business and runtime) for an invoke activity.*
    Hope that helps.
    P.S. The fault management framework main purpose is to define a enterprise wide standard policies to handle the faults that will be applied to various/all composite. Hence your specific fault that is specific to a composite should not creep into to fault management framework as this is not the enterprise standard i.e., every composite may have to handle the invalid variable, based on where it occurred and for what variable it occurred.

  • 10.1.3.3 fault management framework and catchall problem

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

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

  • SOA 11g Fault Management Framework Issue

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

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

  • BPEL 10.1.3.5: Fault policy framework: has retryCount a maximum of 50?

    Hello,
    i configured the fault policy with the folllowing values:
    <Action id="ora-retry">
    <retry>
    <retryCount>60</retryCount>
    <retryInterval>1</retryInterval>
    </retry>
    </Action>
    But when i look at the audit-tab in the BPEL-Console, i see only 50 retries, until the action fails.
    Has retryCount a maximum of 50 retries?
    Best regards and thanks for your help
    Friedrich

    Hi again.
    Has anyone been able to use any kind of Xpath function inside a policy file? If so, could you please share the code fragment including the namespace declarations and the conditions?
    Does anyone know if Fault Management Framework at least support the use of Xpath functions?
    Thanks.
    Denis

  • Oracle Fault Management Framework - how to intercept first invocation

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

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

  • Fault Management Framework

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

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

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

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

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

  • Fault Management Framework - How to use test conditions

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

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

  • 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

  • How to retry a external webservice without fault policy framework?

    hi ,
    -->i want retry a external web service if invocation fails first time, without using fault policy frame work how to achieve this?
    -->I have a Advanced Queue in OSB, i am Dequeueing that  , i have a proxy to deque the AQ topic, with any reason dequeue fails it should retry for number of times and then handled in Exception Hnadler in OSB.
    How to retry the AQ to Dequeue?
    Thanks,
    Shekar

    We are experiencing exactly the same problem!
    Only in our case its Wssp1.2-2007-Wss1.0-X509-Basic256.xml
    We encrypt and sign the request, the server processes it correctly.
    But afterwards we send a "naked" request(not encrypted nor signed) and still the WLS processes it.
    Is there a setting of some sort that enables strict enforcement of the policy?

  • Fault Management Framework is not working....

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

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

  • Fault Policy Resolution in Fault Framework

    Hello Gurus,
    A simple doubt regarding fault-policy file resolution:
    There are two places where you can specify a policy file:
    1) In composite.xml file. E.g.
    <property name="oracle.composite.faultPolicyFile">oramds://apps/faultpolicyfiles/fault-policies.xml</property>
    2) In fault-bindings.xml file. E.g.
    <faultPolicyBindings ...>
         <composite faultPolicy="FusionMidFaults"/>
    </faultPolicyBindings>
    When both are specified at same level, let's say at composite level as above, which one will take precedence over the other?
    Thanks-
    Ashish

    Hi,
    I don't know the answer but in 11g they should be in MDS. Second option was used in 10g. I guess it's still there just for backwards compatibility.
    Regards,
    Milan

Maybe you are looking for