Multiple actions for same condition in fault-policies.xml

All,
I have a requirement where I need to perform the following steps when a remote/binding/run-time fault occurs:
1. Log the fault details into the DB (performed in the catch block)
2. Email the fault details to the Admin (performed in the catch block)
3. Recover the process manually in the EM console by performing a <action ref="ora-human-intervention"/>
Hence, I would assume I would need to re-throw the fault first to the catch block first and then manually intervene:
<faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
name="bpelx:bindingFault">
<condition>
<action ref="ora-rethrow-fault"/>
</condition>
<condition>
<action ref="ora-human-intervention"/>
</condition>
</faultName>
I also reversed the order to manually intervene first and then re-throw the fault but that too isn't working.
But it does not perform both these actions. At any given point, only one action is performed for a given condition. How do I achieve both a re-throw and a manual intervention actions for the same fault condition?
Thx!

I had a similar requirement recently - almost exactly the same.
There are a couple of ways you could do this:
1) Use a Java Action Fault Policy to chain the event actions - http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/bp_faults.htm#sthref1013
2) Use assertions on the invoke partnerlink (Synchronous) or reply (asynchronous).
I did get this working but it was quite tricky.

Similar Messages

  • How to stop this multiple entry against same condition type in pricing

    My client is using manual condition type for the basic price "ZBPR". Now system allowing multiple entry against this condition type in the pricing screen during order creation i.e in the first line if we put ZBPR 00 , in the second line system allowing to put another value against same ZBPR say for example 2000 & doing all subsequent calculations on the basis of 3000 .which is not at all acceptable by my client .Please suggest how to stop this multiple entry against same condition type

    You have to make the condition type as Mandatory and not manual.
    If you are entering many condition records of the ZPR0 then the latest entry will be taken for further processing for subtotal rebate and total price.
    For all the other entered condition records will have yellow traffic signal which is not active.
    you can assign a routine with the help pf your abaper...
    In the Transaction VOFM  define a requirement such that
    you condition type takes value only one at the time of order entry.
    regards,
    Amlan Sarkar

  • Creating multiple profiles, using unified profile types, to store multiple values for same properties

    Hi All:
    I am trying to create multiple profiles, using unified profile types, to
    store multiple values for same properties. Here my intention of using
    'unified profile types' is to create multiple profiles (to store multiple
    values for a property). All the properties are stored in the same database
    maintained by Personalization server. Also, I am trying to use the same
    'USER' ejb as profile class/home/pk/jndi.
    The scenerio is,
    define unified profile types (Business, Vacation) using Personalization
    admin tools, using com.beasys.commerce.axiom.contact.User,
    com.beasys.commerce.axiom.contact.UserHome,
    com.beasys.commerce.axiom.contact.UserPk,
    com.beasys.commerce.axiom.contact.User for Profile Class, Home, Pk class,
    JNDI name respectively.
    Define Property set 'HotelCommerce' with property
    HotelProp as single, restricted, text (valid values Single, Double)
    Now you can use the attached jsp files to login as a user and try to set the
    property value for HotelProp for each profile. As per my understanding, I
    was expecting that I can set different values for the property 'HotelProp'
    for each profiles. But unexpectedly, all the profiles get the same value.
    Question. is it the correct behavior? if yes, how can I achieve this
    functionality?
    if not, do you see any problem in my scripts?
    your answer asap is appreciated. we need to make decision on using
    Personalization server v/s developing our own Personalization server!!!:)
    thanks,
    -rajesh
    PS: I have tried 'Unified Profile Example' type too, but that did not work.
    [propsettest.jsp]
    [home.jsp]

    I am trying to create multiple profiles, using unified profile types, to
    store multiple values for same properties. Here my intention of using
    'unified profile types' is to create multiple profiles (to store multiple
    values for a property). All the properties are stored in the same database
    maintained by Personalization server. Also, I am trying to use the same
    'USER' ejb as profile class/home/pk/jndi.Hello Rajesh,
    This is not the purpose of the UUP. The UUP is used to allow existing
    database schemas to be aggregated with the existing Weblogic Personalization
    Server database schema to provide a single, customized user profile with which
    to maintain the user properties (
    http://e-docs.bea.com/wlcs/p13n/users.htm#1068901 )
    If you want to have properties that change value based on some "profile" or
    classification of a user, then you should use classifier rules to change the
    user from "OnVacation" to "AtWork" or "AtHome". You can use these classifier
    rules to select content for the user or conditionally execute logic (
    http://e-docs.bea.com/wlcs/p13n/rules.htm )
    Ture Hoefner
    BEA Systems, Inc.
    1655 Walnut Street; suite 200
    Boulder, CO 80302
    www.beasys.com

  • Reg:Multiple UOMs for same item

    Hi,
    How to define the multiple UOMs for same item.And the item should be converted in one UOM.
    Iam using 9.0 PL.08

    Hi,
    Please check SAP help file:
    http://help.sap.com/saphelp_sbo900/helpdata/en/89/7ca0a701c64e4a97f4ea5a4edca8b2/content.htm?frameset=/en/44/c4c1cd7ca22e17e10000000a114a6b/frameset.htm
    Thanks & Regards,
    Nagarajan

  • How to avoid multiple listing for same artist?

    How to avoid multiple listing for same artist?

    Sounds like there might be blanks in the artist name.
    For instance "Lou Reed" and "Lou Reed_" will not match.
    (Pretend the underscore _ is a blank).
    Select all the Lou Reed songs, Get Info, and type "Lou Reed" in the artist field. That should fix it.

  • Facing issue while handling faults using fault-policies.xml

    Hi All,
    Scenario: One Asynchronous Bpel is trying invoke the webservice. When the status of the webservice is "Down", the BPEL will throw "System fault : remoteFault"
    This fault will be handled by the fault-policies.xml.
    CustomFaultHandler.java : basically it will print data to audit-trail and send data to the JMS Queue.
    I am facing some issues , when i am trying to handle faults using fault-policies.xml.
    Issue1: Display warning message at time of deployment : Warning: Schema validation failed for fault-policies.xmlXML-24506: (Error) Identity constraint validation error: 'Key sequence not found in key reference'
    Issue2: CustomFaultHandler.java is able to print data to audit-trail but unable to send data to the Queue. and why the policy file getting executed at time of "Start of Invocation" and then it's showing "Invocation faulted" ?
    Audit-Trail Message:
    *===========*
    Started invocation of operation "process" on partner "RemoteService".Started invocation of operation "process" on partner "RemoteService".
    [Fault Recovery] Invoked handleBPELFault on custom java action class "com.CustomFaultHandler".
    Invoke1
    190002190002
    default/TestjavaAction!5.0*soa_fcb2a5dd-06a7-47f9-bb88-cab14d343856/TestBPEL
    190002
    Faulted while invoking operation "process" on provider "RemoteService". Faulted while invoking operation "process" on provider "RemoteService".
    fault-policies.xml:
    *==========*
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="ErrorHandlingModelr"
    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-java"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-java">
    <javaAction className="com.CustomFaultHandler"
    defaultAction="ora-terminate">
    <returnValue value="Manual" ref="ora-abort"/>
    </javaAction>
    </Action>
    <Action id="ora-abort">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    fault-bindings.xml:
    *===========*
    <?xml version="1.0" encoding="windows-1252" ?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <component faultPolicy="ErrorHandlingModelr">
    <name>TestBPEL</name>
    </component>
    </faultPolicyBindings>
    Warning Message when trying to deploy the composite to the server :
    =============================================
    Warning: Schema validation failed for fault-policies.xmlXML-24506: (Error) Identity constraint validation error: 'Key sequence not found in key reference'
    Error Message from server:
    *==============*
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Fault not handled.
    failure to handle a fault thrown from a scope, by any blocks in the scope chain.
    This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope.
    A top-level fault handler should be added to the flow to handle faults not caught from within the flow.
    This error contained an exception thrown by the message handler.
    Check the exception trace in the log (with logging level set to debug mode).
    ORABPEL-05002
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Fault not handled.
    failure to handle a fault thrown from a scope, by any blocks in the scope chain.
    This exception occurred because the fault thrown in the BPEL flow was not handled by any fault handlers and reached the top-level scope.
    A top-level fault handler should be added to the flow to handle faults not caught from within the flow.
    This error contained an exception thrown by the message handler.
    Check the exception trace in the log (with logging level set to debug mode).
    at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:205)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:88)
    at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:64)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at com.collaxa.cube.engine.dispatch.Dispatcher$ContextCapturingThreadFactory$2.run(Dispatcher.java:850)
    at java.lang.Thread.run(Thread.java:662)
    Please help..
    Thanks in Advance
    Edited by: Sharmistha Ghosh on May 16, 2012 12:37 PM

    My SOA suite version is 11.1.1.7 and i was getting the same warning  while compiling the Composite in JDeveloper. To fix it update your fault-policy.xml
    Change it to
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <faultPolicy version="0.0.1"
                     id="BPELProcessV1_Faults"
                     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">
    And it will solve the issue.

  • How to careate Fault Policies.xml file in J Developer.

    Hi Friends,
    I want to handle Mediator Exceptions for that i need to create fault policies.xml file and i am new for mediator..can you Explain How to create fault policies.xml in Jdeveloper ...May i know what's the steps to folllow.. and i refered http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/med_faulthandling.htm#BABBGIDE
    this link also but i didn't get from that..?

    There is no UI support to create fault-policies.xml. One has to create it manually based on the schema defined in the doc(the link you posted). You can see the sample file here - http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/med_faulthandling.htm#CHDFAEEF.
    -Sandeep

  • How to print multiple footers for each page in RTF template xml report.

    Hi,
    How to print multiple footers for each page in RTF template xml report.
    i am able to print ( two sets ) ...
    up to last page ( one template ) and for last page ( another template).
    i want to change the footer information based on the group value printed in the report ( it might be 5 to 6) In every report run.. can you please check and let me know do we have any feasibility to achieve this.
    Thanks in advance.
    Regards,
    KAP.

    You can remove all other logic, like last page only contents (start@last-page:body), etc and section breaks if any you have inserted manually.
    Just have for-each@section logic.
    It would be difficult for me to guess what you have done without looking at your RTF or describing here.

  • How can I combine multiple listings for same genre on iTunes 11?

    When I downloaded the newest iTunes version 11, I suddenly had multiple listings for the same genre. I literally have 63 genre listings for "Trance"; 4 listings for "Hip-Hop/Rap" and a few others. There was obviously not a problem with the old iTunes version as they were all grouped together. I do get music from several sources but I have no idea how to combine all my "Trance" listings into one. It takes longer to scroll through the "Trance" genres than the rest of my genres combined. I tried to individually change one the "Hip-Hop/Rap" listings by using the "Get Info" tab and typing in the genre until iTunes can autofill the rest but the problem remains. Any ideas how to combine all these into one genre without compromising the genre name? Thanks
    Mac OS X Version 10.6.8 Snow Leopard

    I believe the closest you can come is look at your songs in Songs.  There you can sort by albums.
    The album view does not contain a list view any longer.

  • Finalize() method being called multiple times for same object?

    I got a dilly of a pickle here.
    Looks like according to the Tomcat output log file that the finalize method of class User is being called MANY more times than is being constructed.
    Here is the User class:
    package com.db.multi;
    import java.io.*;
    import com.db.ui.*;
    import java.util.*;
    * @author DBriscoe
    public class User implements Serializable {
        private String userName = null;
        private int score = 0;
        private SocketImage img = null;
        private boolean gflag = false;
        private Calendar timeStamp = Calendar.getInstance();
        private static int counter = 0;
        /** Creates a new instance of User */
        public User() { counter++;     
        public User(String userName) {
            this.userName = userName;
            counter++;
        public void setGflag(boolean gflag) {
            this.gflag = gflag;
        public boolean getGflag() {
            return gflag;
        public void setScore(int score) {
            this.score = score;
        public int getScore() {
            return score;
        public void setUserName(String userName) {
            this.userName = userName;
        public String getUserName() {
            return userName;
        public void setImage(SocketImage img) {
            this.img = img;
        public SocketImage getImage() {
            return img;
        public void setTimeStamp(Calendar c) {
            this.timeStamp = c;
        public Calendar getTimeStamp() {
            return this.timeStamp;
        public boolean equals(Object obj) {
            try {
                if (obj instanceof User) {
                    User comp = (User)obj;
                    return comp.getUserName().equals(userName);
                } else {
                    return false;
            } catch (NullPointerException npe) {
                return false;
        public void finalize() {
            if (userName != null && !userName.startsWith("OUTOFDATE"))
                System.out.println("User " + userName + " destroyed. " + counter);
        }As you can see...
    Every time a User object is created, a static counter variable is incremented and then when an object is destroyed it appends the current value of that static member to the Tomcat log file (via System.out.println being executed on server side).
    Below is the log file from an example run in my webapp.
    Dustin
    User Queue Empty, Adding User: com.db.multi.User@1a5af9f
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    User Dustin destroyed. 0
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    User Dustin destroyed. 1
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    User Dustin destroyed. 2
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    User Dustin destroyed. 3
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    User Dustin destroyed. 4
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    User Dustin destroyed. 5
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    User Dustin destroyed. 6
    Joe
    USER QUEUE: false
    INSIDE METHOD: false
    AFTER METHOD: false
    User Dustin pulled from Queue, Game created: Joe
    User Already Placed: Dustin with Joe
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    User Dustin destroyed. 7
    INSIDE METHOD: false
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    User Dustin destroyed. 9
    User Joe destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    User Dustin destroyed. 9
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    INSIDE METHOD: true
    INSIDE METHOD: false
    USER QUEUE: true
    INSIDE METHOD: false
    INSIDE METHOD: false
    It really does seem to me like finalize is being called multiple times for the same object.
    That number should incremement for every instantiated User, and finalize can only be called once for each User object.
    I thought this was impossible?
    Any help is appreciated!

    Thanks...
    I am already thinking of ideas to limit the number of threads.
    Unfortunately there are two threads of execution in the servlet handler, one handles requests and the other parses the collection of User objects to check for out of date timestamps, and then eliminates them if they are out of date.
    The collection parsing thread is currently a javax.swing.Timer thread (Bad design I know...) so I believe that I can routinely check for timestamps in another way and fix that problem.
    Just found out too that Tomcat was throwing me a ConcurrentModificationException as well, which may help explain the slew of mysterious behavior from my servlet!
    The Timer thread has to go. I got to think of a better way to routinely weed out User objects from the collection.
    Or perhaps, maybe I can attempt to make it thread safe???
    Eg. make my User collection volatile?
    Any opinions on the best approach are well appreciated.

  • Multiple Values For one Condition in Choose From List

    I have used one Business Partner Choose From List in my form but i want to give condition in that choose from list on GroupCode .But the condition will have multiple values like 100,102,104 then how i will write the code to incorporate multiple values for one single condition.

    Hi,
    Check this thread
    How to set a Multiple condition in a single CFL
    Hope that helps,
    Vasu Natari.

  • Multiple entries for same apps showing next to 'Open With' in contextual menu since last backup

    I did a back up of my MBPs internal drive recently, using Carbon Copy Cloner - since then there are multiples of the same icons for all apps under 'Open With' in the contextual menu. I seem to remember there being a command line that could be entered in Terminal to fix this, but I can't find it anywhere.
    Can anyone help?

    Yes, LaunchServices. These are only cache files but can get corrupted. Launch /Utilities/Terminal and copy & paste this at the command line to rebuild LaunchServices: (be sure to copy the entire line it's a scroll)
    Code:
    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
    Then press return. Wait until terminal returns to the command line. Quit Terminal. After that, log out and back in or restart. Let us know

  • ME01 LSMW multiple record for same material issue.

    Hi Experts,
    I have an issue with multiple record for the same material and plant when I upload the data from the file.  Lets I have the records.
    Material        Plant              Start date      Enddate        Vendor          Porg.
    1     0010     20060101     99991231     2     0010
    1     0010     20060101     99991231     3     0010
    When I upload the above data there are 2 IDOCs created when I am using the method LSMW-IDOC method, but only last record is getting updated and the first one is not getting updated in ME01 souce list. But I am getting the success message for both IDOC in LSMW. So I am not sure how to fix this why only last record is updated and not other records??

    why do you have 2 idocs?
    wouldn't be 1 idoc with 2 items be more logical?
    1 record in structure E1EORDH
    and 2 records in structure E1EORDM
    I believe your 2 IDOCs get posted, but I think your 2nd Idoc overwrites the values entered from the first IDOC.

  • Skip lot across multiple batches for same material

    Hi,
    I am looking for a way to control skip lots across multiple batches for the same material.
    We need to do a quality check in production after a certain quantity produced (on a machine, for a material). My idea was to do skip lots (for GR)  until we reach a threshold (say 10.000 pcs) and then do an inspection for the next GR for that material.
    Any ideas how to set that up?
    Thanks for any hint
    Andreas

    Hi mergler,
    Ref to your query pls check this link Stock Posting for Skip Lots
    Thanks in advance

  • Multiple entries for same title in ADE title list

    I have 6 entries for the same title in the ADE title list.  All have the same date and time added.  All but one are blank in the "Last Read" column.  On my computer I have only 1 epub file for this title.  Why do I have multiple entries for the same title?  If I delete all entries except for the one that has a date and time in the Last Read column will that be okay -- will I still be able to access the book?

    Hi
    This is the normal effect of SAP DBSL SQL code translation.
    You can find a lot of post on SCN that will help you to understand this behavior...
    Regards
    About rsdb/prefer_join and rsdb_prefer_union_all
    634263 - Selects with FOR ALL ENTRIES

Maybe you are looking for

  • Aironet 350 Wireless Bridge Problem

    I have inherited a wireless link between two building that used a pair of Aironet 350 wireless bridges.  I say used because one took a lightning strike and is fried.  I need to see the configuration on the remaining bridge to set up the new bridge bu

  • CameraRoll MediaEvent.SELECT 1119 error in Flash CS5.5

    Hi, I've been struggling with this for a few days and have searched everywhere for a solution but haven't been able to  fix it. If anyone can give me any leads or suggestions to help fix this I will be eternaly grateful. I have made a simple app in F

  • How much is an ipad 3 screen replacement uk

    My son got new ipad for Christmas, only present from whole family I may add, he fell and cracked the screen any idea how much a replacement screen would be ?

  • Can I just make one back-up on time machine instead of making a new one every day/week?

    I am just wondering if it is possible to make just one back up early instead of it making new ones every week/month/year? Any help would be awesome! Thanks.

  • Calling Java Application

    How can i call a Java Application from another java App. eg., If my Java application is called MyApp and i would like call another java application from within it. One way could be by using "System". I would like to know if there is any other method