Fault Handling in Mediator

Hi,
We have a DBAdpater to retrieve the data and a mediator to invoke the DBAdapter. In cases like No Records we want to create a soap fault. So we implemented Mediator Java callout and overriden postRouting() to read the response message and create a soapfault.
[ we referred to blog http://technology.amis.nl/blog/6669/soa-suite-11g-introducing-mediator-java-callouts-for-debug-audit-and]
but when we tried creating SOAPFault and add it to the response message, while execution , the response message is being parsed and seeing the fault it is throwing the exception below:
java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException:
This is a fault.
at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestMode
l.java:575)
at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381)
at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMetho
dBinding.invoke(MethodExpressionMethodBinding.java:53)
at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMet
hodBinding(UIXComponentBase.java:1259)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand
.java:183)
I found that if exception from mediator is not handled, then the exception is throw as system fault as shown above.
So we tried implementing external fault handling - by creating fault-policies.xml and fault-bindings.xml and a java callout.
fault-bindings.xml
<?xml version=”1.0" encoding=”UTF-8"?>
<faultPolicyBindings version=”2.0.1" xmlns=”http://schemas.oracle.com/bpel/faultpolicy”>
<composite faultPolicy=”SOM_ServiceFaults”/>
</faultPolicyBindings>
fault-policies.xml
<?xml version="1.0" encoding="UTF-8"?>
<faultPolicies>
<faultPolicy version="2.0.1" id="SOM_ServiceFaults">
<Conditions>
<faultName xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" name="env:Fault"> <!-- Qname of Business/SOAP fault -->
<condition>
     <action ref="ora-custom"/>
</condition>
</faultName>
<faultName xmlns:medns="http://schemas.oracle.com/mediator/faults" name="medns:mediatorFault">
<condition>
<action ref="ora-custom"/>
</condition>
</faultName>
</Conditions>
<Actions>
<Action id=”ora-terminate”>
          <abort/>
     </Action>
<Action id="ora-custom">
<javaAction className="gm.som.FaultPolicyJavaAction" defaultAction="ora-terminate">
<returnValue value="ora-terminate" ref="ora-terminate"/>
</javaAction>
</Action>
</Actions>
</faultPolicy>
</faultPolicies>
But still getting the error.Appreciate any help on this.
Thanks in Advance,
Subhashini

Not exactly but doing it the other way around by copying the fault msg to output variable and check flag for the response in my initial requester process then throw fault accordingly.. didnt have much time as it was holding back my other deliverables
Thanks a lot for your time

Similar Messages

  • Fault handling for Mediator component

    I am trying to capture all the system and business faults of the composite and email the details to system groups. I am having issues with the fault policy file and get the following error. My Composite is made up of Web Services ---> Mediator ---->DBAdapter
    INFO: FaultPoliciesParser.parsePolicies ------->Begin Parsing of policy file
    <Jun 18, 2012 3:48:58 PM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Failed to recover the mediator fault.
    oracle.fabric.common.FabricException: Missing fault policy: TESTFaultPolicy
    at oracle.integration.platform.faultpolicy.RecoverFault.resolveToActionRef(RecoverFault.java:101)
    at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveToActionRef(FaultRecoveryManagerImpl.java:151)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoveryHandler.resolveToActionRef(MediatorRecoveryHandler.java:158)
    at oracle.tip.mediator.common.error.ErrorMessageEnqueuer.enqueue(ErrorMessageEnqueuer.java:174)
    at oracle.tip.mediator.dispatch.db.DeferredDBWorker.handleError(DeferredDBWorker.java:117)
    at oracle.tip.mediator.common.listener.DBWorker.process(DBWorker.java:114)
    at oracle.tip.mediator.common.listener.AbstractWorker.run(AbstractWorker.java:83)
    at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
    at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
    at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    I am attaching the following files
    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="TESTFaultPolicy">
    <Conditions>
    <faultName>
    <condition>
    <action ref="ora-java"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-java">
    <javaAction className="test.EmailFaultHandler"
    defaultAction="ora-human-intervention">
    </javaAction>
    </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">
    <composite faultPolicy="TESTFaultPolicy"/>
    <component faultPolicy=" TESTFaultPolicy">
    <name>HandleRealTimeRequests</name>
    </component>
    </faultPolicyBindings>
    I am yet to figure out how to capture the fault and email to the groups in EmailFaultHandler.java file below
    EmailFaultHandler.java_
    package test;
    import com.collaxa.cube.engine.fp.BPELFaultRecoveryContextImpl;
    import java.util.Map;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryContext;
    import oracle.integration.platform.faultpolicy.IFaultRecoveryJavaClass;
    public class EmailFaultHandler implements IFaultRecoveryJavaClass {
    public void handleRetrySuccess(IFaultRecoveryContext iFaultRecoveryContext) {
    public String handleFault(IFaultRecoveryContext iFaultRecoveryContext) {
    //Print Fault Meta Data to Console
    System.out.println("****************Fault Metadata********************************");
    System.out.println("Fault policy id: " + iFaultRecoveryContext.getPolicyId());
    System.out.println("Fault type: " + iFaultRecoveryContext.getType());
    System.out.println("Partnerlink: " + iFaultRecoveryContext.getReferenceName());
    System.out.println("Port type: " + iFaultRecoveryContext.getPortType());
    System.out.println("**************************************************************");
    //print all properties defined in the fault-policy file
    System.out.println("Properties Set for the Fault");
    Map props = iFaultRecoveryContext.getProperties();
    for (Object key: props.keySet())
    System.out.println("Key : " + key.toString() + " Value : " + props.get(key).toString());
    //Custom Code to Log Fault to File/DB/JMS or send Emails etc.
    return "Manual";
    Please suggest
    Thanks
    Edited by: user5108636 on 18/06/2012 00:20
    Edited by: user5108636 on 18/06/2012 00:20

    By the way, I managed to break through a little further. Now I am past this fault policy error. However, the java fault handler class is giving ClassNotFoundException. The way I added the java file (test.EmailFaultHandler) through JDeveloper in the composite project (Right click --> New ---> Java file). How do I add this to the classpath. I thought it automatically gets added to the SOA composite project classpath.
    Please suggest.
    INFO: FaultPoliciesParser.parsePolicies ------->Begin Parsing of policy file
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Warning> <oracle.soa.mediator.monitor> <BEA-000000> <Venkat:Inside Synchronized block with msg id :CCA40B60B9A911E1BF115F9190ABA14C>
    <Jun 19, 2012 10:58:01 AM EST> <Error> <oracle.soa.mediator.common.listener> <BEA-000000> <Enququeing to Error hospital successful...>
    <Jun 19, 2012 10:58:05 AM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Error while loading "test.EmailFaultHandler" java class specified for action "ora-java".>
    <Jun 19, 2012 10:58:05 AM EST> <Error> <oracle.soa.mediator.common.error.recovery> <BEA-000000> <Failed to recover the mediator fault.
    java.lang.ClassNotFoundException: test.EmailFaultHandler
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:43)
    at oracle.tip.mediator.common.error.recovery.CustomJavaHandler.execute(CustomJavaHandler.java:69)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoverFault.recover(MediatorRecoverFault.java:73)
    at oracle.tip.mediator.serviceEngine.MediatorFacadeService.recoverFault(MediatorFacadeService.java:988)
    at oracle.integration.platform.faultpolicy.RecoverFault.recoverAndChain(RecoverFault.java:161)
    at oracle.integration.platform.faultpolicy.RecoverFault.resolveAndRecover(RecoverFault.java:124)
    at oracle.integration.platform.faultpolicy.FaultRecoveryManagerImpl.resolveAndRecover(FaultRecoveryManagerImpl.java:123)
    at oracle.tip.mediator.common.error.recovery.MediatorRecoveryHandler.recover(MediatorRecoveryHandler.java:116)
    at oracle.tip.mediator.common.error.ErrorDBWorker.handleMessage(ErrorDBWorker.java:37)
    Thanks

  • Asynchronous Call Back Fault Handling through Mediator with Resequencer at Component Level

    Hello,
    As a part of an existing code extension we are introducing set of changes to the code to support new scenarios. The following are the composites involved in the end to end flow:
    1- Consumer_Mediator: A mediator composite with Resequencer enabled at the component level (With fault policy as human intervention in case of failure).
    2- BusinessServiceRouter_Mediator: A mediator composite - typical EBS in AIA - which routes messages to the provider components in BPEL and receive response in Synchronous pattern.
    3- BusinessServiceProvider_BPEL: A BPEL Process that is responsible for interacting with external Application and Provide return success response or throw failures to the EBS.
    Synchronous Interaction
    Typical Request Scenario is as follows:
    [Resequencer] ------------Consume------> [Consumer_Mediator] ----------Sync------> [BusinessServiceRouter_Mediator] -------------Sync---------->[BusinessServiceProvider_BPEL]
    1- First Message in the resequencer group is picked up.
    2- Mediator route the message to BusinessServiceRouter Route message and waits for the response.
    3- BusinessServiceRouter routes the message to the BusinessServiceProvider_BPEL Process and wait for response.
    4- BusinessServiceProvider_BPEL process makes successeful call to the External Application Service and is prepared to return Successful response.
    Typeical Response:
    Through a Synchronous flow, all instances are waiting for the response to commit the transaction, once the response comes back and routed back to the Consumer_Mediator one of two cases happen:
    1- Success: instance is Complete, and the next message in the resequencer group is processed.
    2- Failure: instance is marked as recovery needed and the next messages in the resequencer group are held off till the first message is recovered or aborted.
    New Requirement - Asynchronous Interaction
    A new Application Service is introduced and it can take up to 6/8 hours to process the request. Which means we need to change the interaction to Asynchronous request and Callback with the Provider long running BPEL Process that will interact with the BPEL process.
    Request in the new Code:
    [Resequencer] ------------Consume------> [Consumer_Mediator] ----------Sync------> [BusinessServiceRouter_Mediator] -------------Async--------->[BusinessServiceProvider_BPEL]
    Response in the new Code:
    1- Success: There is absolutely no issue here, it works fine and all instances are marked as complete.
    2- Failure in BusinessServiceProvider_BPEL. This is mainly the issue. When there is a failure that this BPEL process wants to throw. The following happens:
              -  BusinessServiceProvider_BPEL instance is marked as failure.
              - BusinessServiceRouter_Mediator instance is marked as failure.
              - Consumer_Mediator instance is marked as complete and the next message in the resequencer group gets processed - which is the main issue.
    Any Help or suggestion is much appreciated. Thanks.

    1. You can update the message payload when 'recovering' the faulted mediator instance for msg2 in EM console. So if it's a data issue, fix/update the data at the source, and do not trigger the service; instead, update the payload in the recovery page in EM console as needed and retry. This will be a manual activity only. I don't think there is any other easy approach/option/configuration available for this.
    2. Not sure if there is a direct option to automatically process suspended messages in a timed-out group once the missing message arrives. It needs a manual intervention where you 'Skip' to unlock the group from time-out and process further message. I think there are Resequencer APIs available that probably can be used to automate such error handling/recovery.

  • Mediator Fault Handling

    Hi ,
    I am trying to handle fault in a mediator . So I have an asynchronous mediator and  a synchronous mediator. I am invoking the synchronous mediator from asynchronous mediator.
    In order to , create a fault ., m shutting down the synchronous mediator. fault-policy.xml & fault-bindings.xml are as follows.
    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="2.0.1" id="FaultPolicyWS"
    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>
            <test>contains($fault.mediatorErrorCode,"TYPE_ALL")</test>
            <action ref="ora-terminate"/>
          </condition>
        </faultName>
      </Conditions>
      <Actions>
          <Action id="ora-terminate">
          <abort/>
        </Action>
        <Action id="ora-human-intervention">
        <humanIntervention/>
        </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">
    <component faultPolicy="FaultPolicyWS">
    <name>Mediator</name>
    </component>
    </faultPolicyBindings>
    In composite:
    <property name="oracle.composite.faultPolicyFile">fault-policies.xml</property>
    <property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>
    So when I am trying to test , I ma getting a state as "Recovery Needed"  .On clicking , I get two buttons: "Abort" and "Retry" where as it should have been terminated (aborted)  automatically.
    Any one pls?

    Hi,
    fault policies are only ways you can handle faults. No provision of catch blocks in mediator. Also, mediator fault policy only works when routing rule is parallel.
    Mails cannot be sent from Mediator directly, you will need custom java code to send mails using fault policies configured.
    Thanks,
    Durga

  • Transaction and Error handling in Mediator 11g

    Hi Experts/Gurus/All,
    We have following scenario in Mediators :-
    For Inbound Interfaces :-
    M1-->M2-->M3
    M1 calls M2 and M2 calls M3
    There are 3 mediators, Mediator#1(M1),Mediator#2(M2) and Mediator#3(M3)
    M1 performs a FIle Read and do a ABO-->OAGIS conversion
    M2 performs routing
    M3 performs a OAGIS -->ABO(JDE E1) conversion.
    Now,we are in middle to decide the Fault Handling Mechanism for this case.
    M1 is Asynchronous , M2 is Synchronous and M3 is also Synchronous.
    Question is :
    1. M1 will start a new Transaction,Do M1 will propogate the same transaction to M2 which,as being Synch,propogates the same transaction to M3 ?
    2. How will the commit and Roll back will be taken care of?
    3. What if M1 errors out?
    4. Whatif M2 errors out?
    5. What if M3 errors out?
    In question 3,4 and 5:
    What will happen will the Full Transaction ? If M3 erros out,would the Entire Transaction Propogated by M1 will be roll back?
    Also ,How about Error handling in this case:
    Do I need to create seperate fault-policy.xml and fault-binding.xml for M1,M2 and M3 ?
    Another Scenario is of OUTBOUND interfaces :-
    M1-->M2-->M3
    M1 calls M2 and M2 calls M3
    However , M1,M2 and M3 are all Asynchronous.
    In this scenarios how would I handle following :-
    1. If M2 Errors out,I need the entire Interface which comprises of M1-->M2-->M3 to roll back?
    2. If M3 Errors out,I need the entire Interface which comprises of M1-->M2-->M3 to roll back?
    3. Seperate Transactions means I have to create seperate fault-policy.xml and fault-mapping.xml to handle errors?

    Hi,
    You could create a package, and use the OdiSqlUnload to export the data into a flat file (csv) from snp_check_tab, then amend it. Then create an interface to load the data from the flat file to your tables, either via external tables or SQL Loader.
    Question is, why are you amending data going from source to target? there surely has to be something wrong with the Architecture (especially if you are getting errors in production). If you amend data, so that it is different in source as it is in target, then when it comes to regression testing, this will never match.
    The errors should go be fixed at source, and either you, or the business should have access to do so.
    Cheers
    Bos

  • How to handle Error Handling In Mediator.

    Hi guys,
    Accually my reqirement is need to handle Error exception in Mediator. I am new for Meditor.
    we read source file through Mediator and route the data to Database Table in betwen need to handle Error Handling...What type of Fault handling we can do here..? plese refer any solution and sample interface URL me....Thank you

    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/med_faulthandling.htm#CHDJAADA

  • How to register multiple stages in fault handler?

    Hi,
    I am trying to create multiple fault handlers for multiple CQL processors.
    I understand how to create one handler but when I am trying to add another osgi service to rgister anothet fault handler I get strange behaviot in theeclipse. The EPN disappears.Any advice?
    Another question - how do I register multiple stages to the same handler?

    Hi,
    I am trying to create multiple fault handlers for multiple CQL processors.
    I understand how to create one handler but when I am trying to add another osgi service to rgister anothet fault handler I get strange behaviot in theeclipse. The EPN disappears.Any advice?
    Another question - how do I register multiple stages to the same handler?

  • What are the different approaches to do Fault Handling?

    What are the different approaches to do Fault Handling?

    for uplodig data to non sap we have 2 methodes
    i) if u know bapi u will use lasm
    2) bdc
    but u mentioned so many records isthere
    best thing is u will uplode all record sto al11 using XI interface
    then u have to write bdc / lsmw  program
    beter to go for lsmw before that u will find bapi
    if u will unable to find bapi
    u have to create bapi and use it in lasmw
    ofter that u have schedule the lsmw program as a bockground
    then u have to create a job for it
    and release from sm 37
    then u have to moniter through bd87
    if u want to go through i will help u.
    if it is usefull to u pls give points
    Saimedha

  • Clarification needed in the Fault Handling Framework(Error Hospital)

    Hi,
    I need some clarification on Fault Handling Framework...
    Scenario:
    My BPEL Process is Asynchronous.(10.1.3.3.1) and I tryed to invoke the another BPEL Process( which is used to select the Fname from the table using DB Adapter) . In the Main BPEL Process I have the Fault handling Framework and I done necessary changes in the bpel.xml. This is successfully working for Invoke Activity when ever an Remote or Binding Fault occurs in the Sub-BPEL Process and this Fault is send to Fault-Policy.xml in the server(bpel/domains/default/config/fault-Policy) and works accordingly to the action mentioned in the policy xml....( I have also made changes in the fault-bindings.xml ).
    How ever this Framework is working fine for every actions.
    Need Clarification:
    1) Only the Binding and Remote faults will work for the Fault handling Framework.
    2) can we use User defined faults (Buissness Faults,,,) for this........because I used the User defined faults to invoke the fault-policy.xml and it won't works....
    3)Only Invoke Activity can be handled for this Framework or any Other Activity........
    4)How to handle other Activity in the Fault-policy.xml...
    5)Any difference for Asynchronous or Synchronous in this Fault Handling Framework.......
    I also referred the Oracle SOA Suite New Feauters PDF .......
    Can any one send me the related documents and try to help me on this.
    Please help me on this.......
    Thanks,
    Ashok.

    Hi Chintan,
    You are saying that Custom faults are also supported for fault-Policy.xml.
    I can't understand that 2nd answer you said. can you please explain how to use the Custom faults in the FaultHandlingFramework..
    My Scenario:
    I have 2 BPEL Process, BPEL1 will invoke the BPEL2 and if any remote fault or binding faults occurs in the BPEL 2 its returning the same fault to BPEL1 and here I am using FaulthandlingFramework , this fault send to fault-policy.xml and necessary action is took place succesfuly...(like retry, human intervention.....)
    But when I throw some CustomFaults(userdefinedFaults)in the BPEL2 , its returning as a remotefault to BPEL1. I don't know how to use the customFaults in the Fault handling framework.......
    Can you explain me in detail how to use custom faults in faulthandling framework...............
    Send me some related documents for this.....

  • Fault Handling in BPEL process

    hi
    We have to develop an application which involves several BPEL processes and proxy service(OSB) and JMS queue etc.
    What is the difference between Fault Management Framework in SOA11g and normal fault handling(using catch and throw activities)?
    which one we should prefer for fault handling in our application n why?
    Plz help thanks in advance.

    Hi-
    In Normal Fault handling process, you will be able to catch the faluts only but in Fault Management Framework if a fault occurs the framework catches the fault and performs a user-specified action defined in a fault policy file associated with the activity. You can also have a human intervention prescribed in it, where you perform recovery actions from Enterprise Manager.
    Pls go throgh the below post for detailed description
    http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_faults.htm
    Fault Management Framework and non BPEL soap faults
    Edited by: 333333 on Mar 23, 2011 5:01 PM

  • Fault Handling Issue in OSB

    Hi,
    This is regarding SOAP fault handling in OSB11g.
    i am expecting that whenever OSB proxy service recieves a fault response the flow should move to service error handler if any. But its not happening.
    We tested our service with SOA Test stubs and SOAP UI mock services. When SOA test stub send fault response OSB considering it as normal response. But when the same fault is sent by SOAP UI mock service OSB is considering it as fault and going to service error handler.
    Now the same is happening when we replaced the service provider with one of the .NET service. The fault response is in SOAP 1.1 structure.
    Please let me whats the difference or any setting or HTTP response code we need to look at.
    Thanks & Regards
    Siva

    Hi Anuj,
    I am using the same fault structure which is working in Soap UI mock service. Still its not working in Soa test stub. And now facing the same issue when fault comes from .NET based service provider.
    Will verify once to see whats the response code thats being sent.
    Thanks
    Siva

  • Fault handling in DIServer Interact

    Good Day Mentors,
    I'm currently testing out how the DIServer works.
    Now, I am testing Fault handling with the DI Server,
    and would want to know if there is a way to get multiple Errors from an DI Server Interact call.
    My test scenario was adding 2 Sales Orders into SAP via DI Server using the Interact Call(Not BatchInteract).
    The actual SOAP call sent , with comments, is as below:
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
    <env:Header>
      <SessionID>5659CCC6-2E15-4664-BFA2-4E6A3BDD3E35</SessionID>
      </env:Header>
    <env:Body>
    <dis:Add xmlns:dis="http://www.sap.com/SBO/DIS">
      <Service>OrdersService</Service>
    <Document>
      <DocType>dDocument_Items</DocType>
      <DocDate>2014-05-09</DocDate>
      <DocDueDate>2014-05-10</DocDueDate>
      <CardCode>C23900</CardCode>
      <Comments>DI Server Test - ADD</Comments>
    <DocumentLines>
    <DocumentLine>
      <ItemCode>A00003</ItemCode>
      <Quantity>2</Quantity>
      </DocumentLine>
    <DocumentLine>
      <ItemCode>TESTITTEM02</ItemCode> <!-- This Item Code Does not Exist in OEC Computer-->
      <Quantity>2</Quantity>
      </DocumentLine>
      </DocumentLines>
      </Document>
      </dis:Add>
    <dis:Add xmlns:dis="http://www.sap.com/SBO/DIS">
      <Service>OrdersService</Service>
    <Document>
      <DocType>dDocument_Service</DocType>
      <DocDate>2014-05-09</DocDate>
      <DocDueDate>2014-05-10</DocDueDate>
      <CardCode>C20000</CardCode>
      <Comments>DI Server Test - ADD</Comments>
    <DocumentLines>
    <DocumentLine>
      <ItemDescription>Printer Servicing</ItemDescription>
      <AccountCode>499999</AccountCode> <!-- This Account Code Does not Exist in OEC Computer-->
      </DocumentLine>
      </DocumentLines>
      </Document>
      </dis:Add>
      </env:Body>
      </env:Envelope>
    I commented the parts that should throw errors, which are the non existent ItemCode and AccountCode in 2 separate Sales Orders.
    I was hoping to get a Fault Response from the DIServer which tells me that there are two error from 2 different Documents.
    Basically, 2 separate error messages for the 1st Sales order(non existent Item Code) and 2nd Sales Order (Non Existent Account Code).
    But the Fault Response I got from the DIServer was this:
    <?xml version="1.0" ?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
    <env:Body>
    <env:Fault>
    <env:Code>
      <env:Value>env:Receiver</env:Value>
    <env:Subcode>
      <env:Value>-1</env:Value>
      </env:Subcode>
      </env:Code>
    <env:Reason>
      <env:Text xml:lang="en">Error in SOAP command 'Add'</env:Text>
      </env:Reason>
    <env:Detail>
      <Command>Add</Command>
      <SessionID>5659CCC6-2E15-4664-BFA2-4E6A3BDD3E35</SessionID>
      </env:Detail>
      </env:Fault>
      </env:Body>
      </env:Envelope>
    The fault response only tells me that there is an error, but nothing specific to the documents. Just something specific to the actual SOAP call.
    If I something is not clear, please do clarify with me.
    I'm using SAP B1 9.0 PL05.
    Thanks in advance!
    Sean

    Hi Sean,
    I don't think there is such a feature available. This is standard behaviour in SBO - same for UI and DI API. The first problem/error found will abort the action and message is shown and in this case it is one action ( interact).
    regards,
    Maik

  • Fault Handling in 11g

    Hi,
    I am new to this bpel.I want to ask a basic question regarding bpel fault handling management frmawork ..
    My BPELProcess1 has just a throw activity with receive and reply activity.and I throw a bindingfault there.
    Then I added two xml files(fault-policies and fault-binding) where composite.xml resides and added property elment in the composite.xml.
    So,I think here fault policy and binding will work fine .But when I execute it I don't find any recovery option in em console.
    fault-binding.xml ->
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <component faultPolicy="myFaultHandling">
    <name>BPELProcess1</name>
    </component>
    </faultPolicyBindings>
    and fault-policies.xml file looks like
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="mylFaultHandling"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-human-intervention"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    and added this to the composite.xml
    <property name="oracle.composite.faultPolicyFile">fault-policies.xml</property>
    <property name="oracle.composite.faultBindingFile">fault-bindings.xml</property>
    My question is
    1.Do I need to add a catch/catchAll block in bpel file ?and I want to know is it only a substitute mechanism to avoid catch/catchAll blok..
    2>Is there any way that I can catch the all project fault in a single framework by configuring em console rather than adding catch block or policy xml in each project ?
    Edited by: blue bell on May 3, 2011 4:46 AM

    Hi,
    +2>Is there any way that I can catch the all project fault in a single framework by configuring em console rather than adding catch block or policy xml in each project ?+
    For define the fault policies at the global level for all you project composites...u share the fault-policies.xml,fault-bindings.xml from mds and apply them to each composite.

  • Fault handling in osb using publish

    Hi all,
    i am new to OSB, every thing is working fine. i will explain how we design the basically we have inbound and outbound. call inbound as 'aaaa' and outbound as "bbbb". we have created the proxy and BS which will communicate with EBS, BAM and B2B. i have created BS for all the three. from PS i used 2 assign and 1 publish activity. we are publishing directly to BS correspondingly. since i am not using any route activity i could not get the error back or any invocation error messages. can any one tell how to capture the error and place it into BAM report. we can transform data to BAM we just need to get the details about the fault handling in OSB.
    thanks ----

    Hi prabu,
    thanks for your response.
    As we have the discussion on this issue for quit a long time. i have configure the error handler in the proxy services when my EBS throws the error. error handler come active and some data is published to bam. here i got the problem is that, the PO which we are sending is one way or fire and forget when using Publish action. when the PO hit the EBS, i.e. when error message is passed through the test XML, error is occuring and and reporting to bam with some null values. i need to capture the data processed at that transaction. is it possible to capture the data in error handler which is errored out in message flow of PS.
    can you please help me
    thanks--
    anil

  • Fault handling in 11g - fault-bindings.xml for a partnerLink

    I'm using 11g and I'm trying to use the fault handling framework for a specific partner link. In fault-bindings.xml I have:
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <partnerLink faultPolicy="GetDateFaultPolicy">
    <name>GetDateService</name>
    </partnerLink>
    </faultPolicyBindings>
    I have a partner link named GetDateService in the bpel that I'd like to defin a policy for, but when I try to compile, I get:
    Warning(3,58): Schema validation failed for fault-bindings.xml<Line 3, Column 58>: XML-24534: (Error) Element 'partnerLink' not expected.
    Does the framework still allow partnerlinks granularity, it says it does in the docs?
    Thanks

    Maybe I should have looked at the new schema first.... : }
    It's now reference:
    <?xml version="1.0" encoding="UTF-8"?>
    <faultPolicyBindings version="2.0.1" xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    *<reference faultPolicy="GetDateFaultPolicy">*
    <name>GetDateService</name>
    *</reference>*
    </faultPolicyBindings>
    Edited by: Brutus35 on Sep 16, 2010 10:42 AM

Maybe you are looking for