Unable to get Fault in reply from Synchronous BPEL Process

Hi All,
I am using a synchronous BPEL process which always throws a fault. The structure of this fault message is added to <bpel_process_name>.xsd.
For WSDL faults I have added the following in .wsdl file:
</wsdl:message>
<wsdl:message name="BusinessFault">
<wsdl:part name="payload" element="client:faultarea"/>
</wsdl:message>
<wsdl:portType name="FaultBPELProcess">
<wsdl:operation name="process">
<wsdl:input message="client:FaultBPELProcessRequestMessage"/>
<wsdl:output message="client:FaultBPELProcessResponseMessage"/>
<wsdl:fault message="client:BusinessFault" name="BusinessFault" />
</wsdl:operation>
</wsdl:portType>
Now when I invoke this BPEL process, the fault is thrown and caught by the catch block at main scope. this catch assigns some values to the fault message and returns it back to the calling party.
Fault QName is defined in the reply activity of catch block.
On testing it, the reply never comes back and I can see the following error message in the logs:
[2011-08-09T09:47:01.001+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [WEBSERVICE_PORT.name: FaultBPELProcess_pt] [APP: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: faultbpelprocess_client_ep] [J2EE_APP.name: soa-infra] Message Type is normalized, exiting agent.processFault()
[2011-08-09T09:47:01.001+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [WEBSERVICE_PORT.name: FaultBPELProcess_pt] [APP: soa-infra] [J2EE_MODULE.name: fabric] [WEBSERVICE.name: faultbpelprocess_client_ep] [J2EE_APP.name: soa-infra] Message Type is normalized, exiting agent.processFault()
[2011-08-09T09:47:01.060+05:30] [soa_server1] [ERROR] [OWS-04086] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [APP: soa-infra] javax.xml.rpc.soap.SOAPFaultException[[
at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1094)
at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:887)
at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1081)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:232)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:192)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:459)
at oracle.integration.platform.blocks.soap.FabricProviderServlet.doPost(FabricProviderServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
[2011-08-09T09:47:01.061+05:30] [soa_server1] [ERROR] [OWS-04115] [oracle.webservices.service] [tid: [ACTIVE].ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 11d1def534ea1be0:53ccedc:131a8598fc1:-8000-0000000000000ed1,0:3] [APP: soa-infra] An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException.
If I try to invoke the endpoint uri, it gets invoked and returns the response.
Any pointers will be appreciated!!

I tried the same scenario which you told and it's working for me...I'll paste the contents for your reference...
BPELProcess.bpel
<?xml version = "1.0" encoding = "UTF-8" ?>
<!--
-->
<process name="BPELProcess1"
targetNamespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:client="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<!--
PARTNERLINKS
List of services participating in this BPEL process
-->
<partnerLinks>
<!--
The 'client' role represents the requester of this service. It is
used for callback. The location and correlation information associated
with the client role are automatically set using WS-Addressing.
-->
<partnerLink name="bpelprocess1_client" partnerLinkType="client:BPELProcess1" myRole="BPELProcess1Provider"/>
</partnerLinks>
<!--
VARIABLES
List of messages and XML documents used within this BPEL process
-->
<variables>
<!-- Reference to the message passed as input during initiation -->
<variable name="inputVariable" messageType="client:BPELProcess1RequestMessage"/>
<!-- Reference to the message that will be returned to the requester-->
<variable name="outputVariable" messageType="client:BPELProcess1ResponseMessage"/>
<variable name="FaultVar_2" messageType="client:BusinessFault"/>
<variable name="FaultVar" messageType="client:BusinessFault"/>
</variables>
<faultHandlers>
<catch faultName="client:BusinessFault" faultVariable="FaultVar">
<reply name="Reply_1" variable="FaultVar"
partnerLink="bpelprocess1_client" portType="client:BPELProcess1"
operation="process" faultName="client:BusinessFault"/>
</catch>
</faultHandlers>
<!--
ORCHESTRATION LOGIC
Set of activities coordinating the flow of messages across the
services integrated within this business process
-->
<sequence name="main">
<!-- Receive input from requestor. (Note: This maps to operation defined in BPELProcess1.wsdl) -->
<receive name="receiveInput" partnerLink="bpelprocess1_client" portType="client:BPELProcess1" operation="process" variable="inputVariable" createInstance="yes"/>
<!-- Generate reply to synchronous request -->
<assign name="Assign_1">
<copy>
<from expression="'A business fault occured'"/>
<to variable="FaultVar_2" part="payload"
query="/client:processResponse/client:result"/>
</copy>
</assign>
<throw name="Throw_1" faultName="client:BusinessFault"
faultVariable="FaultVar_2"/>
<reply name="replyOutput" partnerLink="bpelprocess1_client" portType="client:BPELProcess1" operation="process" variable="outputVariable"/>
</sequence>
</process>
BPELProcess1.wsdl
<?xml version= '1.0' encoding= 'UTF-8' ?>
<wsdl:definitions
name="BPELProcess1"
targetNamespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
xmlns:ns1="http://schemas.oracle.com/bpel/extension"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:client="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>
<plnk:partnerLinkType name="BPELProcess1">
<plnk:role name="BPELProcess1Provider">
<plnk:portType name="client:BPELProcess1"/>
</plnk:role>
</plnk:partnerLinkType>
<wsdl:import namespace="http://schemas.oracle.com/bpel/extension" location="RuntimeFault.wsdl"/>
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://xmlns.oracle.com/Test_jws/TestSync/BPELProcess1" schemaLocation="xsd/BPELProcess1.xsd"/>
</schema>
</wsdl:types>
<wsdl:message name="BPELProcess1RequestMessage">
<wsdl:part name="payload" element="client:process"/>
</wsdl:message>
<wsdl:message name="BPELProcess1ResponseMessage">
<wsdl:part name="payload" element="client:processResponse"/>
</wsdl:message>
<wsdl:message name="BusinessFault">
<wsdl:part name="payload" element="client:processResponse"/>
</wsdl:message>
<wsdl:portType name="BPELProcess1">
<wsdl:operation name="process">
<wsdl:input message="client:BPELProcess1RequestMessage"/>
<wsdl:output message="client:BPELProcess1ResponseMessage"/>
<wsdl:fault message="client:BusinessFault" name="BusinessFault" />
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
Hope that helps you...
Thanks,
N

Similar Messages

  • Fault error framework for synchronous Bpel process

    Hi all,
    Do fault policies work for synchronous Bpel processes? I am using a synchronous bpel process which invokes JMS service. I have used fault policies and bindings for this , when the instance fails due to binding fault the instance gets timed out and it neither goes to catch block nor fault policies.Is it normal behaviour or am i doing wrong anywhere. please help
    Regards
    Raju.

    Hello Raju,
    yes fault policies absolutely work for sync Bpel processes, please check if you have defined the Binding fault in your fault policy and also in your bindings.
    if you have defined them in your policies then the control will jump to the policies first do the respective action defined.
    so do check again...
    Good luck..
    vny.

  • Unable to invoke EJB from a BPEL process.

    Hello all
    I am running BPEL process manager over weblogic 8.1 App server. I am trying to invoke a simple stateless session bean from a synchronous BPEL process. I have created a WSDL for this EJB with appropriate binding and service elements.
    I am able to build my BPEL sync process and deploy it. But, when I run the process and invoke the EJB, I am getting the following exception-
    BPEL Fault: {http://schemas.oracle.com/bpel/extension}bindingFaultCould not create instance for home 'ClusterableRemoteRef(-3059145150938040994S:172.26.210.17:[9700,9700,-1,-1,9700,-1,-1,0,0]:myorabpel:orabpelServer [-3059145150938040994S:172.26.210.17:[9700,9700,-1,-1,9700,-1,-1,0,0]:myorabpel:orabpelServer/288])/288'; nested exception is:
    java.lang.NoSuchMethodException: com.carlson.sample.HelloWorldSessionBean_n4vx3i_HomeImpl_812_WLStub.create()
    I have a home interface for the EJB which has a 'create' method and my session bean has a ejbCreate method. I am using weblogic.appc to create the stubs and skeletons for the EJB.
    Has anyone tried this ?? The tutorial in the download 702.bindings/EJBBinding does something similar to this. But, I am having problems with that too.
    Any comments, advice, sample code will be helpful.
    Thanks a bunch
    - Mahesh :)

    I have deployed my Bean Managed Persistance Entity Bean in Weblogic 8.1 App Server. Trying to access the ejb from Synchronous BPEL process. I tried in two ways
    1. By accessing the ejb directly from BPEL process, writing the following code in BPEL process
    <bpelx:exec xmlns:bpelx="http://schemas.oracle.com/bpel/extension" language="java" version="1.4" name="InventoryEJB">
                   <![CDATA[
         // Java code snippet
         try{   
         Hashtable properties = new Hashtable();
              properties.put(InitialContext.INITIAL_CONTEXT_FACTORY,
    "weblogic.jndi.WLInitialContextFactory");
              properties.put(InitialContext.PROVIDER_URL, "t3://PCIIB07447:7001");
              InitialContext context = new InitialContext(properties);
              InventoryHome home = (InventoryHome) context.lookup("Inventory");
              InventoryRemote remote = home.create();
              int status = remote.getInventory("Chevrolet","2-Door Coupes","Chevy Cobalt",5);
              addAuditTrailEntry("Status is: " + status);
    setVariableData("output", "payload",
    "/status", new Integer(status));
    catch(Exception e){}
         ]]>
              </bpelx:exec>
    Also copied the interface files in system\classes directory. I got the expected output but i am not able to view the "Visual Flow". Getting the following error in my BPEL server console
    <Sep 9, 2004 12:46:51 PM IST> <Warning> <RMI> <BEA-080003> <RuntimeException thr
    own by rmi server: weblogic.management.internal.RemoteMBeanServerImpl.invoke(Lja
    vax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.Strin
    g;)
    weblogic.management.NoAccessRuntimeException: Access not allowed for subject: p
    rincipals=[], on ResourceType: ServerConfig Action: execute, Target: lookupServe
    rRuntime.
    weblogic.management.NoAccessRuntimeException: Access not allowed for subject: pr
    incipals=[], on ResourceType: ServerConfig Action: execute, Target: lookupServer
    Runtime
    at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeA
    ction.wlsRun(SecurityHelper.java:564)
    at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeA
    ction.run(SecurityHelper.java:456)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    118)
    at weblogic.management.internal.SecurityHelper.isAccessAllowed(SecurityH
    elper.java:350)
    at weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(Rem
    oteMBeanServerImpl.java:946)
    at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBean
    ServerImpl.java:908)
    at weblogic.management.internal.RemoteMBeanServerImpl_WLSkel.invoke(Unkn
    own Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
    dSubject.java:353)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    144)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
    a:415)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
    .java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    2. The other way i used WSIF frame work, but i could not resolved.
    Thanks for your help in advance.

  • Fault framework for synchronous Bpel process

    Hi all,
    Do fault policies work for Synchronous Bpel process?  I have  created a Synchronous Bpel process which invokes a JMS service. In this case if the process errors out due to binding fault, my instance is getting timed out and it's neither going to fault policies nor CatchAll block. Is  it normal behaviour oris it  happening only in this case? please help.
    Regards
    Raju

    Hello Raju,
    yes fault policies absolutely work for sync Bpel processes, please check if you have defined the Binding fault in your fault policy and also in your bindings.
    if you have defined them in your policies then the control will jump to the policies first do the respective action defined.
    so do check again...
    Good luck..
    vny.

  • Unable to invoke a EJB from a BPEL process

    I am unable to invoke a EJB from a BPEL process. Whenever I try to test it from the oracle EM, I get the below exception. I am using WebLogic 10.3.3, SOA suite 11.1.1.3 and JDev 11.1.1.3 .
    This is what I see from the EM....
    Non Recoverable System Fault :
    javaInterface attribute for the binding is missing or the inteface class is not available.
    Below is a part of the stack trace from the soa server log…
    Caused By: oracle.classloader.util.AnnotatedClassNotFoundException:
    Missing class: com.abc.GreetingEJBBean
    Dependent class: oracle.integration.platform.blocks.ejb.SDOEjbReferenceD
    elegateImpl
    Loader: sun.misc.Launcher$AppClassLoader@20929799
    Code-Source: /C:/Oracle_latest/Middleware/home_11gR1/Oracle_SOA1/soa
    /modules/oracle.soa.fabric_11.1.1/fabric-runtime.jar
    Configuration: /C:/Oracle_latest/Middleware/home_11gR1/Oracle_SOA1/soa
    /modules/oracle.soa.fabric_11.1.1/fabric-runtime.jar
    Piece of xml from the composite.xml
    <reference name="GreetingService"
    ui:wsdlLocation="http://123.45.218.140:7001/GreetingEJBBean/GreetingEJBBeanService?wsdl">
    <interface.wsdl interface="http://abc.com/#wsdl.interface(GreetingEJBBean)" />
    <binding.ejb uri="GreetingEJB-GreetingEJB-GreetingEJB"
    javaInterface="com.abc.GreetingEJB"/>
    </reference>
    Looks like its not able to find the javaInterface mentioned above.
    I have a simple EJB with one business method and a very simple BPEL process.
    @Stateless(name = "GreetingEJB", mappedName = "GreetingEJB-GreetingEJB-GreetingEJB")
    @WebService
    public class GreetingEJBBean implements GreetingEJB {
    public GreetingEJBBean() {
    public String greetUser(String name){
    return ("Hello " + name);
    Any help would be greatly appreciated.

    I haven't tried from a BPEL process, but I have had success (as in Lucas's blogs) of using services and references as EJB Java Interface. This is with EJB java interfaces solely of base types (i.e. String foo(String s)).
    At high level here's what I have noted so far:
    1. Per Lucas's blog, @javaInterface is not being added to the ejb.binding automatically but it's not clear to me when this is and is not required given that interface.java is specified for the reference or service. Would interface.java and @javaInterface ever be different? I've been adding @javaInterface manually anyways since Lucas is a smart guy and I'd rather avoid errors. :-)
    2. Dropping an EJB interface jar in SCA-INF/lib works, but I've had the problem that the JDeveloper SOA Plugin doesn't see those classes until I stop and restart JDeveloper. Until then, I'm confronted with the java->wsdl mapping error. I was sort of primed to figure this one out since I ran into similar issues with SOA SpringBean components.
    3. Dropping EJB interface source in SCA-INF/src is more reliable, because then I can build the project (i.e. create SCA-INF/classes) and the JDeveloper SOA Plugin seems to resolve these brand new classes immediately.
    4. I've tried to invoke an EJB java-interface reference with a slightly complicated java interface (a class parameter with some fields, one of which is an array of another class). The auto-generated WSDL doesn't look exactly right to me (but I'm new to JAXB). Mediator maps to it just fine and the project compiles and deploys normally but fails at runtime. I have not researched in depth. It's not clear to me from the documentation and release notes whether I should expect for it to work, or whether I should expect to have to create my own JAXB mapping. If the latter, I really need a good example!

  • Reply component on synchronous BPEL process in Oracle SOA

    if there any possibility for returning the result to the client in the middle of a synchronous BPEL process?
    I put the reply component in the middle of BPEL process, but the client still will wait for the whole process completed. I am wondering how the reply mechanism works in BPEL for synchronous.

    Hi,
    You should build your process in a way that the reply activity should be in the end.
    Meaning, add the relevant activities - scopes, catch (fault handling - system & business), switch etc...
    If, from some reason, you don't want to continue with the process,at any stage then go to the end.
    Arik

  • Trying to throw fault from one BPEL process to another

    We are trying to throw a fault from one BPEL process to another and apparently are experiencing a common problem. That is, the invoking process times out and never receives the fault.
    Likely a beginner's mistake is at fault (pun intended).
    Below are samples of a simple "Hello World" process that tries to throw the fault.
    snippet of pbel file....
    <process name="HelloJavaWorldSynchronous"
    targetNamespace="http://xmlns.oracle.com/HelloJavaWorldSynchronous"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ns1="http://helloworldjavaproject/"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:client="http://xmlns.oracle.com/HelloJavaWorldSynchronous"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <faultHandlers>
    <catchAll>
    <sequence name="Sequence_1">
    <assign name="Assign_3">
    <copy>
    <from expression="12345"/>
    <to variable="FaultVar" part="code"/>
    </copy>
    <copy>
    <from expression="'Hello fault summary'"/>
    <to variable="FaultVar" part="summary"/>
    </copy>
    <copy>
    <from expression="'Hello test detail'"/>
    <to variable="FaultVar" part="detail"/>
    </copy>
    </assign>
    <throw name="Throw_2" faultName="client:myFault"
    faultVariable="FaultVar"/>
    </sequence>
    HelloJavaWorldSynchronous.wsdl file
    <definitions
    name="HelloJavaWorldSynchronous"
    targetNamespace="http://xmlns.oracle.com/HelloJavaWorldSynchronous"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:ns1="http://schemas.oracle.com/bpel/extension"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:client="http://xmlns.oracle.com/HelloJavaWorldSynchronous"
    >
    <import namespace="http://schemas.oracle.com/bpel/extension" location="RuntimeFault.wsdl";/>
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/HelloJavaWorldSynchronous" schemaLocation="HelloJavaWorldSynchronous.xsd";/>
    </schema>
    </types>
    <message name="HelloJavaWorldSynchronousRequestMessage">
    <part name="payload" element="client:HelloJavaWorldSynchronousProcessRequest"/>
    </message>
    <message name="HelloJavaWorldSynchronousResponseMessage">
    <part name="payload" element="client:HelloJavaWorldSynchronousProcessResponse"/>
    </message>
    <portType name="HelloJavaWorldSynchronous">
    <operation name="process">
    <input message="client:HelloJavaWorldSynchronousRequestMessage"/>
    <output message="client:HelloJavaWorldSynchronousResponseMessage"/>
    <fault name="myFault" message="ns1:RuntimeFaultMessage"/>
    </operation>
    </portType>
    <plnk:partnerLinkType name="HelloJavaWorldSynchronous">
    <plnk:role name="HelloJavaWorldSynchronousProvider">
    <plnk:portType name="client:HelloJavaWorldSynchronous"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    The standard RuntimeFault.wsdl file (RuntimeFaultMessage message is defined in here, so I don't need a message in HelloJavaWorldSynchronous.wsdl. Do I?)
    <?xml version="1.0"; encoding="UTF-8"?>
    <definitions name="RuntimeFault"
    targetNamespace="http://schemas.oracle.com/bpel/extension"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <message name="RuntimeFaultMessage">
    <part name="code" type="xsd:string"/>
    <part name="summary" type="xsd:string"/>
    <part name="detail" type="xsd:string"/>
    </message>
    </definitions>
    But when we invoke the process, after the standard 45 seconds timeout, we still get...
    <Faulthttp://schemas.xmlsoap.org/soap/envelope/>
    <faultcode>env:Server</faultcode>
    <faultstring>com.oracle.bpel.client.delivery.ReceiveTimeOutException: Waiting for response has timed out. The conversation id is f290d62d2ad31aa6:-49eb76f4:124eb51622a:-7c91. Please check the process instance for detail.</faultstring>
    </Fault>
    The console audit below might hold a clue. I noticed the mesage BPELFault" has not been caught by a catch block at the end.
    <catchAll>
    <sequence>
    Assign_3
    [2009/11/13 11:18:32] Updated variable "FaultVar" More...
    -<FaultVar>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="code">
    <code xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">12345
    </code>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="summary">
    <summary xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="detail">
    <detail xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </part>
    </FaultVar>
    [2009/11/13 11:18:32] Updated variable "FaultVar" More...
    -<FaultVar>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="code">
    <code xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">12345
    </code>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="summary">
    <summary xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello fault summary
    </summary>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="detail">
    <detail xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
    </part>
    </FaultVar>
    [2009/11/13 11:18:32] Updated variable "FaultVar" More...
    -<FaultVar>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="code">
    <code xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">12345
    </code>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="summary">
    <summary xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello fault summary
    </summary>
    </part>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="detail">
    <detail xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello test detail
    </detail>
    </part>
    </FaultVar>
    Throw_2 (faulted)
    [2009/11/13 11:18:32] "{http://xmlns.oracle.com/HelloJavaWorldSynchronous}myFault" has been thrown. More...
    -<myFault xmlns="http://xmlns.oracle.com/HelloJavaWorldSynchronous">
    -<part name="code">
    <code xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">12345
    </code>
    </part>
    -<part name="summary">
    <summary xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello fault summary
    </summary>
    </part>
    -<part name="detail">
    <detail xmlns="" xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello test detail
    </detail>
    </part>
    </myFault>
    </sequence>
    </catchAll>
    [2009/11/13 11:18:32] "BPELFault" has not been caught by a catch block.
    [2009/11/13 11:18:32] BPEL process instance "570162" cancelled

    Thanks very much for this answer. It was right on.
    You wanted to know "how (I) get on". Funny you should ask. Believe it or not, I had figured out the problem on my own just about the time you were posting your reply (of course, this is a bit too convenient. No one will ever believe me).
    But the answer leads to another question. What is the Throw activity for, if not to throw an error to the calling process? Is it only used to throw within scope of the process its self?
    I am probably biased by the Java world I am coming from, but Throw feels like it should terminate the process (without side effects like a big red mark in the console) bubble up the fault to the calling process who can catch it (if so desired). Using the reply we must explicitly Terminate (which includes that unsightly red mark).
    Is there any way to get this behavior from the Throw, or should we just reprogram the "wetware" and learn a new paradigm?
    Is there any way to end a process without marking it with a red flag that suggests something went wrong?

  • How to Get the Parent Process ID from Child BPEL Process

    Hi All,
    We have a requirement to get the Parent BPEL Process ID from Child BPEL Process. One way is we can pass the Parent BPEL process ID from Parent BPEL Process to Child BPEL process. Is there any standard function available to get the Parent BPEL process ID from Child Process?
    P.S: We are using BPEL 10.1.3 Version.
    Please share any info on this.
    Thanks in Advance,
    Saravana

    Hi Saravana,
    The existing methods in 10.1.3x allow a following (a bit of a convoluted way):
    In a BPEL Java embedding activity, you can use the following code to get the parentProcessname:
    String parentInstanceId = getParentId();
    String parentProcessname = getLocator().locator.lookupInstance(parentInstanceId).getProcess().getProcessId().getProcessId();Hope this helps,
    Regards,
    Shanmu
    http://www.prshanmu.com/articles/

  • Transaction Error In Synchronous BPEL Process

    Hi All,
    The Bpel Component makes a synchronous call to webservice , at few occurences response from
    webservice delays to 50 secs .
    The default time out of Synchronous Bpel Process is 45 secs, so when response from webservice takes more than 45 secs, the expected behaviour of BPEL
    component should get faulted and control should go to catch all block
    Issue
    But instead, the Invoke activity in BPEL component gets rolled back, and control did not go to catch all block and complete instance goes into running state.
    And after 50 secs, once webservice response back , a new instances gets automitically created .
    Can anyone, Please help me to resolve the issue, i do not want the instances to go into running state .

    What I would do is, have the timeout settings as follows.
    syncMaxWaitTime < EJB Timeout < JTA timeout
    Then, as Vijay pointed in "http://technology.amis.nl/2011/11/18/timeouts-in-oracle-soa-suite-11g/" link, you should add the httpConnTimeout property and httpReadTimeout property to be set less than syncMaxWaitTimeout, so that those timeout will kick in before the syncMaxWaitTime and throw the exception and you can catch it in the catchall block.
    HTH.
    Hruthayah

  • How to invoke an OSB service from a BPEL process

    I need help, to figure out how to invoke an OSB proxy service from a BPEL process.
    I found a blog which exactly does that; but I am unable to get it to work. I get the following error on my BPEL console. We are on OSB10gR3 and SOA 10134.
    "com.bea.wli.sb.transports.TransportException: Unknown error while processing message for service ProxyService DWIntegrations/ProxyService/PeopleServiceBus"
    Any help will be greatly appreciated.
    Regards,
    BP

    It really comes down to the proxy service on the OSB. Is it invoked by a WSDL? If so you should be able to take the endpoint defined in the proxy service messaging configuration and use that URL. You also need to use the sb transport type.
    Can you also post the blog you used, then we can put it into context.
    also have a look at this link.
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/bpelpmtransport/transport.html#wp1116011
    cheers
    James

  • When to use Synchronous BPEL process.....??

    I know the difference between Asynchronous and Synchronous BPEL process... BUt can any body tell me exactly when to use synchronous BPLE process... it will be great if anybody can give me some example..??

    If caller needs to receive output from processing immediately then use sync.
    For instance give me get customer details and display immediately on screen
    If processing is taking longer time more than fewl seconds use async
    Example:
    Submit order for processing

  • Error while invoking ESB process from a BPEL process

    Hi all
    We have a requirement to call an ESB process from a BPEL process. We are using an adapter wth the ESB's WSDL url. After deploying the BPEL process, the registered ESB is getting called for most values while suddenly some values return the followign error
    *"exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection reset"*
    The catch here is, if we re-run the process with the same values again, the ESB is called successfully! How is it possible for a process to error out and run normally for the same inputs ?
    What could be the possible fix for this? I am thankful for any inputs on this.
    Vijay

    Hi Vijay,
    This is a bug and you can refer the metalink note:
    "Applying Patch 7445876 Results in Error "java.lang.NullPointerException". [ID 942575.1]" for reference.
    Also you can refer the following link:
    "http://puchaanirudh.blogspot.com/2008/12/exception-on-jaxrpc-invoke-http.html" also.
    Thanks,
    Vishwanath.

  • Invoking Session EJB (with WSIF binding) from a BPEL process

    Hi,
    I am invoking a stateless session bean from a bpel process. The bpel process is throwing:
    Failed to lookup EJB home using JNDI name 'ejb/visilient/BPELHelper'; nested exception is:
         java.lang.NullPointerException
    I can see the ejb jndi name under 'default' app.
    Any ideas?
    TIA

    It is a lovely sample... However, it doesn't cover Complex Types and Exception handling. It would be nice if each example was thorough. Would be a great help.
    What I was hoping to achieve is this:
    1) Have an EJB deployed
    2) Use WSIF for BPEL Processes.
    3) Use Web Service interface for AJAX calls etc.
    I was hoping that this would be the exact code base and that only a single EJB would be deployed.
    So far, it looks like JDeveloper will only support Java WSIF bindings. No EJB Bindings. It also looks like JAXRPC is the best supported WS interface. With that in mind, it deploys a seperate subset of the EJB. Thus causing two seperate deployments. I am working on trying all this out over the next couple days. See where I get.
    Anyways, do you have any recommendation for accomplishing what I am wanting to do? 1 deployed EJB, with a WS interface and allowing WSIF bindings. Any other references for me to look at? Should I not be thinking about using JDeveloper for any of the WSDL generation and do all this manually for now?
    Thanks,
    BradW

  • How to invoke a custom adapter from a BPEL process

    Hi guys,
    I've implemented a custom outbound adapter and deployed successfully on Weblogic V.10.3.4.
    My current installation also consists of Oracle SOA Suite 11g / JDeveloper 11g (11.1.1.4.0)
    In the Weblogic administrator's console,
    *1.* I navigated to:
    Summary of Deployments -> AdapterName -> Configuration -> Outbound Connection Pools
    *2.* Selected: javax.resource.cci.ConnectionFactory and added new JNDI name for Outbound Connection Instance: "*eis/HelloWorld*"
    My task is to invoke the custom adapter from a BPEL process.
    I altered the customAdapter-config.xml so as to be able to use custom adapter wizard from JDeveloper's "Service Adapters" palette,
    and fullfilled the custom adapter wizard's fields accordingly. The 3rd step of the wizard requires Connection Information.
    I added: "*eis/HelloWorld*" in the "*Connection Factory Location*" field.
    Deployed BPEL process successfully, but testing failed due to binding.jca-12510 error:
    "The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/HelloWorld'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/HelloWorld. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server "I tried to apply (just for testing) "eis/FileAdapter" in the "Connection Factory Location" field of the custom adapter wizard,
    and BPEL successfully invoked the adapter.
    Any ideas ?
    Thanks,
    George

    George, What deployment do you have this associated with?
    - D.J.

  • How can we call a OSB proxy service from a BPEL process?

    Hi,
    I want to call a OSB proxy service from a BPEL process. Can you please explain me the procedure?

    Get the wsdl of the OSB proxy service and create webservice parnerlink in BPEL based on this wsdl to invoke the service
    To form the wsdl url, copy the Endpoint URI  configured to the proxy service(just click on the proxy service in the console) from the sbconsole  - /ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService
    Pre append <<protocol://OSB Hostname:OSB Port>>  - http://localhost:8000/   and post append with ?WSDL
    The final WSDL url look like  - http://localhost:8000/ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService?WSDL
    Regards
    Albin I

Maybe you are looking for

  • Sprint Treo 650 and .mac mail together as one?

    I own a treo 650 and use Sprint as a cell provider. I have a .mac account that I use for email. I am not recieving my email on my treo 650 unless I manually click on my VersaMail button. My emails will then download but I am unable to respond to any

  • Controlling multiple videos with one set of controls

    I'm currently working on a project that allows the user to view multiple videos at one time. The videos will be exactly the same length and video format/type. I'd like to let the user use just one set of controls to view each video. Is this possible?

  • XI Post Installation - SLD Connection

    Hi, I'm following the XI 3.0 post-installation guide. In the step "Maintaining SLD Connection Parameters" I call transaction SLDAPICUST and try to insert a row as described in the guide. The problem occurs in the password column which is not editable

  • Directory Issues

    I have adirecetory that is locked in my hard drive that I'm unable to access to delete it. It seems to have happened when I synced my hard drive with the backup version and ran out of space. When I use Finder and slecet Get Info the directory locatio

  • Resource action not being called

    The executable file not being called <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Waveset PUBLIC 'waveset.dtd' 'waveset.dtd'> <Waveset> <ResourceAction name='AfterUpdate'> <ResTypeAction restype='Red Hat Linux' timeout='6000'> <act> /usr/local/vi