Binding Faults

Hello, I need you to expand on an aspect of the BankTransferFlow demo. Specifically, the way faults are handled. When an exception is raised, the process catches the fact that a user defined exception has occurred, then copies a literal into a fault variable. How can this be exanded so that the variables within the exception can be inspected and copied by the process?
For example, the message in the wsdl is defined as follows, with NotEnoughBalanceExceptionType being defined as an xs:any type.
<message name="NotEnoughBalanceFaultMessage">
<part name="payload" type="tns:NotEnoughBalanceExceptionType"/>
</message>
So, when the error is thrown, within the ejb code,
if( curBalance < amount) throw new NotEnoughBalanceException(accountId, curBalance, amount);
An instance of NotEnoughBalanceException is created,
public class NotEnoughBalanceException extends Exception {
     private String accountId;
     private double balance;
     private double amount;
     NotEnoughBalanceException(String accountId, double balance, double amount)
          this.setAccountId( accountId );
          this.setAmount( amount );
          this.setBalance( balance );
How do I model the wsdl and bpel code to access the 3 variables from within the BPEL flow at runtime?
Thanks.

Hello guys,
did you manage to get a patch for your issue?
We have the same one here, a FabricInvocationException at the BPEL layer,
and in the logs
java.lang.ClassCastException: [B cannot be cast to com.bea.wli.sb.transports.client.SOAMessage
     at com.bea.wli.sb.transports.direct.OSBDirectConnection.invoke(Unknown Source)
     at com.bea.wli.sb.transports.direct.OSBDirectConnection.request(Unknown Source)
[ I use SOA Suite 11.1.1.5 ]
thanx
ydes

Similar Messages

  • DB Adapter Binding Fault Not Working

    Hi,
    I am trying to run the application "InsertWithCatch" bpel sample in 10.1.3.1 and after testing it's always generating the same exception as below for any Database error:
    javax.transaction.RollbackException: Transaction has been marked for rollback:.
    What might the possible reason that binding fault is not getting generated at rutime when I am doing a duplicate row insertion?
    Thanks.

    Hi,
    I have increased the domain Logging level and this is the actual stack trace that is getting generated:
    While trying to do an insert:-
    Caused by: ORABPEL-11616
    DBWriteInteractionSpec Execute Failed Exception.
    insert failed. Descriptor name: [InsertWithCatch1.Movies]. [Caused by: ORA-00001: unique constraint (SOADEMO.MOVIES_PK1) violated
    Caused by Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DatabaseException
    Internal Exception: java.sql.BatchUpdateException: ORA-00001: unique constraint (SOADEMO.MOVIES_PK1) violated
    Error Code: 1.
         at oracle.tip.adapter.db.exceptions.DBResourceException.createEISException(DBResourceException.java:369)
         at oracle.tip.adapter.db.exceptions.DBResourceException.outboundWriteException(DBResourceException.java:410)
         at oracle.tip.adapter.db.DBInteraction.executeOutboundWrite(DBInteraction.java:933)
         at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:211)
         at oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA.executeRequestResponseOperation(WSIFOperation_JCA.java:480)
         ... 87 more
    Caused by: Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.DatabaseException
    Internal Exception: java.sql.BatchUpdateException: ORA-00001: unique constraint (SOADEMO.MOVIES_PK1) violated
    Binding fault raised as expected:-
    <2008-03-19 13:45:18,468> <DEBUG> <default.collaxa.cube.engine> <bpel.insertwithcatch.BPEL_BIN$$BPELC_BpInv2::perform> error thrown
    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    While performing a merge:-
    org.collaxa.thirdparty.apache.wsif.WSIFException: file:/D:/soasuiteproduct/10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_InsertWithCatch_1.0_4b0c7547e53123fc55dd2a1a4c59a472.tmp/InsertWithCatch1.wsdl [ InsertWithCatch1_ptt::merge(MoviesCollection) ] - WSIF JCA Execute of operation 'merge' failed due to: Could not create/access the TopLink Session.
    This session is used to connect to the datastore. [Caused by: Transaction has been marked for rollback: null]
    ; nested exception is:
         ORABPEL-11622
    Could not create/access the TopLink Session.
    Database adapter runtime platform classname is:-oracle.toplink.platform.database.Oracle9Platform
    What can be the possile fixture to above problem?
    Please advice as I am have to implement the error handling strategy to an actual Case Study implementation.
    Thanks

  • Binding Fault in OSB

    How to simulate Binding fault in OSB
    1. Created proxy service based on a port in WSDL
    2. Created Business serive
    3. Proxy service invokes BS through route node.
    Tried below options to get binding fault.
    1. gave invalid end point URL ( invlaid servlet-context ) IP and port are valid
    2. gave URL of service which is based on a different WSDL
    In above cases I got BEA-380000 . In below link ther is a error code for binding BEA-382103 : General binding error while processing outbound response.I would like to know when this error code will be raised.
    http://download.oracle.com/docs/cd/E13171_01/alsb/docs25/consolehelp/errorcodes.html

    Hi,
    could not dispatch message because there is no active transaction.Are you trying to have OSB transaction propagated to BPEL? If that's the case you need to check this:
    1. On the composite.xml you have to add the property transaction=required for yor BPEL
    2. On the OSB proxy server you need transaction required box checked (message handling)
    3. On the service callout (or publish, or route) for your BPEL you need to add Routing Options Qos = Exactly-once
    Hope this helps...
    Cheers,
    Vlad

  • Binding fault vs Runtime fault

    Hi,
    I am trying to do a http post from a bpel process and I want to retry if I get
    connection errors. When I tried running this with invalid URL I am getting
    a 'connection refused' but it is a binding fault and not runtime fault. I am assuming
    this is the reason that 'retry' configuration is not working. Here are the entries
    in bpel.xml
    <partnerLinkBinding name="PartnerLink_1">
    <property name="wsdlLocation">myService.wsdl</property>
    <property name="retryMaxCount">5</property>
    <property name="retryInterval">60</property>
    </partnerLinkBinding>
    So What decides whether it is a binding fault or a runtime fault? Is there anyway
    to get this as a runtime fault instead? If not what is the right way to do retry in
    this scenario?
    Any information will be of great help
    Thanks
    Raj

    I believe retry only works when there is a runtime fault. As for testing the process you can explicitly throw runtime exception using throw activity for test purpose.
    Dipal

  • Binding Fault when using http-POST

    Hi all,
    i have again a binding fault in my process. When i use a http-GET binding for the invoked webservice, the process works well. But when i use a POST-binding instead of the GET in the service-wsdl i get the following binding fault:
    <bindingFault>
    <part name="summary" >
    <summary>[email protected]9 : Could not invoke 'WFS_GetCapOP'; nested exception is: java.io.IOException: Content-Type `UTF-8;charset=ISO-8859-1' is not a text type</summary>
    </part>
    <part name="detail" >
    <detail>java.io.IOException: Content-Type `UTF-8;charset=ISO-8859-1' is not a text type</detail>
    </part>
    </bindingFault>
    Does anyone know, where the problem may be? Here's the wsdl:
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:aw="http://www.example.org/WFS_gesamt/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.example.org/WFS_gesamt/" name="WFS_gesamt">
         <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/WFS_gesamt/">
                   <xsd:element name="GetCapOut" nillable="true" type="xsd:anyType"/>
              </xsd:schema>
         </wsdl:types>
         <wsdl:message name="GetCapabilitiesOut">
              <wsdl:part name="GetCapabilities_response" element="aw:GetCapOut"/>
         </wsdl:message>
         <wsdl:message name="GetCapabilitiesIn">
              <wsdl:part name="request" type="xsd:string"/>
         </wsdl:message>
         <wsdl:portType name="GetCapabilitiesPT">
              <wsdl:operation name="WFS_GetCapOP">
                   <wsdl:input message="aw:GetCapabilitiesIn"/>
                   <wsdl:output message="aw:GetCapabilitiesOut"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="HTTPPostGetCap_Binding" type="aw:GetCapabilitiesPT">
              <http:binding verb="POST"/>
              <wsdl:operation name="WFS_GetCapOP">
                   <http:operation location="/geoserver/wfs"/>
                   <wsdl:input>
                        <http:urlEncoded/>
                   </wsdl:input>
                   <wsdl:output>
                        <mime:mimeXml part="GetCapabilities_response"/>
                   </wsdl:output>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="WfsService">
              <wsdl:port name="GetCapabilitiesPT" binding="aw:HTTPPostGetCap_Binding">
                   <http:address location="http://localhost:8080"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>
    rg.
    Alli

    well the error msg is correct ..
    i would expect content type to be something like text/xml ....
    can you trace the message that is generated ..
    thank you.
    clemens

  • Wht is Remote Fault and binding Fault?

    Hi All,
    wht is a Remote Fault and Binding Fault. When these Faults occur.
    can any one explain these,
    <Action id="aia-ora-java">
    <javaAction className="oracle.apps.aia.core.eh.BPELJavaAction" defaultAction="ora-rethrow-fault">
    <returnValue value="REPLAY" ref="ora-terminate"/>
    <returnValue value="RETRHOW" ref="ora-rethrow-fault"/>
    <returnValue value="ABORT" ref="ora-terminate"/>
    <returnValue value="RETRY" ref="aia-ora-retry"/>
    <returnValue value="MANUAL" ref="ora-human-intervention"/>
    </javaAction>
    wht happens when at rethrow and wht happens at retry?
    I got confused understanding the AIA Error Handling? can any one explain on this?

    Please refer to this link to understand BPEL Faults, http://www.oracle.com/technology/products/ias/bpel/htdocs/orabpel_technotes.tn007.html
    regards
    Rohit

  • Binding fault in SOA composite

    Hi all,
    we are having trouble with a soa composite wich has 1 web service and 3 jca db adapters.
    After deployment, only the first time the web service is consumed all is ok and the ws client receive the response (some data from db), but starting from the second intent we obtain the following error:
    <messages><input>
    <InvokeConsDeCuentasPorIdentificacion_ConsDeCuentasPorIdentificacion_InputVariable><part name="InputParameters" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/FB_PKG/NAOS_PQCON_DOM_CUENTAS/PRCONCUENTASPORIDENTIFICACION/">
    <PVTIPODEIDENTIFICACION>ced</PVTIPODEIDENTIFICACION>
       <PVIDENTIFICACION>0914390612</PVIDENTIFICACION>
    </InputParameters></part></InvokeConsDeCuentasPorIdentificacion_ConsDeCuentasPorIdentificacion_InputVariable></input><fault>
    <bpelFault><faultType>0</faultType><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>Exception occured when binding was invoked.
    Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'ConsDeCuentasPorIdentificacion' failed due to: Stored procedure invocation error.
    Error while trying to prepare and execute the NAOS_PQCON_DOM_CUENTAS.PRCONCUENTASPORIDENTIFICACION API.
    An error occurred while preparing and executing the NAOS_PQCON_DOM_CUENTAS.PRCONCUENTASPORIDENTIFICACION API. Cause: java.sql.SQLException: ORA-06550: line 1, column 7:
    PLS-00201: identifier 'NAOS_PQCON_DOM_CUENTAS.PRCONCUENTASPORIDENTIFICACION' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    Check to ensure that the API is defined in the database and that the parameters match the signature of the API.  This exception is considered not retriable, likely due to a modelling mistake.  To classify it as retriable instead add property nonRetriableErrorCodes with value "-6550" to your deployment descriptor (i.e. weblogic-ra.xml).  To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff.  All properties are integers.
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    </summary></part><part name="detail"><detail>ORA-06550: line 1, column 7:
    PLS-00201: identifier 'NAOS_PQCON_DOM_CUENTAS.PRCONCUENTASPORIDENTIFICACION' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    </detail></part><part name="code"><code>6550</code></part></bindingFault></bpelFault></fault><faultType>
    <message>0</message></faultType></messages></details>
    The oracle package and sp exist and are compiled without errors, and the user has the rights to execute it.
    Thank you.
    Efren.

    Hi Kevin,
    Thanks for the idea!!
    Just wanted to check if there is a way to set the variable from within the soa composite with the error message which can then be displayed on OIM UI. Like if there is any error i.e., if we try to assign a task to the user who is not present in OIM, the error gets displayed and the status of the task is shown as "ALERTED" . Is it possible to achieve the similar behaviour with custom errors!!
    Thanks,
    Hrushi

  • Binding Fault

    Hi all,
    I am trying to execute my BPEL process.My BPEL process gets successfully compiled and deployed on BPEL engine,but I am trying to create an instance of this process,I am gettting binding error
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>GenericError</code></part><part name="summary"><summary>Failed get wsdl service definition.
    Failed to get a WSDL service that support the portType "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathPortType" in WSDL definition "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathService".
    Please verify that WSDL portType "{http://www.globus.org/namespaces/examples/core/MathService_instance}MathPortType" is supported by a service in WSDL file.
    </summary></part></bindingFault>
    My WSDL is running on a different machine,on a different container.The code of my WSDL service is as follows
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="MathService" targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:porttype="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" location="../../wsrf/properties/WS-ResourceProperties.wsdl"/>
    <wsdl:types>
    <xsd:schema targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../../ws/addressing/WS-Addressing.xsd"/>
         <!-- REQUESTS AND RESPONSES -->
         <xsd:element name="add" type="xsd:int"/>
         <xsd:element name="addResponse">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="subtract" type="xsd:int"/>
         <xsd:element name="subtractResponse">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="getValueRP">
              <xsd:complexType/>
         </xsd:element>
         <xsd:element name="getValueRPResponse" type="xsd:int"/>
         <!-- RESOURCE PROPERTIES -->
         <xsd:element name="Value" type="xsd:int"/>
         <xsd:element name="LastOp" type="xsd:string"/>
         <xsd:element name="MathResourceProperties">
         <xsd:complexType>
              <xsd:sequence>
                   <xsd:element maxOccurs="1" minOccurs="1" ref="tns:Value"/>
                   <xsd:element maxOccurs="1" minOccurs="1" ref="tns:LastOp"/>
              </xsd:sequence>
         </xsd:complexType>
         </xsd:element>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="SubtractOutputMessage">
    <wsdl:part name="parameters" element="tns:subtractResponse"/>
    </wsdl:message>
    <wsdl:message name="GetValueRPInputMessage">
    <wsdl:part name="parameters" element="tns:getValueRP"/>
    </wsdl:message>
    <wsdl:message name="SubtractInputMessage">
    <wsdl:part name="parameters" element="tns:subtract"/>
    </wsdl:message>
    <wsdl:message name="AddInputMessage">
    <wsdl:part name="parameters" element="tns:add"/>
    </wsdl:message>
    <wsdl:message name="AddOutputMessage">
    <wsdl:part name="parameters" element="tns:addResponse"/>
    </wsdl:message>
    <wsdl:message name="GetValueRPOutputMessage">
    <wsdl:part name="parameters" element="tns:getValueRPResponse"/>
    </wsdl:message>
    <wsdl:portType name="MathPortType" wsrp:ResourceProperties="tns:MathResourceProperties">
    <wsdl:operation name="add">
    <wsdl:input message="tns:AddInputMessage"/>
    <wsdl:output message="tns:AddOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="subtract">
    <wsdl:input message="tns:SubtractInputMessage"/>
    <wsdl:output message="tns:SubtractOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="getValueRP">
    <wsdl:input message="tns:GetValueRPInputMessage"/>
    <wsdl:output message="tns:GetValueRPOutputMessage"/>
    </wsdl:operation>
    <wsdl:operation name="GetResourceProperty">
    <wsdl:input name="GetResourcePropertyRequest" message="wsrpw:GetResourcePropertyRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
    <wsdl:output name="GetResourcePropertyResponse" message="wsrpw:GetResourcePropertyResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse"/>
    <wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
    <wsdl:fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="MathPortTypeSOAPBinding" type="porttype:MathPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="add">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="subtract">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/subtractRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getValueRP">
    <soap:operation soapAction="http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/getValueRPRequest"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetResourceProperty">
    <soap:operation soapAction="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    <wsdl:fault name="InvalidResourcePropertyQNameFault">
    <soap:fault name="InvalidResourcePropertyQNameFault" use="literal"/>
    </wsdl:fault>
    <wsdl:fault name="ResourceUnknownFault">
    <soap:fault name="ResourceUnknownFault" use="literal"/>
    </wsdl:fault>
    </wsdl:operation>
    </wsdl:binding>
    <plnk:partnerLinkType name="MathService">
    <plnk:role name="MathServiceProvider">
    <plnk:portType name="tns:MathPortType"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </wsdl:definitions>
    Please suggest me any possible reasons of the error.
    Thanks
    Regards
    Prateek Jain
    DA-IICT
    Gandhinagar(Gujarat)
    India

    I am facing a similar problem. Please let me know if you have got a resolution for the error.
    Thanks

  • Direct binding faults getting FabricInvocationException

    We have two BPEL composites. When one calls the other using SOAP, the caller receives a correct fault, but when I change to direct binding, the fault type is lost and I get a FabricInvocationException instead.
    The called composite returns this fault:
    <FaultVar>
      <part name="fault">
        <PInitWorkflowTransactionFault>
          <nppTxId>
            <nppTransactionId>633919050</nppTransactionId>
            <nppTimestamp>2011/06/13 17:53:14 GMT</nppTimestamp>
            <nppIsRetryFlag>false</nppIsRetryFlag>
          </nppTxId>
          <clientTxId>
            <clientUserId>XYZ</clientUserId>
            <transactionId>100001</transactionId>
            <isRetry>false</isRetry>
          </clientTxId>
          <error>
            <errorClass>1</errorClass>
            <errorCode>10221</errorCode>
            <systemType>WorkflowManager-ProvInit</systemType>
            <errorMessage>Dummy error message</errorMessage>
          </error>
        </PInitWorkflowTransactionFault>
      </part>
    </FaultVar>In the SOAP version, caller sees this, which is correct:
    <bpelFault>
      <faultType>1</faultType>
      <WFMFault>
        <part name="fault">
          <PInitWorkflowTransactionFault>
            <nppTxId>
              <nppTransactionId>633919050</nppTransactionId>
              <nppTimestamp>2011/06/13 17:53:14 GMT</nppTimestamp>
              <nppIsRetryFlag>false</nppIsRetryFlag>
            </nppTxId>
            <clientTxId>
              <clientUserId>XYZ</clientUserId>
              <transactionId>100001</transactionId>
              <isRetry>false</isRetry>
            </clientTxId>
            <error>
              <errorClass>1</errorClass>
              <errorCode>10221</errorCode>
              <systemType>WorkflowManager-ProvInit</systemType>
              <errorMessage>Dummy error message</errorMessage>
            </error>
          </PInitWorkflowTransactionFault>
        </part>
      </WFMFault>
    </bpelFault>When I switch to direct binding, using the following reference in the composite.xml, we see the problem.
    <reference name="ProvInitializeWorkflowService" wsdlLocation="NPPProvInitializingWorkflow.wsdl">
      <interface.wsdl interface="http://www.example.com/network/NPP/ProvInitWF#wsdl.interface(PInitWorkflowPortType)"/>
      <binding.direct address="soadirect:/default/ProvInitializingWorkflow!1.0/initprovisioningpayload_client_ep_direct"
                      connection-factory="oracle.soa.api.JNDIDirectConnectionFactory">
        <property name="java.naming.provider.url" type="xs:string" many="false">t3://localhost:8001/default/ProvInitializingWorkflow!1.0/initprovisioningpayload_client_ep_direct</property>
      </binding.direct>
    </reference>Non-fault replies all work correctly, so we don't have a type mismatch.
    Using direct binding, the caller sees this instead:
    <bpelFault>
      <faultType>0</faultType>
      <remoteFault>
        <part name="summary">
          <summary>oracle.fabric.common.FabricInvocationException: oracle.fabric.common.FabricInvocationException:
                   oracle.soa.api.invocation.FaultException: {http://www.example.com/network/NPP/ProvInitWF}WFMFault</summary>
        </part>
        <part name="detail">
          <detail>{http://www.example.com/network/NPP/ProvInitWF}WFMFault</detail>
        </part>
        <part name="code">
          <code>null</code>
        </part>
      </remoteFault>
    </bpelFault>I would really like to use direct binding, but I can't if faults do not work. Help?!
    Thanks.

    Hello guys,
    did you manage to get a patch for your issue?
    We have the same one here, a FabricInvocationException at the BPEL layer,
    and in the logs
    java.lang.ClassCastException: [B cannot be cast to com.bea.wli.sb.transports.client.SOAMessage
         at com.bea.wli.sb.transports.direct.OSBDirectConnection.invoke(Unknown Source)
         at com.bea.wli.sb.transports.direct.OSBDirectConnection.request(Unknown Source)
    [ I use SOA Suite 11.1.1.5 ]
    thanx
    ydes

  • Binding Fault invoking an axis2 webService from BPEL

    Hi,
    I have deployed axis2 on the OC4J application server. And then I have deployed a web service to axis2. I can access the wsdl and create the partner link in the jdeveloper. The problem appears in execution time.
    When I run the BPEL process the following error appears:
    <2008-08-27 14:41:20,906> <DEBUG> <default.collaxa.cube.ws> <WSIFInvocationHandler::invoke> invoke failed
    org.collaxa.thirdparty.apache.wsif.WSIFException: [email protected]2 : Could not find binding output for operation insertOrUpdate at com.collaxa.cube.ws.wsif.providers.http.WSIFOperation_HTTP.getOutputMIMEXmlPart(WSIFOperation_HTTP.java:205) at com.collaxa.cube.ws.wsif.providers.http.WSIFOperation_HTTP.executeRequestResponseOperation(WSIFOperation_HTTP.java:308)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:435)
    From .NET application we can invoke the web service so I think the web service is ok. Does anybody know how to solve this issue? I have been searching for a solution and I have only found questions about this..
    Any help would be appreciated.
    Thanks in advance,
    Zaloa

    Hi,
    Just in case someone runs into the same problem, I live here my solution:
    In may case the problem was the wsdl definition. I developed the web service in java and generated the wsdl with Maven. Automatically it generates the wsdl like this (I just copy the last section):
    <wsdl:service name="tso-ws">
    <wsdl:port name="tso-wsHttpSoap11Endpoint" binding="ns:tso-wsSoap11Binding">
    <soap:address location="http://localhost:8080/axis2/services/tso-ws"/>
    </wsdl:port>
    <wsdl:port name="tso-wsHttpSoap12Endpoint" binding="ns:tso-wsSoap12Binding">
    <soap12:address location="http://localhost:8080/axis2/services/tso-ws"/>
    </wsdl:port>
    <wsdl:port name="tso-wsHttpEndpoint" binding="ns:tso-wsHttpBinding">
    <http:address location="http://localhost:8080/axis2/services/tso-ws"/>
    </wsdl:port>
    </wsdl:service>
    The problem was the <wsdl:service name="tso-ws"> section. There were 3 port definitions with 3 different bindings but all of them have the same service location. So In the BPEL process I created the partner link using the service location.
    I guess BPEL was using the http binding, so I deleted two of the por definitions and just left this in the <wsdl:service name="tso-ws"> section of the wsdl
    <wsdl:service name="tso-ws">
    <wsdl:port name="tso-wsHttpSoap12Endpoint" binding="ns:tso-wsSoap12Binding">
    <soap12:address location="http://localhost:8080/axis2/services/tso-ws"/>
    </wsdl:port>
    By doing this, it works. I read in some forums that BPEL doesn't work with the http_post protocol so that's why I deleted that definition. And someone told me that it uses soap12 so that's why I deleted that definition also.
    That's the way I solved it. Hope this helps.
    Regards,
    Zaloa

  • Odd runtime binding fault

    I'm getting the following runtime binding error exception:
    <bindingFault>
    <part name="code" >
    <code>GenericError</code>
    </part>
    <part name="summary" >
    <summary>Failed get wsdl service definition. Failed to get a WSDL service that support the portType "{http://xmlns.oracle.com/prefixer}prefixerPT" in WSDL definition "{http://xmlns.oracle.com/prefixer}prefixer". Please verify that WSDL portType "{http://xmlns.oracle.com/prefixer}prefixerPT" is supported by a service in WSDL file. </summary>
    </part>
    </bindingFault>
    Here's the prefixer.wsdl file. As far as I can tell, prefixerPT is supported. Any idea what's wrong?
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="prefixer"
    targetNamespace="http://xmlns.oracle.com/prefixer"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:client="http://xmlns.oracle.com/prefixer"
    >
         <types>
              <schema attributeFormDefault="qualified"
                   elementFormDefault="qualified"
                   targetNamespace="http://xmlns.oracle.com/prefixer"
                   xmlns="http://www.w3.org/2001/XMLSchema">
                   <element name="beforePrefixT">
                        <complexType>
                             <sequence>
    <element name="pre" type="string"/>
                                  <element name="base" type="string"/>
                             </sequence>
                        </complexType>
                   </element>
                   <element name="afterPrefixT">
                        <complexType>
                             <sequence>
                                  <element name="output" type="string"/>
                             </sequence>
                        </complexType>
                   </element>
              </schema>
         </types>
         <message name="prefixRequestM">
              <part name="input" element="client:beforePrefixT"/>
         </message>
         <message name="prefixResponseM">
              <part name="output" element="client:afterPrefixT"/>
         </message>
         <portType name="prefixerPT">
              <operation name="doPrefix">
                   <input message="client:prefixRequestM"/>
                   <output message="client:prefixResponseM"/>
              </operation>
         </portType>
         <plnk:partnerLinkType name="prefixer">
              <plnk:role name="prefixRequester">
                   <plnk:portType name="client:prefixerPT"/>
              </plnk:role>
         <plnk:role name="prefixReplier">
                   <plnk:portType name="client:prefixerPT"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>

    if the wsdl from above is the wsdl you try to consume (aka invoke) from your bpel process then it's understandable - as it is abstract .. as runtime you need to have the concrete wsdl andy - with a port and a service, telling bpel what it should bind to ..
    if this is the case - point the bpel partnerlink to the concrete wsdl
    hth clemens

  • 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 name for Rejection Messages in Fault policy.

    Hi ,
    I am trying to do my fault handling for Rejected messages .I am bit confused what is the fault name i should specify for rejection messages .
    Say for BPEL , We have bpelx:binding fault etc for BPEL ..
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:[?????????????] ">
    <condition>
    <action ref="writeToFile"/>
    </condition>
    </faultName>
    </Conditions>
    Regards ,
    Naga

    It should be the "service name" for the inbound adapter in the composite. Here is the doc link which explains this: http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10231/life_cycle.htm#TKADP187.
    regards,
    Sandeep

  • 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

  • Retry mechanism in Fault handling framework SOA 11g

    hi
    i have used Fault management framework in my project. I have added fault-policies and fault-bindings file. in fault-policies file i am using retry mechanism for any remote or binding fault. but i am not able to see the retry working in flow trace. however human intervention and terminate actions are working fine.
    can any one assist me why retry mechanism is not working.
    thanks in advance.

    hi
    thanks for the response. i added that property in my bpel tag but unfortunately it didn't work. plus the instance remains in running state. plz help me out with this.
    this is my fault-policies.xml and fault-binding.xml
    fault-policies.xml*
    <?xml version="1.0"?>
    <faultPolicies xmlns="http://xmlns.oracle.com/CreateTaskPOC_jws/Project9/BPELProcess1">
    <faultPolicy version="2.0.1" id="MyCompositeFaultPolicy">
    <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>3</retryCount>
    <retryInterval>2</retryInterval>
    <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://xmlns.oracle.com/CreateTaskPOC_jws/Project9/BPELProcess1">
    <composite faultPolicy="MyCompositeFaultPolicy"/>
    <component faultPolicy="MyCompositeFaultPolicy">
    <name>BPELProcess1</name>
    </component>
    <reference faultPolicy="MyCompositeFaultPolicy">
    <name>InsertEmp_BPELProcess</name>
    </reference>
    </faultPolicyBindings>

Maybe you are looking for

  • Getting "The provider is not compatible with the version of Oracle client"

    Hi, By reading though posts this appears to be a very common and some people have been able to solve it by putting their OracleDataAccess.dll and support files in the same folder as the exe. However, I tried putting the OracleDataAccess.dll, oci.dll,

  • Ovi Maps 3.04 missing weather icon

    After installation of the 3.04 update, in my E52, I missed the Weather icon, even when I am online (with SIM card). Any help??? Solved! Go to Solution.

  • What is  VMO ?

    Hi: The app's deploy fails. At defaultTrace.6.trc (the file that was most recently modified) says: #false# #1.5 #00145E2887DA00410000001600000AE0000437FC9B81441B#1187457987123#com.sap.engine.services.webdynpro.WebDynproContainer##com.sap.engine.servi

  • Cracked macbook pro screen repair

    Accidentally stepped on my 13" macbook pro that was on the floor and it cracked the right side of my screen, how much would it cost to repair/replace?

  • "Sleep is disabled in Windows 7 or 8 while a Thunderbolt device is plugged in

    "Sleep is disabled in Windows 7 or 8 while a Thunderbolt device is plugged in." http://www.macwindows.com/Thunderbolt-Limitations-of-Mac-running-Windows-and-get ting-around-them.html