Avoid Concurrent Instances of A BPEL Process

Hi:
We have a BPEL Process and we need The instances of the same process not run concurrently. Is there any configuration for this?
This is an Asyncronous process.
The process inserts in a Table from one system to another as an interfase and when more than one instances run at same time we are having "duplicate key errors".
Ignacio...

Hmm, this is an interesting requirement. I am not sure if there is an easy way to implement this but this seems like something that the BPEL PM engine should provide. Just to make sure that I understand the requirement:
do you want:
1) wait process #1 to finish before you can initiate process #2
or
2) do you just want to make sure that process #1 does not execute at the same time process #2 is executing (by this I mean that it is OK for process #2 to run when process #1 is waiting for async callback or time.
Thank you,
Edwin

Similar Messages

  • Avoid 2 instances of a BPEL process executing an activity at the same time?

    Hi,
    Is there a way I can avoid execution of an activity from two or more different instances of the same BPEL process at the same time?
    I would like to know if I can lock the activity across BPEL instances so that only one instace can execute an activity at a time?
    Kindly give me possible ways I can achieve this? We are using BPEL PM 10.1.2.
    Thanks,
    Sasi Bhushan

    As HEWizard said, you need to look at 'singleton'
    http://blogs.oracle.com/matt/2006/08/23
    http://orasoa.blogspot.com/2007/05/create-singleton-process.html
    the idea behind a singleton is you can only make one instance of the process. In the process you can handle the sap-activity.

  • Sequential Instantiation of BPEL instances for a BPEL process

    Hi,
    We are using Oracle SOA 10.1.3.4 & AIA2.5. We have a situation where the instances of a particular bpel process have to be executed in sequence. Also, the new instance should NOT be instantiated unless the previous instance is completed.
    For example.. Lets say a SyncBPELReqABCS is invoking SyncBPELProvABCS via ESB. SyncBPELReqABCS is looping and spawning multiple instances of SyncBPELProvABCS in a certain sequential order in Asynchronous Fire-and-Forget model. Lets say bpel-instance#1, bpel-instance#2 and bpel-instance#3 are instances of SyncBPELProvABCS process. Even though SyncBPELReqABCS invokes (spawns) SyncBPELProvABCS in a fire and forget model, the bpel-instance#2 should not begin unless bpel-instance#1 is completed and bpel-instance#3 shuld not begin unless bpel-instance#2 is completed. This is because there is a dependancy between instacnes of SyncBPELProvABCS process.
    Can this be achieved in Oracle SOA?? Can we restrict the instacnes of SyncBPELProvABCS to be created in this manner?
    This is similar to "incompatability" of concurrent programs in ORACLE EBusiness Suite where one concurrent program waits till another concurrent program completes.
    Please let me know if I am not clear. Appreciate an immediate help!
    Thanks,

    Hello,
    Now that I look back at this tread, I can see that the questions I was asking and those of the original poster were somewhat different.
    But they both fall under the heading of "Sequential Instantiation of BPEL instances for a BPEL process", and so I thought I would post some findings we've come across regarding that topic here.
    There were a couple steps that helped us achieve the behavior we were looking for, and the were...
    1) Change the BPEL oneWayDeliveryPolicy from "async.persist" to "sync"
    This can be done in a couple locations. The first is within the EM application that comes bundled with SOA 11g, and the place to go is:EM > [farm name] > SOA > soa-infra (right click) > SOA Administration > BPEL Properties > More BPEL Configuration Properties > OneWayDeliveryPolicyOnce that value has been changed to "sync" (without the quotes), you'll need to stop and start the managed servers that run your SOA instance(s).
    As you might expect, making a change at the "server level" like this impacts the default behavior of all composites deployed within your SOA instance. The second place to make this change - within the deployment descriptors for your BPEL process - impacts only the BPEL process that is being modified. To make the change at this level, you would edit your project's composite.xml file and, for each BPEL component, specify:  <component name="BPELProcess1" version="2.0">
        <implementation.bpel src="BPELProcess1.bpel"/>
        <property name="bpel.config.oneWayDeliveryPolicy">sync</property>
        <property name="bpel.config.transaction">required</property>
      </component>What does this change do? Well, I don't claim to have a complete understanding, but in theory it prevents a thread handoff from taking place between the service that is initiates your BPEL process (like a receive) and the actual BPEL engine thread that processes the request.
    In our case, where calls between (and within) composites were all of the synchronous "fire and forget" variety, this change also caused the entire processing of a message (across three different composites) to happen in a single thread (each message handoff was one-way, and with the oneWayDeliveryPolicy set to "sync", each was handled in a synchronous manner).
    This also seemed to have the effect of serializing our message processing. For example, in a test case where a BPEL process reads from a JMS queue and 250 messages are enqueued, with the oneWayDeliveryPolicy set to "async.persist", I'd typically go in to EM and, on each refresh, find 5-8 instances of the composite that processes those messages to be in a "Running" state. Once the change to "sync" was made, I'd only see at most only 2 (where one had actually already finished; the audit system just hadn't yet caught up to that fact yet).
    This also means that, with a "sync" delivery policy, messages (at least in our environment) are processed more slowly, but that was ok with us as we were more concerned with the behavior than the speed.
    For details on this and other BPEL deployment descriptor properties, see:
    http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10224/bp_app_deploydesc.htm
    Also, it's important to note that making the above change will alter the boundaries of your transactions as well as how faults are propagated. For more details, see:
    http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10224/soa_transactions.htm
    2) Front BPEL process with a Mediator object and enable message resequencing
    While we're using the above change as a standard practice in our environment, this second change has only been nominally tested - but it could be of interest and so I'll mention it here.
    Once you've updated your composite to include a mediator object in front of your BPEL process (if there isn't one there already), edit the .mplan for your mediator and change the "Resequence Level" from the default value of "operations" to "component". Then change the "Resequence Mode" from "off" to "FIFO" and specify an X-Path expression by which the mediator will be able to group your messages. This will help ensure that the messages are being processed in the order you expect.
    More information about resequencing within the mediator component can be found:
    http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10224/med_resequencer.htm
    Hopefully the above information is useful - if not for the original poster, then for someone who comes along later with similar questions.
    - Nathan

  • Single instance of a BPEL process

    Hi,
    We are using BPEL 10.1.3.3.0 for integration between a vendor product and Oracle E-Business Suite.
    Is there a way of ensuring that only one instance of the BPEL process is active at any one time?
    The reason behind this is because the process takes data from the vendor system using a db adapter and calls a PL/SQL procedure to validate and call Oracle APIs to update base tables. We need to be able to guarantee the order of processing to ensure the latest data is written to Oracle.
    We have been experiencing the situation where multiple instances of the BPEL process are initiated at once, and causing out of order processing resulting in duplicate data being written to Oracle, and out of order updating causing out of date information overriding the latest data.
    We are using a database adapter to poll a table for new records. The delete polling strategy removes records after being read. Up to 1000 records can be read in each instance. The polling interval is 60 seconds.
    Cheers,
    Will

    Thanks Eric.
    I have almost got it working, except that when I initiate multiple instances of the Singleton Accessor, some instances remain waiting forever for a response.
    Have you been able to work through this example with success?
    Cheers,
    Will

  • Instance ID of BPEL process

    I'm starting the BPEL process by creating webservice data control in a ADF page. How can i get the instance ID of it?

    This xpath function returns current instance id of running process ora:getInstanceId().
    But in your case I would do this flow in ESB. Because this kind of "provisioning" of data can be done in ESB. Each execution I would define as async. And when exception occurs it will be logged by ESB and moved to error hospital. Administrator can easily use ESB console to query faulted instances and if neccesary he can resubmit them.
    Just an idea how to make it faster, without doing some special development.

  • PHP always invokes Two BPEL process Instances

    Hello All:
    I have a BPEL process that I want to invoke from a PHP form. The problem that I'm having is that every time that I invoke the BPEL process from PHP, two instances of that BPEL process get created and invoked in the BPEL manager.
    Has anyone experienced this problem? I know that when I log into the BPEL console and initiate a test instance, I only get one, so my feeling is that it may be PHP. Here is a list of my environments:
    BPEL Server Environment
    OS Version - Microsoft Windows XP
    Oracle SOA Suite v10.1.3.1.0
    Oracle BPEL Console v10.1.3.1.0
    Client Environment
    Server Software - Apache/2.0.55 (Win32)
    OS Version - Microsoft Windows XP
    PHP Version - 5.1.4
    Zend Engine Version - 2.1.0
    Here is my PHP code for invoking the BPEL process:
    <?php
    $wsdl = 'http://localhost:8888/orabpel/default/ChangeCustomerName/1.0/ChangeCustomerName?wsdl';
    try {
         $client = new SoapClient($wsdl);
         $return = $client->process(array("cust_account_id"=>167484,"new_cust_name"=>"TESTING>"));
         if ($return->return_code == 'E') {
         echo 'Error: '.$return->return_message;
         } else {
         echo 'Success!';
    } catch (SOAPFault $e) {
    var_dump($e);
    ?>
    Again the problem is not that I can't invoke a BPEL process or that the BPEL process does not function properly, it is that when I do invoke it from PHP, I get two instances in BPEL.
    Thanks,
    Ben

    If you are using a tool like: soapui.org (Opensource SOAP client tool), and create a soap request, do you get the same behavior. If so, there is an issue in BPEL, otherwise in your PHP environment.

  • To delete all instances of a particular bpel process using java APIs

    Hi,
    Which classes and methods are used for bulk instances deletion of BPEL process using APIs.

    Iam using this code for deleting instances in bulk,
    WhereCondition wc = WhereConditionHelper.whereInstancesClosed();
    IBPELDomainHandle domainHandle = locator.lookupDomain();
    BPELProcessId processId1 = new BPELProcessId("default","DBTest","1.0");
    domainHandle.deleteInstancesByProcessId(processId1);
    but iam getting Eceptions like
    Exception in thread "main" java.lang.Exception: Error deserializing return-value: java.io.InvalidClassException: com.oracle.bpel.client.BPELDomainHandle; local class incompatible: stream classdesc serialVersionUID = -6384534326625967840, local class serialVersionUID = -8310067783665200608
    Iam able to delete instances one by one using this code,
    ------------------- basic code-----------
    IInstanceHandle instance_handle[];
    instance_handle= locator.listInstances(wc);
    for(int x = 0; x< instance_handle.length; x++){
    System.out.println("Deleting instance "+instance_handle[x]);
    instance_handle[x].delete();
    But i want to delete instances in bulk,not one by one.Can you help me out in this.

  • Invoke OnMessage activity of a running BPEL process instance...

    Hi,
    We are using Oracle BPEL 10.1.2.0.2. I am willing to invoke a running instance of a BPEL process (Timer) in following scenario:
    The 'Timer' BPEL Process gets initiated, and logs its instance-id into the database
    'Timer' process waits on an OnMessage activity for another process to invoke it
    Another BPEL process selects the instance-id of 'Timer' process from the database
    The question is: in the above scenario, can the 2nd BPEL process invoke the OnMessage activity of the Timer BPEL process. I did search through the Locator API but was unable to find a method which can invoke a running BPEL instance.
    I am not willing to use correlation here because correlation does not guaranty the invocation of the target BPEL process and also does not generate any error if no instance gets invoked.
    Thanks,
    Upendra Jariya.

    JDK 5.0 includes sample code for java.lang.management API in the <JDK>/demo/management directory. In particular, demo/management/VerboseGC demonstrates how to use the java.lang.management API to print GC statistics in a similar way to -verbose:gc.
    You can reference this demo program and make appropriate modification, for example, just to call java.lang.management.MemoryMXBean.setVerbose() operation to turn on/off the -verbose:gc tracing.

  • Error while invoking BPEL Process through HTML Page

    Hi ,
    I have created a HTML Page to invoke BPEL synchronous process .
    HTML Page contains :
    <html>
    <head>
    <title>Untitled Document</title>
    <h1>Add Macro Task Input Form </h1>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="cyan" text="#000000">
    <form name="form1" method="get" action="/httpbinding/default/AddMacroSync/process">
    EmployeeId :
    <input type="text" name="EmployeeId" ><br>
    <br>
    TaskName :
    <input type="text" name="MacroTaskName" >
    <button
    id="identifier"
    class="dialog"
    label="OK"
    accesskey="t"/>
    <br>
    </form>
    </body>
    </html>
    I am able to invoke my BPEL Process named as " AddMacroSync" .
    It also creating instance for this BPEL Process .
    But when I go BPEL Console and check my instance , it is always faulted .
    I am providing two inputs : Employee Id and Taskname through HTML Page .
    These inputs got assigned to their respective output variables .
    But when I click on audit link ..it shows error while invoking the Process .
    It Show error :
    when invoking endpointAddress 'http://152.69.248.232:8990/AddMacroTask-AddMacroTask-context-root/AddMacroTaskWebService', [java.lang.NumberFormatException]
    But this end point address is working when I put this address in URL .
    Please someone help me how to solve this problem .
    Thanks
    Prashant Dwivedi
    Message was edited by:
    Prashant Dwivedi

    Hi Clemens ,
    I changed My HTML ...Now it looks like as :
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="application/x-www-form-urlencoded; charset=iso-8859-1">
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="/httpbinding/default/AddMacroSync">
    <input type="hidden" name="msg_part" value="payload">
    <input type="hidden" name="namespace" value="http://xmlns.oracle.com/AddMacroSync">
    EmployeeId:
    <input type="text" name="EmployeeId">
    TaskName :
    <input type="text" name="TaskName">
    <input type="submit" name="Submit" value="Submit">
    </form>
    </body>
    </html>
    After this when I try to incoke my BPEL Process through this HTML :
    I am gettign following error :
    500 Internal Server Error
    java.lang.IllegalStateException: IOException: Premature end of POST data
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindHttpServletRequest.getParameter(EvermindHttpServletRequest.java:2452)
         at com.collaxa.cube.ws.http.HttpBindingServlet.checkSecurity(HttpBindingServlet.java:281)
         at com.collaxa.cube.ws.http.HttpBindingServlet.doPost(HttpBindingServlet.java:85)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:824)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)

  • TNS:Operation Timed Out error while trying to invoke BPEL Process from sql

    Hi,
    I am trying to invoke a BPEL Process from PL/sql code. When i try to invoke the process, I am getting the following error message
    ORA-29273 HTTP Request Failed
    ORA:06512: at SYS.UTH_HTTP at line 1029
    ORA:12535: TNS:Operation Timed Out
    ORA:06512: at line 18
    I have the SOA suite installed on my local machine...and the BPEL process that i am trying to invoke is deployed their.
    Any idea what could be wrong..following is the code piece
    soap_request:='<?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header/>
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/Test">
    <ns1:TesProcessRequest><ns1:input>is1_1land</ns1:input></ns1:TesProcessRequest>
    </soap:Body>
    </soap:Envelope>';
    dbms_output.put_line('soap_request: '||soap_request);
    utl_http.set_proxy('3.209.30.25:80', '3.209.32.149:8888');
    http_req:= utl_http.begin_request('http://3.209.32.149:8888/orabpel/default/Tes/1.0 '
                   ,'POST'
                                  ,'HTTP/1.1');
    dbms_output.put_line('after Begin Request' );
    utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
    Please advise

    you are right the file adapter doesnt invoke any bpel
    process, instead it is polling the file from
    directory location?If it is polling for new files, shouldn't it create a new instance of the BPEL process automatically the moment it finds a new file? In other words, should a new file trigger an instance of the BPEL process rather than being started from PL/SQL?
    Can this file adapter not be invoked as bpel process
    in that case?The file adapter is part of a BPEL process. The BPEL process can be invoked from e.g. PL/SQL.
    In this case this file adapeter return to an RECEIVE
    activity...I think this receive cannot be invoked as
    a BPEL process rite?Can you explain what you mean with this?
    Also , will all synchronous request return "TIMEOUT"
    error, if tried to invoke from pl/sql?Only if the synchronous process instance takes more time to complete (and thus to return) than the value specified for a time-out to occur. If the instance completes in for example 10 ms and the time-out time is specified as 30 seconds, no time-out will occur.
    Regards, Ronald

  • How to get the instance id of BPEL in OSB

    We have the process in OSB which will invoke the BPEL ansync process and returns success once the BPEL is invoked.
    Can we refer/get the BPEL instance id in OSB by anymeans?

    There is another option. You may set the unique instance name in BPEL process based on some value in the payload. From OSB you may query composite_instance table of SOAINFRA schema on the basis of instance name (title column) and/or composite name (composite_dn column) to get the value of instance id (ID column) and return it in response from OSB.
    Regards,
    Anuj

  • Problems in invoking BPEL process

    Hi there,
    I created with JDeveloper the following BPEL process :
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <process name="ProvaBPEL" targetNamespace="http://xmlns.oracle.com/ProvaBPEL"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:bpws="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:ns1="http://www.research.ibm.com/wsla"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:client="http://xmlns.oracle.com/ProvaBPEL"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <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="client" partnerLinkType="client:ProvaBPEL"
    myRole="ProvaBPELProvider"/>
    </partnerLinks>
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <variable name="inputVariable"
    messageType="client:ProvaBPELRequestMessage"/>
    <!-- Reference to the message that will be returned to the requester-->
    <variable name="outputVariable"
    messageType="client:ProvaBPELResponseMessage"/>
    </variables>
    <sequence name="main">
    <!-- Receive input from requestor. (Note: This maps to operation defined in ProvaBPEL.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:ProvaBPEL" operation="process"
    variable="inputVariable" createInstance="yes"/>
    <!-- Generate reply to synchronous request -->
    <assign name="Assign_1">
    <copy>
    <from variable="inputVariable" part="payload"/>
    <to variable="outputVariable" part="payload"/>
    </copy>
    </assign>
    <reply name="replyOutput" partnerLink="client" portType="client:ProvaBPEL"
    operation="process" variable="outputVariable"/>
    </sequence>
    </process>
    which gets as input a WSLA type (http://www.research.ibm.com/wsla) and returns it as output without performing any operation (just a copy operation).
    I have deployed the process and it can be accessed at http://localhost/8888/orabpel/default/ProvaBPEL/1.0. I can see it in the BPEL Console but (first problem) I can't test it because I can't see the usual HTML form the BPEL console shows. I can't see the origine xml form too. If I go to the BPEL endpoint I see the following error message:
    Cannot test this Operation using the Test Page because Could not understand type: {http://www.research.ibm.com/wsla}StringList
    The wsdl of the deployed BPEL Process is:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="ProvaBPEL"
    targetNamespace="http://xmlns.oracle.com/ProvaBPEL"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/ProvaBPEL"
    xmlns:ns1="http://www.research.ibm.com/wsla"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://www.research.ibm.com/wsla" schemaLocation="WSLA093.xsd" />
              </schema>
         </types>
         <message name="ProvaBPELRequestMessage">
              <part name="payload" element="ns1:SLA" />
         </message>
         <message name="ProvaBPELResponseMessage">
              <part name="payload" element="ns1:SLA" />
         </message>
         <!-- portType implemented by the ProvaBPEL BPEL process -->
         <portType name="ProvaBPEL">
              <operation name="process">
                   <input message="client:ProvaBPELRequestMessage" />
                   <output message="client:ProvaBPELResponseMessage"/>
              </operation>
         </portType>
         <plnk:partnerLinkType name="ProvaBPEL">
              <plnk:role name="ProvaBPELProvider">
                   <plnk:portType name="client:ProvaBPEL"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>
    I used Apache XMLBeans to bind the WSLA types to Java types creating a WSLA.jar that I import in the following client I have developed:
    import com.ibm.research.wsla.*;
    import java.io.File;
    import java.net.URL;
    import javax.xml.soap.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    public class SOAPClient {
    public static void main(String[] args) {
    SOAPConnectionFactory fact;
    try {  
    fact = SOAPConnectionFactory.newInstance();
    SOAPConnection con = fact.createConnection();
    MessageFactory mfact = MessageFactory.newInstance();
    SOAPMessage smsg = mfact.createMessage();
    SOAPPart prt = smsg.getSOAPPart();
    SOAPEnvelope env = prt.getEnvelope();
    SOAPBody bdy = env.getBody();
    File xmlfile = new File("C:\\prova.xml");
    SLADocument sladoc = SLADocument.Factory.parse(xmlfile);
    Node nd = sladoc.getDomNode();
    bdy.addDocument((Document) nd);
    System.out.println("SOAP Message:");
    smsg.writeTo(System.out);
    System.out.println();
    System.out.println();
    //Set the WebService end point URL
    URL endpoint = new URL("http://dana:8888/orabpel/default/ProvaBPEL/1.0");
    //Send the message
    SOAPMessage response;
    response = con.call(smsg, endpoint);
    System.out.println("Received SOAP Message:");
    response.writeTo(System.out);
    System.out.println();
    //Close the connection
    con.close();
    catch (Exception e) {
    e.printStackTrace();
    The client simply parses an XML file and uses it as bosy of the SOAP message.
    JDeveloper compiles it without errors but when I run the project (second problem) I get the following as SOAP response:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>java.lang.NullPointerException</faultstring><faultactor></faultactor></env:Fault></env:Body></env:Envelope>
    and I can't see any instance of the BPEL Process in the BPEL Console. I'm quite sure the SOAP message is well formed because I can see it in the Running output. I also tried with simpler BPEL process for which I can see the HTML form in the BPEL Console and copying and pasting the SOAP message generated with my client in the Origine XML form the Process was invoked correctly.
    Can anybody help me? Thanks in advance.

    Great! Thank you for the reply! Now I manage to invocate the BPEL process. I put the line:
    smsg.getMimeHeaders().addHeader("SOAPAction", "process");
    and now my day is a good day!
    However I tried to place the import of the WSLA093.xsd schema outside the types element with:
    <import namespace="http://www.research.ibm.com/wsla" location="WSLA093.xsd" />
    but it didn't work. Now the wsdl file of the BPEL Process is:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="ProvaBPEL"
    targetNamespace="http://xmlns.oracle.com/ProvaBPEL"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/ProvaBPEL"
    xmlns:ns1="http://www.research.ibm.com/wsla"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
    <import namespace="http://www.research.ibm.com/wsla" location="WSLA093.xsd" />
    <types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://www.research.ibm.com/wsla" schemaLocation="WSLA093.xsd" />
              </schema>
         </types>
         <message name="ProvaBPELRequestMessage">
              <part name="payload" element="ns1:SLA" />
         </message>
         <message name="ProvaBPELResponseMessage">
              <part name="payload" element="ns1:SLA" />
         </message>
         <!-- portType implemented by the ProvaBPEL BPEL process -->
         <portType name="ProvaBPEL">
              <operation name="process">
                   <input message="client:ProvaBPELRequestMessage" />
                   <output message="client:ProvaBPELResponseMessage"/>
              </operation>
         </portType>
         <plnk:partnerLinkType name="ProvaBPEL">
              <plnk:role name="ProvaBPELProvider">
                   <plnk:portType name="client:ProvaBPEL"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>
    Please tell me if it is correct. I also tried to delete the line:
    <import namespace="http://www.research.ibm.com/wsla" schemaLocation="WSLA093.xsd" />
    from the types element (even if I don't know if it is correct) but I always have the same error in the BPEL endpoint page:
    Cannot test this Operation using the Test Page because Could not understand type: {http://www.research.ibm.com/wsla}StringList
    Thank you very muche for the help.

  • Any java API to get the metadata for a deployed bpel process in soa/bpm11g?

    Hi,
    Just wonder if this is possible, that there is some existing java api to retrieve the metadata (containing activities, isSynchrous, version information etc) for a deployed bpel process? If not, is there any other way to achieve this goal ( or example query database table directly)?
    I can only find this link for soa11g java api. I am able to invoke the bpel process using this API(direct binding) from java client.
    http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/index.html?overview-tree.html
    Any help will be greatly appreciated.
    Thanks,
    Bin

    What I find so far:
    1. can get some process property values from ComponentInstance class, see its api.
    http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10659/oracle/soa/management/facade/ComponentInstance.html
    Please refer http://blogs.oracle.com/soabpm/2009/07/soa_suite_11g_api_tricks_part.html of how to get the component instance (contain the bpel process) from a composite object
    2. in dev_soainfra database schema, the CUBE_INSTANCE table contains most of soa bpel components information. The BPM_CUBE_PROCESS table seems to contain only the process defined in a bpm application. This sounds a little confused, if we want to develop a bpel application, should it be put in soa or bpm application and what is the difference?
    Please feel free to correct any mistakes here.

  • Aborting multiple hanging BPEL processes in bulk

    Hi,
    Is tehre a way to stop multiple hanging BPEL process in one shot, without shutting down the server..
    I went thro' the following url but dunno if i can use any command for this..
    http://download.oracle.com/docs/cd/B25221_04/core.1013/b15976/opmnctl.htm#i1026430
    Thanks,
    Vishnupriya

    Hi,
    i guess i din't frame the question correctly.. I want to abort few open instances of various BPEL processes, not retire or turn off the BPEL processes.. apologies for making the question ambigous.. I went thro' the the link u had specified and found that, it was about retiring/turning off/undeploying multiple BPEL processes. I actually want to abort the running instances of BPEL processes..
    Thanks,
    Vishupriya

  • BPEL process Load testing

    Hi..
    I want to create 1,00,000 instances for a BPEL process at a time.... for this I used stress testing
    but my server was not supporting to create those many instances...
    to create 100000 instances what are the parameters i need to configure/change..
    Is there any other alternate way to test load of BPEL processes...
    thank you

    What is the specification of your machine?
    What is the payload size?
    What is your topology?
    What this is doing is sending 1000 messages a second for 1000 seconds.
    I would say this is a limitation of you OS not the SOA Suite, as I mentioned SOA Suite manages approximately 100 processes a second before you need to start thinking about adding more nodes to the cluster.
    What is your use case. Do you really need to process 1000 messages a second? If not why are you testing at this load.
    To answer your question what is the maximum threads. It comes down to your topology. Oracle provides a scalable solution so you can process any number of processes. You need to size the hardware accordingly.
    cheers
    James

Maybe you are looking for

  • [Help] HP G60-630 Drivers For XP

    Please help me to get the HP G60-630US Drivers For XP. Specially for sound card.

  • Can't access iCloud mail or contacts from PC

    I can't access my iCloud emails or contacts from my home PC (Windows 7). iCloud.com either returns an error message or else fails to respond at all. All other sites I try are behaving normally, so it would appear to be an iCloud problem rather than a

  • Regarding Bigger SGA in ECC 6.0

    Hi All, When installing SAP ECC 6.0/Oracle 10g on AIX 5.3, if i am modifing instance memory then installation giving me following error in catproc.sql running phase. ============ ERROR==== ========= ========= ========= ======= ERROR 2006-12-20 09:44:

  • Constantly getting error 302 when trying to export release build

    As the title says, I can't export a release build (any more) with Flash Builder 4.7 using AIR 3.5 (or 3.6 beta for that matter). The compilation process is immediately interrupted with error 302: Root content ... is missing from package. What can I d

  • Version 'M' of chain was saved without checking

    Hi experts, I have a process chain.A error appears in the log: Job started                                                                        Step 001 started (program RSPROCESS, variant &0000000078212, user ID BWREMOTE)     Version 'M' of chain