Fault management - ora-human-intervention - help

Folks,
I am playing with Fault management framework and everything went fine so far. However when I changed action to 'ora-huma-intervention' I am not seeing the desired output.
My version - 10.1.3.3
Here is my audit :
[2009/05/07 15:13:58] [FAULT RECOVERY] Marked Invoke activity as "pending manual recovery".
[2009/05/07 15:13:58] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown.More...
[2009/05/07 15:13:58] "BPELFault" has not been caught by a catch block.
[2009/05/07 15:13:58] BPEL process instance "3320518" cancelled
According to audit, invoke activity is marked to 'Pending manual recovery', but the last line shows process instance is cancelled. I believe instance must not be cancelled in this stage and it must appear under activities tab if this work correctly ...
Not sure if the problem is related,I see the below error in opmn log about the missing table 'wi_fault'.
The process domain was unable to update the fault entry for the activity "3320518-BpInv0-BpSeq0.3-2" from the datastore. The exception reported is: ORA-00942: table or view does not exist
Please check that the machine hosting the datasource is physically connected to the network. Otherwise, check that the datasource connection parameters (user/password) is currently valid.
sql statement: SELECT COUNT(*) FROM wi_fault WHERE cikey = ? AND node_id = ? AND scope_id = ? AND count_id = ?
Any guidance will be appreciated ...
Ron

That SQL error ORA-00942: table or view does not exist is caused because you haven't install the SQL scripts after performing the upgrade.
The scripts that need to be run can be found
E:\Oracle\product\soa\10.1.3\bpel\system\database\scripts
run the scripts that are relevant to your upgrade.
If you are running olite the SQL prompt is found
E:\Oracle\product\soa\10.1.3\bpel\bin\polsql.cmd
the fault management was introduced in 10.1.3.3 and requires these database changes.
Also make sure your JDev version is the same as SOA Suite version.
cheers
James

Similar Messages

  • Ora-human-intervention How to assign it defined user

    Hi All,
    I am working on fault handler framework in SOA composite. In fault-policies.xml, there is option to assign it for human intervention if any fault has been occured using below tag
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    But here there is no option, to which user you want to assign it. By default it is assigning to weblogic user(Administrator). Is there any way to assign it on run time. Means for some exceptions i want to assign it to user A and for some other i want to assign it to User B. Fault handler user names will be available in My bepl process.
    Please help
    Regards,
    Sunil

    Hi:
    I think that ora-human-intervention is at the Enterprise Manager level.
    So even if u want to assign it to an specific user, u will still need to enter to the EM, and manage the manual recovery from there. IS that what u r looking for?
    Or u are expecting a user to enter to the Worklist and manage this type of errors from there?
    thx
    best

  • SOA fault management framework doesn't work

    The following is my fault-policies.xml and fault-binding.xml. Both are located in the same folder as the composite.xml. I simulated a remote fault. The fault was not caught by the framework.
    I even re-started both admin server and soa managed server.
    I am using SOA 11.1.1.5
    1. fault-binding.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
    <composite faultPolicy="POProcessingFaults"/>
    </faultPolicyBindings>
    2. fault-policies.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1"
    id="POProcessingFaults"
    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>
    <!-- Step #1: Add your fault handler for remote fault here: -->
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension" name="bpelx:remoteFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    <!-- Step #2: Add your fault handler for binding fault here: -->
    <!-- Step #3: Add your fault handler for mediator faults here: -->
    </Conditions>
    <Actions>
    <!-- Step #4: Add the Action definition for handling mediator faults using custom java here:-->
    <!-- Custom Java Handler: Logs the fault details to a log file -->
    <Action id="my-java-handler">
    <javaAction className="soatraining.faulthandling.MyFaultHandler"
    defaultAction="ora-terminate" propertySet="myProps">
    <returnValue value="OK" ref="ora-rethrow-fault"/>
    </javaAction>
    </Action>
    <!-- Retry -->
    <Action id="ora-retry">
    <retry>
    <retryCount>4</retryCount>
    <retryInterval>2</retryInterval>
    <exponentialBackoff/>
    </retry>
    </Action>
    <!-- Rethrow action -->
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </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 MyFaultHandler customer java action -->
    <propertySet name="myProps">
    <property name="logFileName">myfaulthandler.log</property>
    <property name="logFileDir">c:\temp</property>
    </propertySet>
    <!-- Step #5: Add new property set for MyFaultHandler for logging Mediator faults here:-->
    </Properties>
    </faultPolicy>
    </faultPolicies>

    Please use the below files and let me know...
    fault-policies.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="bpelFaultHandling"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id = "ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id = "ora-retry">
    <retry>
    <retryCount>5</retryCount>
    <retryInterval>1</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref = "ora-rethrow-fault"/>
    </retry>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    fault-bindings.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="bpelFaultHandling"/>
    </faultPolicyBindings>
    Write two composites A and B . A is Asynchronous and B is Synchronous. Call B from A, just throw a remotefault from B; put the above two files in composite A in the folder where the composite.xml file resides.And also keep a catchALL block at the BPEL process level for the composite A. So when you execute A, The fault policies will come into play, try the same invoke for five times and rethrow the fault which will be caught by catchALL block in composite A and do something from A, either invoke back the caller or write some error message to the file or email or something else.
    Hope this helps...
    Thanks,
    N

  • 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 Fault Management and Notification

    Hi peers - has anyone successfully implemented Email Notification as part of a Fault Management Framework approach to their BPEL projects - i.e implemented the necessary entries in a fault-policies.xml file to allow an email notification to be sent as part of standard procedure? I acknowledge the custom Java approach, but I don't want to reinvent the wheel if someone has done it already.
    Any help much appreciated.
    Dennis R

    If anyone's interested - here is our solution. We've commented out some BPEL specific context handling as there is a problem with it at the moment - but this is a start.
    package au.com.abcde.bpel;
    // import com.collaxa.cube.engine.fp.BPELFaultRecoveryContextImpl;
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryContext;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryJavaClass;
    public class CustomFaultHandler implements IFaultRecoveryJavaClass {
    public void handleRetrySuccess(IFaultRecoveryContext iFaultRecoveryContext) {
    System.out.println("This is for retry success");
    handleFault(iFaultRecoveryContext);
    public String handleFault(IFaultRecoveryContext iFaultRecoveryContext) {
    Map faultProperties = iFaultRecoveryContext.getProperties();
    Properties properties = new Properties();
    properties.put("mail.smtp.host",
    ((List)faultProperties.get("host")).iterator().next().toString());
    properties.put("mail.smtp.port",
    ((List)faultProperties.get("port")).iterator().next().toString());
    Session session = Session.getDefaultInstance(properties, null);
    try {
    // BPELFaultRecoveryContextImpl bpelCtx =
    // (BPELFaultRecoveryContextImpl)iFaultRecoveryContext;
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(((List)faultProperties.get("from")).iterator().next().toString()));
    message.setRecipient(Message.RecipientType.TO,
    new InternetAddress(((List)faultProperties.get("to")).iterator().next().toString()));
    message.setSubject(((List)faultProperties.get("subject")).iterator().next().toString());
    message.setText("\n" +
    "A BPEL Process Instance has faulted.\n" +
    "Check the Instances tab in the SOA Composite console in order to resolve the problem.\n" +
    // "BPEL Composite/Instance: " + bpelCtx.getCompositeName() +
    // "/" + bpelCtx.getComponentInstanceId() + ".\n" +
    "Fault with Partner Link: " +
    iFaultRecoveryContext.getReferenceName() + ".\n" +
    "Composite Fault Policy: " +
    iFaultRecoveryContext.getPolicyId() + ".\n" +
    "This message was automatically generated, please do not reply to it.");
    Transport.send(message);
    } catch (MessagingException e) {
    e.printStackTrace();
    return "OK";
    and our fault-policies.xml looks like
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="StandardFaults"
    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>
    <!-- Fault if location port is not reachable-->
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <!-- Business faults here, if any-->
    </Conditions>
    <Actions>
    <Action id="ora-retry">
    <retry>
    <retryCount>5</retryCount>
    <retryInterval>4</retryInterval>
    <exponentialBackoff/>
    <retryFailureAction ref="java-fault-handler"/>
    <retrySuccessAction ref="ora-terminate"/>
    </retry>
    </Action>
    <!--
    <Action id="ora-replay-scope">
    <replayScope/>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    -->
    <Action id="java-fault-handler">
    <javaAction className="au.com.abcde.bpel.CustomFaultHandler"
    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>
    </Actions>
    <Properties>
    <propertySet name="properties">
    <property name="from">[email protected]</property>
    <property name="to">[email protected]</property>
    <property name="subject">BPEL Problem Notification</property>
    <property name="host">smtp.abcde.com.au</property>
    <property name="port">25</property>
    </propertySet>
    </Properties>
    </faultPolicy>
    </faultPolicies>

  • 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

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

  • 10.1.3.3 fault management to simplify our complex error hospital pattern

    We have designed an error hospital pattern on 10.1.3.1, this consists of :
    1. A loop around key components of each process which may fail and need retry (e.g. invokes, database operations)
    2. Within each error loop a fault handler, this catches faults as they are thrown and passes them onto another BPEL error handling process (with a nested fault handler in case this invoke fails which spits error out to a file), the error handler can reply with retry (loop around again) or cancel (exit loop), if no response is received an automated retry occurs
    3. An error service process which creates a human task for an error to be dealt with
    4. A web app which allows users to process the tasks created by the error service, user can inspect data, see fault detail and mainly just select to cancel or retry the failed operation (including multi select if for example hundreds of processes had hit the same error)
    This has been refined and is now operating nicely in production, but the development (items 1 and 2 above) and testing effort involved is high - frequently more than the actual business logic. In a 3GL this error handling would be simplified by having a nice reusable piece of code (proceudre or method call) that could go in the error handling loop, rather than putting a whole set of logic (invoke, pick, handling of faults in the error handling code, etc).
    I'm aware of the fault management framework in 10.1.3.3 which does a subset of our functionality, we are now looking back at the error hospital we have created and wondering if we could simplify. The main stumbing block I see with the fault management framework is that we need to decide whether to do an automated retry after some interval or whether to await human action, we want to do both, await human activity but if they don't action it retry the operation. I'm thinking that we could achieve everything that we have got by a slight manipulation of the error management framework, as follows :
    A. Define faults such that all faults cause human intervention.
    B. Create a daemon process which scans for activities requiring human intervention and automatrically triggers a rety after a configurable period (so that things like database errors will get auto retried)
    C. Adapt our web app to look for and operate on activities outstanding rather than workflow tasks.
    Questions:
    i) To support B/C above is there a java api this daemon can use or is it a question of updating the rdbms
    ii) Am I underestimating what can be done with the java action fault policy ?
    iii) To make our existing approach easier, is there a way of doing an invoke and pick operation actually within an embedded java routine to minimise the amount of code we have in each error handling block
    Hope this makes sense, thanks in advance - there seem to be a lot of knowledgeable people out there in this forum.

    Hi,
    The next blogs might be interesting for you. It addresses your questions.
    http://technology.amis.nl/blog/?p=2485
    http://www.it-eye.nl/weblog/2007/09/10/oracle-bpel-10133-fault-policy-management/
    Kind regards,
    Harm

  • JAVA API for human intervention in SOA 11g

    Hi all,
    what is the JAVA API that does work for human intervention fault-policies?
    Please help me in finding out this.
    Regards
    PavanKumar.M

    Hi,
    Workflow api
    http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10660/toc.htm
    Rules api
    http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10660/toc.htm
    Thanks,
    Raja

  • Force Human Intervention from BPEL catch all

    Hello! I am fairly new to SOA and ....
    I have a BPEL with a catch all and I would like to force the BPEL process to go into a human Intervention ( restartable ) state when this is hit. I have been looking at fault policies but the seem to only take affect when you inoke another service etc. They do work and set the process to humant intervention but when I use the Catch all etc. form inside the BPEL I cannot find how to force the BPEL to a human intervention state.
    What I need to do is that anytime the BPEL process fails to be able to restart it.
    Thanks for any help.

    Ok, so in this case the service call succeeded but the data caused a problem later.
    In this case I would try and make the processing logic able to gracefully handle the lack of data but I understand the use case now.
    Unfortunately in order to implement this it will be somewhat of a workaround.
    You could move all of your logic into a subprocess that throws a fault to the main process from its catch all. In the main process you could then use a fault policy to make the entire sub-process retryable.

  • Starting and stopping HADB without human intervention

    I'm trying to write an SMF manifest to bring my HADB databases up and down as part of the life cycle management of the box. However, the best I can do is:
    # hadbm stop myHADB -W /hadb/passwd
    This command will stop the database myHADB. 
    Type "yes" or "y" to confirm this operation, anything
    else to cancel:as if I typed out this long command BY ACCIDENT ????!!!!!!! arrrggg
    Anyway, anyone know how I might be able to automate a response to this silly question so that I can life cyle my HADB instances with a single command that does not require human intervention?
    Many Thanks,
    Steve Maring
    p.s. I can't help but think that whoever wrote the hadbm management tool came straight from Microsoft, where the practice is to give you screen pops asking you whether you want to do what you just asked it to do.

    hadbm takes yes & quiet as options on the command line. --yes will take yes as default for actions and thus wont prompt you for confirmation.
    HTH
    Dexthor.

  • Win 7 x64 Itunes and Quicktime Running in Task Manager nothing seen! Help

    Ok I'm running out of ideas- I' I have uninstalled multiple time various version of itunes. It upgraded to 10 automatically then a few days ago it wouldn't run. Looking in task manager itunes and intones helper are running. Thought a simple wipe and reinstall would solve it alas no. Been trying all week various reinstalls of different versions, all the same thing occurs, It appears to be a system wide fault. Disabled Bonjour enabled- no difference. Disabled all windows services aside form the apple ones - no difference. Started in safe mode- itunes refused to start. Gave up and reinstalled 7 and it worked until a reboot (and also it itunes store and ipod drivers for Win 7 x64 are not there) where the same probelm occured. Installed airport seeing if it would update the relevant dodgy files in Bonjour.
    Getting sick of finding why this is happening and I can't;t find where this bug is, and I've spent far too long trailing through the web trying to solve this and not one single one has worked so far!
    Please Help!!

    Sorry, Itunes+Quicktime the intaller neither of them will open (they appear to be running in task manager however). Downlaoding the sperate intaller for Quicktime, the installer on its own, then quicktime runs and opens.

  • LMS 4.0 Fault Management Module alert doesn't show CurrentUtilization

    Hi,
    I would like to know if there's a way to show CurrentUtilization percentage within the messages generated by the Fault Management Module in LMS 4.0
    EVENT ID                = 00008Z1
    TIME                    = S
    STATUS                  = Active
    SEVERITY                = Critical
    MANAGED OBJECT          = switch
    MANAGED OBJECT TYPE     = Switches and Hubs
    EVENT DESCRIPTION       = HighUtilization::Component=PORT-switch/11150 [Gi3/0/50] [---> TRUNK ];ComponentClass=Port;ComponentEventCode=1057;TrafficRate=5.2261432E7  BYPS;DuplexMode=FULLDUPLEX;UtilizationThreshold=40;MaxSpeed=1000000000;Type
    NOTIFICATION ORIGINATOR = Fault Management Module
    As you can see above CurrentUtilization percentage is not shown in Event Description section.
    Could someone help?
    Thank you!
    Massimiliano.

    To my knowledge nothing can be configured here.
    You have to take traffic rate and max speed and do the calculation yourself
    FAD! functioning as designed
    Cheers,
    Michel

  • LMS 4.2 Fault Manager Issue

    Hi All,
    We are seeing many Unidentified traps on the DFM for multiple devices. 
    274.              008ZETI      Active          InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:1 EnterpriseOid:.1.3.6.1.4.1.9       04-Feb-2015 01:59:28                    NA
    275.              008ZETG    Cleared      InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:1 EnterpriseOid:.1.3.6.1.4.1.9       04-Feb-2015 01:59:03                    NA
    276.              008ZETA     Active          InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:2 EnterpriseOid:.1.3.6.1.4.1.9.9.109.2            04-Feb-2015 01:58:22                    NA
    274.              008ZETI      Active          InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:1 EnterpriseOid:.1.3.6.1.4.1.9       04-Feb-2015 01:59:28                    NA
    275.              008ZETG    Cleared      InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:1 EnterpriseOid:.1.3.6.1.4.1.9       04-Feb-2015 01:59:03                    NA
    276.              008ZETA     Active          InformAlarm                   Mumbai_6509-1          Mumbai_6509-1: Unidentified Trap Generic Trap:6 Specific Trap:2 EnterpriseOid:.1.3.6.1.4.1.9.9.109.2            04-Feb-2015 01:58:22                    NA
    Regards,
    Channa

    Hi,
    The unidentified trap message in fault manager is expected when LMS receives a trap that is not in the list of traps that the fault manager is capable of processing.
    Here are the traps that fault manager can process:
    http://www.cisco.com/c/en/us/td/docs/net_mgmt/ciscoworks_lan_management_solution/4-2/user/guide/lms_monitor/lms_mnt/TrapFwd.html
    The SNMP traps are only processed by the fault manager and as per the document above the ones that will be identified are pre-defined and the list cannot be modified.
    Clearing an Unidentified Trap
    You can manually clear Unidentified Traps from LMS. To do this:
    Step 1 Select the Unidentified Trap and click Clear.
    A message appears prompting you to confirm the clearing.
    Step 2 Enter your user ID.
    This will be used as a reference to identify who cleared the Unidentified Trap.
    Step 3 Click OK to confirm.
    The Unidentified trap is cleared.
    To retain the trap click Cancel.
    - Ashok
    Please rate the post or mark as correct answer as it will help others looking for similar information

  • 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

Maybe you are looking for

  • How can I wirelessly drive my printer?

    I have an iMac 24" Intel running 10.5.1 and a G4 Powerbook running 10.4.10 connected to the internet via a Netgear DG 834G router. I also have an Airport Extreme Base Station, not currently used. Can I drive a Canon iP5000 printer by connecting it vi

  • Measuring speed of execution of loops

    Hi,           I wanted to know how to measure the speed of execution of each loop in case of a stached sequence structure. The loop basically has an input for steps for measurement of the Capacitance Voltage characteristics. Now, I was keen to know h

  • Repeating char  in qury output

    I have created query on a cube,see cube is at aggregated level andso we may get multiple values for a char A and that is right for the reason of key fields value differ. How to avoid such kind of probs for characteristics. We know the option to avoid

  • Take and delete a String from another String

    I have original input string= 111100001111 I need to Take for example the least 4 bits .... Output= 1111 and to be removed from the original input string so the original input string= 11110000  I am trying to make a generic one but the point is that

  • Change home page

    anyways how to change the homepage from page 1 to any page you want?