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

Similar Messages

  • Fault policy does not work when throwing remoteFault in bpel

    Hi
    I have a BPEL-proces in which I throw a remoteFault.
    In the fault-policy there is a condition for this fault
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-java"/>
    </condition>
    </faultName>
    But the fault-policy does not work if I throw this remoteFault in de bpel. But when I invoke another service (which is shutdown), then I get a remoteFault and for this remoteFault the fault-policy works well.
    Any idea why the fault-policy does not work when I throw the remoteFault?
    Regards

    BPEL fault works only on invocation failures.
    Fault management will work based on the remote fault from the remote service, you cannot throw remote fault from bpel and capture that in fault management and process.
    The following are the actions that we can take on faults.
    1. Human Intervention
    2. Rethrow [rethrowFault]
    3. Termination [abort]
    4. Replay Fault [replayScope]
    5. Custom Java Action [javaAction]
    6. Retry [retry]
    Hope this helps !!!
    Thanks,
    Vijay

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

  • Retry in Fault Policy is not Working..

    Hi,
    - I have created sync BPEL Process and invoking JDE BSSV in the same.
    - I want to retry invoking BSSV in case of remote and binding fault.
    - I am using Fault Policy to achieve the same but RETRY is not Working._
    I am using below Fault Binding / Fault Policy for the same..
    ........................Fault BINDING.........................................
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicyBindings version="3.0"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="BPELFaults"/>
    </faultPolicyBindings>
    .......................Fault Policy...............................................
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="3.0" id="BPELFaults"
    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>
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>10</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    <exponentialBackoff/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
         <rethrowFault/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    I tried using "humanIntervention" instead of Retry and it worked
    but Retry dont work..
    I am stuck on this error from 2 days but unable to achieve it :(
    I will appreciate if someone can provide any Solution on the same..
    Thanks in Advance :)

    Hi Vijay,
    Thanks for your response..
    Please find below Path For policy Files, fault policy Content and Exception*:*
    path for your policy files
    <service name="XXXXXXXImpl"
    ui:wsdlLocation="XXXXXXXXProcess.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/XXXXXXXXXToJDEE1App/XXXXXXXXXImpl/XXXXXXXXXProcess#wsdl.interface(CustomerSearchPIPS0238Process)"/>
    <binding.ws port="http://xmlns.oracle.com/XXXXXXXXXXToJDEE1App/XXXXXXXXXXImpl/XXXXXXXXProcess#wsdl.endpoint(XXXXXXXXImpl/XXXXXXXProcess_pt)">
    <property name="weblogic.wsee.wsat.transaction.flowOption"
    type="xs:string" many="false">NEVER</property>
    </binding.ws>
    </service>
    *<property name="oracle.composite.faultPolicyFile">fault-policies.xml</property>*
    *<property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>* <
    component name="XXXXXXXXXProcess" version="1.1">
    <implementation.bpel src="XXXXXXXXProcess.bpel"/>
    <property name="bpel.config.transaction" type="xs:string" many="false">required</property>
    </component>
    fault-policy.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="3.0" id="CustomerSearchPIPPolicy"
    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-action-retry"/>
         </condition>
         </faultName>
         </Conditions>
         <Actions>
    <Action id="ora-action-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>10</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    <exponentialBackoff/>
    </retry>
    </Action>
         <Action id="ora-rethrow-fault">
         <rethrowFault/>
         </Action>
    <Action id="ora-human-intervention">
         <humanIntervention/>
         </Action>
         <Action id="ora-terminate">
         <abort/>
         </Action>
         </Actions>
    </faultPolicy>
    </faultPolicies>
    Fault-binding.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="3.0"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!--composite faultPolicy="CustomerSearchPIPPolicy"/-->
    <component faultPolicy="CustomerSearchPIPPolicy">
    <name>XXXXXXXXXXProcess</name>
    </component>
    </faultPolicyBindings>
    Exception
    Message     javax.xml.rpc.soap.SOAPFaultException: Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.
    Supplemental Detail     at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
    at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
    at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
    at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
    at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:233)
    at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:194)
    at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:485)
    at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:528)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Please suggest me, what else i can do.. this is heppening only in case of retryAction. except this every thing workin but as per requirement i have to use retry Action.

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

  • 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

  • Fault policy is not working in BPEL Process

    Hi All,
    I am handling A Fault (remoteFault) thrown by Throw Activity in BPEL process using Fault policies. For this I have Created two xml file called fault-policies.xml and fault-bindings.xml and kept them in the same directory as in Composite.xml file. But policies are not getting applied . Is there any configiration or setting is required for this. I have followed the same syntax as given in Soa developer guide which is available in JDeveloper Help.
    Thanks & Regards
    Yogendra Rishishwar
    9867927087

    Hi ,
    I am sending code for both file .
    These files are available in same directory in which composite.xml present. I am throwing Fault using Throw activity. It is also not working in case of web service invocation. I would like to know whether any configuration or setting is required in any other file in addition to fault-policies.xml anf fault-bindings.xml.
    Thanks & Regards
    Yogendra Rishishwar
    <?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:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    - <condition>
    - <!-- <test>$fault.code="WSDLReadingError"</test>
    -->
    <action ref="ora-terminate" />
    </condition>
    </faultName>
    - <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:FaultVar">
    - <condition>
    - <!-- <test>$fault.code="WSDLReadingError"</test>
    -->
    <action ref="ora-terminate" />
    </condition>
    </faultName>
    </Conditions>
    - <Actions>
    - <!-- Generics
    -->
    - <Action id="ora-terminate">
    <humanIntervention />
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    2.
    <?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" />
    </faultPolicyBindings>

  • Test Conditions in BPEL Fault Policy

    Per the ORacle 10.1.3.3 SOA Suite techical document, under the Fault Policy Framework section you can use an XPath expression in the <test> section of a fault policy. The example provided is +<test>$fault.code/code="WSDLReadingError"</test>+
    Instead of using an equals sign, I am trying to figure out the syntax to use a "contains" or "starts-with" expression. I want to filter out a particular remoteFault using the "summary".
    I have tried:
    +<Conditions>+
    +          <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">+
    +               <condition>+
    +*<test>contains($fault.summary/summary,"exception on JaxRpc")</test>*+      
    +<action ref="ora-retry"/>+
    +               </condition>+
    +          </faultName>+
    +     </Conditions>+
    +     <Actions>...+
    but this does not seem to work.
    Anyone know what "tests" are possible, and\or have used a "contains" expression in their Fault Policy?
    Thanks in advance,
    Eric
    Example of the fault that I am trying to "catch".
    +<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">+
    +<part name="code">+
    +<code>ESBMessageProcessingFailed</code>+
    +</part><part name="summary"><summary>exception on JaxRpc invoke:+
    start fault message:
    +801 Error validating amount. Must be numerical and greater than 0 [000]+
    +:end fault message</summary>+
    +</part><part name="detail"><detail>null</detail>+
    +</part></remoteFault>+

    I did try to add namespace but it still didn't catch the fault.
    I contacted Oracle support and they indicated that the syntax is: $fault.part/<xpath expression>
    So for my purposes I needed to put: <test>$fault.summary/contains(summary, "xyz")</test>
    HOWEVER this did not work. We recontacted Oracle and this time they admitted there is a bug that they will document. Only = or != can be used at this time.
    Thanks for all who responded. I'm closing this question.
    For reference, here's a list of what I tried:
    The following did NOT catch my fault
    <test>$fault.summary/contains(summary, "JaxRpc invoke")</test>      
    <test>$fault.summary/contains(summary, 'start fault message:')</test>     
    <test>$fault.code/contains(code, "ProcessingFail")</test>           
    <test>$fault.code/contains(code, "ESBMessageProcessingFailed")</test>
    <test>$fault.code/contains(code/code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/contains($fault.code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/contains($fault.code/code, "ESBMessageProcessingFailed")</test>     
    <test>$fault.code/code/contains(code, "ESBMessageProcessingFailed")</test>          
    <test>$fault.code/code/contains($fault.code/code/, "ESBMessageProcessingFailed")</test>     
    <test>$fault.code/code/contains(code/code/, "ESBMessageProcessingFailed")</test>           
    <test>$fault.code/contains(/remoteFault/part[1]/code/, "ESBMessageProcessingFailed")</test>     
    <test>contains($fault.code/code,"ESB")</test>           
    <test>contains($fault.summary/summary,"ESB")</test>     
    <test>contains($fault.summary, "ESB")</test>          
    <test>contains($fault.summary/summary, &#xD;)</test>           
    <test>xp20:matches($fault.summary/summary,'.*fault message.*')</test>      
    <test>xp20:matches($fault.summary/summary,'*fault message*')</test>     
    <test>not(xp20:matches($fault.summary/summary,'.*xyz.*'))</test>          
    <test>true()</test>

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

  • What is the "catchAll for all faults" equivalent in fault-policy.xml

    Hi
    This is regarding the catchAll equivalent tag in fault-policy.xml file
    fault-policy.xml has two sections - Conditions & Actions
    In Conditions, you'll define several <faultName name="XXX"> and corresponding <condition>, <test> & <action ref="">.
    But what I want is, how do you define a condition for all Fault types (something like a catchAll activity)?
    Lets say i need a single condition for all faults, so i want to say
    <conditions>
    <faultName name=*"ALL_FAULT_TYPES"*>
    <condition>
    <!--<test> -- i dont give any test condition here, so that it is applicable for all conditions for this fault type -->
    <action ref="ora-human-intervention">
    </condition>
    </faultName>
    </conditions>
    I've searched documentation, blogs but could not find any.
    Only thing i could find is, if we dont give any <test> tag, that means it is like a catchAll for that particular faultName. I need a similar one, but for all faults.
    Appreciate your response.
    Regards
    RaviKiran.
    Edited by: kiransaravi on Oct 16, 2012 12:39 AM
    Edited by: kiransaravi on Oct 16, 2012 12:40 AM

    Hi Ronald Van,
    what do you mean by this statement .
    Mind: the fault-policy framework catches faults in invocations of (external) services from BPEL, Mediator, etc. Internal BPEL faults such as errored assign activities are >not caught.Is it like faults generated while invoking only will go to faultpolicies ?
    I want to generate a email in case of faults to notify the customer. faultpolicies is working good for remote and binding fault and i am generating mail using java. but in case of selection failure it is not referring to fault policies. So Is generating a email from catchall block is the only solution for this or is there any other way.The problem with catch all block is that the instance state will be completed and my monitoring is affected. I want to generate a email and the process should be in running state . Is there any way?
    Please suggest .
    Thanks in Advance
    regards,
    Raju

  • Some problems in finding answers of interview questions Oracle SOA 11g

    hi
    These questions were asked from me in an interview. could someone please help me to get the answers?
    Q1: While using a file adapter if we have declared an elements schema length as 100 and file reading the file adapter that element contains 120 characters, then what will happen ? Is there any way to read that file?
    Q2: In a BPEL process there is a partner link which is invoked more than once in this BPEL. While creating assertions in Test suit for this composite how we will write assertions for this partener link?
    Q3: In a Flow activity if we have added 2 assign activities in each branch, then will we really have performance improvement as compared if we use them serially?
    Q4: In OSB how to restrict the no of messages coming to Proxy service?
    Q5: in OSB how to use dynamic URL of business service? (we will get to know the url at rum time or we have to create url at runtime)
    Q6: While using fault policy framework if have set the retry count as 3. Now when the retry count is exhausted then how this fault will be clost.faulted or open.faulted?
    Q7: can we have two service bindings in one composite if there is only one BPEL process in that composite?
    Q8: Q: If we need to validate any message in OSB after pipeline stage according to its destination
    thanks in advance

    John
    Please check these links and may answers some of your questions
    http://www.sap-img.com/business/sap-bw-interview-questions.htm
    http://www.techinterviews.com/?p=184
    http://rapidshare.de/files/3829216/Bw_Interview_Questions.pdf.html
    http://groups.ittoolbox.com/archives/archives.asp?l=sap-career&i=671624
    Hope this helps
    Thnaks
    Sat

  • 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 policy files in MDS repository is not working 11g

    Hi All,
    I have created my fault policy and fault bindings file and tested in my local project. It worked fine.
    To make it available in MDS,
    I added the files under JDeveloperHome/jdeveloper/integration/seed/apps/faulthandling
    I deployed this MDS repository to my server by the below method.
    I created a new generic application, then a generic project, to which I added a new Deployment Profile of type JAR file.
    To the JAR file, I added my folder in which the policy files exist. I created a SOA bundle from the ‘Applications’
    Then I deployed the project to my server finally.
    For all these things I refferred to
    http://www.orafmwschool.com/soa-11g-mds/
    Now in my adf-config.xml I have made changes as follows.
    <metadata-store-usage id="mstore-usage_2">
    <metadata-store class-name="oracle.mds.persistence.stores.file.FileMetadataStore">
    <property value="D:\StudyForInstalling\SOA11gHome\jdeveloper\integration" name="metadata-path"/>
    <property value="seed" name="partition-name"/>
    </metadata-store>
    </metadata-store-usage>
    Then in my composite.xml I have,
    <property name="oracle.composite.faultPolicyFile">oramds:/apps/faulthandling/fault-policies.xml</property>
    <property name="oracle.composite.faultBindingFile">oramds:/apps/faulthandling/fault-bindings.xml</property>
    I hav shutdown the partnerlink service.
    Now, I can see remote exception while executing. My fault policy files are not executing.
    In the same apps/ I have my PurchaseOrder.xsd file. When I tried importing the schema to my project from the mds, it is working fine.
    I used like this in my wsdl.
    <import namespace="http://www.order.org" schemaLocation="oramds:/apps/faulthandling/PurchaseOrder.xsd" />
    Why is my faultpolicy file not working on MDS?  But, if pput the file on the source code this working fine, but get the policy to source not from MDS?
    Help me

    It could mean that the location for MDS in the code isn't correct.
    Can you re-verify the path provided for MDS?

  • Registering External Fault Policy(s) with a Composite in SOA 11g

    Hi
    I was wondering whether it is possible to register more than one external fault policy with a composite. I have loaded some fault policies into my database backed MDS store. I have added a fault-bindings.xml file locally to teh composite to indicate which components I want to use which policy. this file resembles:
    <composite faultPolicy="bpelSynchronousProcessingFaults"/>
    <component faultPolicy="mediatorSynchronousProcessingFaults">
    <name>MediatorRouting</name>
    </component>
    I have also added to the composite.xml file the respective imports / properties to identify the location of the fault policy files and the fault bindings. These resemble:
    </service>
    <property name="oracle.composite.faultPolicyFile">oramds:/apps/fault-policies/fault-policies-med-sync.xml</property>
    <property name="oracle.composite.faultPolicyFile">oramds:/apps/fault-policies/fault-policies-bpel-sync.xml</property>
    <property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>
    <component name="MediatorRouting">
    For a test I have the BPEL component using one and the mediator component using another, both within the same composite. Depending on the order of the 2 properties shown above, only one is registered. This being the second one.
    Is it possible to register more than one policy in this way? I have been unable to get both working at the same time. Each works independently if I only register one of them. I want keep the fault policies external to the composites to allow them to be re-used appropriately across composites within an SOA project
    My thinking is, in order to be able to have differing policies effecting different components within a composite i'd have thought it would have been possible to define more than one external policy for a composite. However it appears this is not the case as it only registers or atleast works with the last policy in an import. Also placing the files locally within the composite with differing names has no impact.
    Therefore i'm assuming (unless I have configured these incoorectly) there is no option to have multiple fault policies for a composite. Therefore there is no ability to define a different policy per component within a composite
    Kind Regards
    Dave

    Using the fault binding attach your fault policy to particular component. See example below.Use the tag  <component faultPolicy="ServiceFaults">
    <?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="ServiceFaults">
      <name>Component1</name>
      <name>Component2</name>
      </component>
      <!-- Below listed component names use polic CRM_SeriveFaults -->
      <component faultPolicy="CRM_ServiceFaults">
      <name>HelloWorld</name>
      <name>ShippingComponent</name>
      <name>AnotherComponent"</name>
      </component>
      <!-- Below listed reference names and port types use polic CRM_ServiceFaults
    -->
      <reference faultPolicy="CRM_ServiceFaults">
      <name>creditRatingService</name>
      <name>anotherReference</name>
      <portType
    xmlns:credit="http://services.otn.com">credit:CreditRatingService</portType>
      <portType
    xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/insert/">db:insert_
    plt</portType>
      </reference>
      <reference faultPolicy="test1">
      <name>CreditRating3</name>
      </reference>
    </faultPolicyBindings>

  • SOA BPEL 11g (11.1.1.3.0) - Using encapsulated retries in fault-policy file

    Hi,
    We are using oracle SOA suite 11g (11.1.1.3.0)
    I'm trying to configure a fault-policy file so that it first retries 20 times every 20 secs, then reties 20 times every 10 minutes, then retries 23 times every hour, then retries 24 times every 6 hours and if the fault persists call a java action to send an email and then go to human-intervention. It seems however that only the first retry is executed. The rest ones are ignored and the action following the first retry failure is the Java Action. The fault-policy is as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="0.0.1" id="TransferResponsibilityRequestProcessFaults"
    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:freeze="http://rom/cosmote/bpel/webservice/util" name="freeze:BpelWSFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:retry="http://rom/cosmote/bpel/webservice" name="retry:PendingRequestsFault">
    <condition>
    <action ref="ora-retry-20sec"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry-20sec">
    <retry>
    <retryCount>10</retryCount>
    <retryInterval>20</retryInterval>
    <retryFailureAction ref="ora-retry-10min"/>
    </retry>
    </Action>
         <Action id="ora-retry-10min">
    <retry>
    <retryCount>10</retryCount>
    <retryInterval>600</retryInterval>
    <retryFailureAction ref="ora-retry-1hour"/>
    </retry>
    </Action>
    <Action id="ora-retry-1hour">
    <retry>
    <retryCount>23</retryCount>
    <retryInterval>3600</retryInterval>
    <retryFailureAction ref="ora-retry-6hour"/>
    </retry>
    </Action>
         <Action id="ora-retry-6hour">
    <retry>
    <retryCount>24</retryCount>
    <retryInterval>21600</retryInterval>
    <retryFailureAction ref="ora-java"/>
    </retry>
    </Action>
    <Action id="ora-java">
    <javaAction className="gr.cosmote.bpel.util.JavaActionInCaseOfRetryFails"
    defaultAction="ora-human-intervention">
    <returnValue value="RETURNED" ref="ora-human-intervention"/>
    </javaAction>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    Is retrying with various intervals only done by using the tag <exponentialBackoff/>?
    Thanks for any response.

    I had a similar requirement, although not as elaborate as yours. After I failed to figure it out myself I filed a SR. Basically, you cannot restart a retry block after the first execution to avoid an infinite loop.
    If you need to send the e-mail after the 23rd hour, why not just retry until the 23rd hour and send an e-mail?

Maybe you are looking for