Parallel execution of a bpel process

Hello,
I have a DbAdapter that is mapping a table and exposes operations to insert, update and select data.
This DbAdapter is being referenced in two bpel processes - bpelProcess1 and bpelProcess2:
1- bpelProcess1 -> this process firstly performs a select operation on the DbAdapter, querying for a certain row. If it returns a record, then an Id of the record is saved for further usage. If it returns nothing, then the DbAdapter is invoked again to perform an insert, and the Id of the newly created record is saved as well.
Then, this bpelProcess1 also invokes the second bpel process (bpelProcess2, the same that references the DbAdapter) and provides the Id retrieved before by the select/insert operation;
2- bpelProcess2 -> this process, after a few conditions, performs the update operation of the DbAdapter, using the Id provided by the bpelProcess1.
Now, what is the best approach to avoid incoherent data in the database?
If the process bpelProcess1 is invoked twice in a row, both instances of the process perform the select, searching for the same row - and none of them will get any data. Therefore both follow to the insert process. Only one of them should insert, the second one should already find it in the database.
The database is SqlServer, so if I change the DbAdapter from mapping a table to call a ...:
- function --> SqlServer doesn't allow to perform DML inside functions;
- procedure --> how can I return the values I need from insert/select?
What are your thoughts?
Best regards,
Bagagem

Bagagem wrote:
Now, what is the best approach to avoid incoherent data in the database?
If the process bpelProcess1 is invoked twice in a row, both instances of the process perform the select, searching for the same row - and none of them will get any data. Therefore both follow to the insert process. Only one of them should insert, the second one should already find it in the database.That's a classical concurrency control problem... It will arise in any language, not only in BPEL... You can solve it by using optimistic or pessimistic currency control... See link bellow for reference...
http://publib.boulder.ibm.com/infocenter/soliddb/v6r3/index.jsp?topic=/com.ibm.swg.im.soliddb.sql.doc/doc/pessimistic.vs.optimistic.concurrency.control.html
I believe an optimistic approach for your case will be to create a unique index and let both instances insert the row... One of the instances will not be able to commit at the end of the transaction (because of the unique index)... So the last instance will fail, but will execute just fine after retry (it will find the row)... A pessimistic approach will be more complex to achieve as you can not lock something that is not there yet, you may then need some extra control table to implement a pessimistic approach...
Hope this helps...
Cheers,
Vlad

Similar Messages

  • BPEL process instance doesn't restart execution after BPEL server restart

    I am using Oracle BPEL server 10.1.2 on Windows with the Oracle lite 10G dehydration datastore.
    I have a one BPEL process (proc1) that invokes another BPEL process (proc2) synchronously. proc1 also invokes proc3 (also a BPEL process, but probably doesn't matter) synchronoulsy in parallel with proc2.
    proc2 has a wait of ~30seconds in it. As soon as proc1 invokes proc2, I shutdown BPEL. Now, when I restart the BPEL server, proc2 instance finishes its execution. But, I don't see instances of proc1 and proc3 in the BPEL console.
    Here are my questions:
    1. If proc1 invokes proc2 and proc3 in parallel, shouldn't I see instances of proc2 and proc3 at the same time? I only see proc2 not even proc1.
    2. Why doesn't proc1 resume its execution after BPEL server is restarted?
    Any pointers appreciated.

    1. If proc1 invokes proc2 and proc3 in parallel, shouldn't I see instances of proc2 and proc3 at the same time? I only see proc2 not even proc1.
    Please read this thread:
    ParallelFlows + sync flow

  • Error while execution of BPEL processes in IPM Solution

    Hi All,
    I am working on the IPM Imaging solution in which Invoice data is captured from OFR in XML format , pushed into IPM and then BPEL process is invoked to push the data into apps tables.
    I am facing following error while invoking a procedure which is in apps schema from BPEL by giving it parameters.
    actually this procedure/function will accept the payloads as parameters and will give some output parameters, but while processing i am getting following error :
    Non Recoverable System Fault :
    Exception occurred when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'PreImportCleanup' failed due to: Parse struct conversion error. An error occurred while parsing XML representing a Java struct. Unable to convert the XSD element P_INVOICE_REC whose user defined
    type is AXF.AXF_PREIMPORT_CUSTOM_PKG_R_IN to a Java struct.
    Cause: java.sql.SQLSyntaxErrorException: ORA-04044: procedure, function, package, or type is not allowed here ".
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    Any suggestion to get over this issue will be so helpful !
    Thanks & Regards,
    Nupur

    Hi Nupur,
    We had requirement for automating invoice processing, came to know we need to use ODC/ODDC,OFR,OIPM 11g and SOA 11g with EBS.
    My questions are:
    1. do we need OFR for this.
    2. if so how to configure OFR with OIPM
    3. do we need to use imaging solution in OIPM for invoice processing and not managed attaachements
    4. whts the flow is it frm EBS to OIPM or OIPM to EBS(populate invoice) or viceversa
    5. can we do invoice processing automated without AXF solution.
    Thanks a lot in Advance,
    Ra.

  • Parallel user for oc4jadmin for monitoring BPEL processes

    Dear All
    We need to create one user which can be used to monitoring the BPEL processes on console, we dont want to user oc4jadmin user, so how can we create a user who can monitor the BPEL processes, but cant do any change on the BPEL processes / console.
    regards

    Thanks for the link, i had seen it too, but i thought may be there is some standard way in Oracle to do this, may be in future release of SOA / BPEL Oracle will enhance it.
    cheers
    Mehmood
    blog url
    http://mehmoodm.blogspot.com/

  • Can we prioritize certain bpel processes over others during execution

    hi
    I have a specific requirement in BPEL.
    I have some set of processes deployed on BPEL server in default domain. My requirement is out of the set of bpel processes one process should get executed immediately as soon as it is fired. Normally what is happening is if other processes are already invoked, once they are complete then only the processing of this bpel is getting completed.
    Can some one suggest me a way out where this process does not wait for other bpels to complete and gets executed independently.
    Thanks in advance
    Vamsi

    You should build that by yourself. Are you able to use a mechasim as semaphore? That one BPEL process can hold up others?
    http://orasoa.blogspot.com/2008/01/bpel-handling-semaphores.html
    Marc

  • 11g Parallel Execution on AIX 6 - SMT Enabled or Disabled?

    Greetings,
    I've had no luck searching for an answer to this question and I'm hoping someone can answer it:
    Can Oracle 11g Parallel Execution spread the "granules" of paralllism across the threads (logical cpus) in an AIX SMT enabled environment, or should SMT be disabled and the "granules" be spread scross the processors (virtual cpus)? The application is a data warehouse in a non-RAC configuration using a p570 server. From what I've read, the server must be SMP for Oracle parallel execution capabilities to be maximized, but I think all AIX servers are SMP (not sure if the server needs to be ordered as an SMP server). I'm mostly concerned with the data load processing at this point, and not so concerned for the query right now. I believe AIX 6.1 can enable/disable SMT dynamically. So would it make sense to disable during data loads, and enable for DSS query?
    Hope the question makes sense. Thanks for any help in advance!

    SMT will determine Oracle's cpu_count parameter.
    However this is a static parameter.
    So it won't work, and it might be even dangerous to change it on the fly.
    Sybrand Bakker
    Senior Oracle DBA
    Experts: those who did read documentation.

  • How do I call a simple java class from a bpel process?

    Hi.
    In JDeveloper 10.1.4.3.0 I've created a simple java class that does an ftp get operation followed by an unzip. The class uses some 3rd part libraries (jars).
    I want to use a simple bpel process to schedule a daily execution of this java class, and deploy it all to our SOA-server, - and was looking into using the <bpelx:exec> function.
    The java class and the bpel process is all stored in the same JDeveloper project.
    How do I put this together so that both my java class and the necessary jars are available to the bpel process?
    I've looked into the JavaExecSample.bpel, and it's says something about "...the class com.otn.samples.javaexec.CreditCalculator is locally packaged with this BPEL process".
    How do I do that?
    Can I make it and test it all locally from my workstation (only JDeveloper installed, I guess there's nothing that can execute the bpel code?), or do I have to compile class etc (make war-file?) and deploy to SOA server (BPEL-INF/lib or classes?) before anything can be tested?
    (I guess all this is simple, once you know how, but being a newbie to this I need a shove in the right direction :-)
    Regards,
    -Haakon-

    To create a java class and dependent jars inside the BPEL process project you need to do the following:
    1. Right click on your BPEL process project and select New and then Java Class from the Items.
    2. Make the BPEL process project, JDeveloper would compile the java classes and add them into the BPEL suite case jar, see the output folder and check the BPEL suite case jar file for java classes and dependent jars.
    You can test your Java classes from JDeveloper IDE, no need to deploy the classes on SOA server. When you make the BPEL project it compiles .bpel files and Java classes. You can test your classes once .bpel file and java classes compiled successfully.
    Regards,
    Dharmendra
    http://soa-howto.blogspot.com

  • How to skip exection of a set of activities at runtime in a BPEL Process.

    Hi All,
    Please suggest me how the following scenario can be achieved.
    I have a BPEL process with 3 scopes, in each scope i have an invoke activity to call an async process.
    Currently the control is in scope-1 ,Once the execution of scope-1 is done i want to skip execution of scope-2 and want to execute scope-3.
    How can i achieve it at runtime....
    Thx,
    Siddhardha.

    I think that once the instance has started, there is no way to manually mark a scope as "skip" or something. You will need to code a switch in your process when scope2 needs to be executed and when not. You could base the condition on a preference (descriptor property), but those values apply to all instances, not just a single instance

  • Error Invoking a BPEL process from JAVA

    Dear colleagues,
    I'm facing a error at execution time when I'm invoking a BPEL process from java. My BPEL process is in a different server than my application. BPEL is running in SOA SUITE 10.1.3.1 and my JAVA application so far is in the embebed OC4J of my Jdveloper 10.1.3.3. I've seen different post with a similiar problem, but there wasn't never a solution!. Here you have the code following by the error:
    ***************** SOURCE **************************************
    Locator locator = new Locator("default", "bpel");
    IDeliveryService deliveryService =
    (IDeliveryService)locator.lookupService
    (IDeliveryService.SERVICE_NAME );
    System.out.println(deliveryService.SERVICE_NAME);
    System.out.println(deliveryService.LOCAL_SERVICE_NAME);
    NormalizedMessage nm = new NormalizedMessage();
    nm.addPart("payload", xml );
    NormalizedMessage res =
    deliveryService.request("LOAD_DB_5", "process", nm);
    ********************* ERROR ************************************
    08/07/23 17:07:21 java.lang.Exception: Fallo al crear el bean "ejb/collaxa/system/DeliveryBean"; la excepción mostrada es: "javax.naming.NameNotFoundException: ejb/collaxa/system/DeliveryBean not found
         at com.evermind.server.rmi.RMIServerContext.lookup(RMIServerContext.java:207)
         at com.evermind.server.ApplicationContext.unprivileged_lookup(ApplicationContext.java:257)
         at com.evermind.server.ApplicationContext.lookup(ApplicationContext.java:197)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:279)
         at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
         at amaos.xml.loadData.LoadXml.loadData(LoadXml.java:31)
         at amaos.view.beans.FileProcessor.fileUploaded(FileProcessor.java:159)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
         at oracle.adf.view.faces.component.UIXComponentBase.__broadcast(UIXComponentBase.java:1087)
         at oracle.adf.view.faces.component.UIXEditableValue.broadcast(UIXEditableValue.java:247)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:269)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:363)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at amaos.view.UploadQuestionary.doFilter(UploadQuestionary.java:24)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at amaos.view.UploadQuestionary.doFilter(UploadQuestionary.java:24)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:171)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    08/07/23 17:07:21      at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:293)
    08/07/23 17:07:21      at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
    08/07/23 17:07:21      at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
    08/07/23 17:07:21      at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
    08/07/23 17:07:21      at amaos.xml.loadData.LoadXml.loadData(LoadXml.java:31)
    08/07/23 17:07:21      at amaos.view.beans.FileProcessor.fileUploaded(FileProcessor.java:159)
    08/07/23 17:07:21      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    08/07/23 17:07:21      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    08/07/23 17:07:21      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    08/07/23 17:07:21      at java.lang.reflect.Method.invoke(Method.java:585)
    08/07/23 17:07:21      at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
    08/07/23 17:07:21      at oracle.adf.view.faces.component.UIXComponentBase.__broadcast(UIXComponentBase.java:1087)
    08/07/23 17:07:21      at oracle.adf.view.faces.component.UIXEditableValue.broadcast(UIXEditableValue.java:247)
    08/07/23 17:07:21      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:269)
    08/07/23 17:07:21      at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:363)
    08/07/23 17:07:21      at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:98)
    08/07/23 17:07:21      at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
    08/07/23 17:07:21      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
    08/07/23 17:07:21      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
    08/07/23 17:07:21      at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    08/07/23 17:07:21      at amaos.view.UploadQuestionary.doFilter(UploadQuestionary.java:24)
    08/07/23 17:07:21      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    08/07/23 17:07:21      at amaos.view.UploadQuestionary.doFilter(UploadQuestionary.java:24)
    08/07/23 17:07:21      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    08/07/23 17:07:21      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
    08/07/23 17:07:21      at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
    08/07/23 17:07:21      at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
    08/07/23 17:07:21      at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
    08/07/23 17:07:21      at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:171)
    08/07/23 17:07:21      at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
    08/07/23 17:07:21      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    08/07/23 17:07:21      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    08/07/23 17:07:21      at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    08/07/23 17:07:21      at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    08/07/23 17:07:21      at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
    08/07/23 17:07:21      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
    08/07/23 17:07:21      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
    08/07/23 17:07:21      at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    08/07/23 17:07:21      at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
    08/07/23 17:07:21      at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
    08/07/23 17:07:21      at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
    08/07/23 17:07:21      at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    08/07/23 17:07:21      at java.lang.Thread.run(Thread.java:595)
    Any help is welcome!
    Thanks

    Hi
    You are trying to create a locator object with default values which does not work at all times.Use Locator("default",prop) where prop is a properties object and set the values according to your environment.
    The following properties values must be set
    Properties props=new Properties();
    props.setProperty("orabpel.platform","ias_10g");
    props.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
    props.setProperty("java.naming.provider.url", "url value");
    props.setProperty("java.naming.security.principal","domain user name");
    props.setProperty("java.naming.security.credentials","password");
    props.setProperty("dedicated.rmicontext", "true");

  • Issue with Deploying and calling a BPEL process on ALBPM enterprise server

    Hi,
    I am trying to put in place a POC using Aqualogic BEA products (using ALBPM 5.7, Enterprise Server 5.7, ALSB 2.6, Weblogic App server 9.2). My goal is to put in place a simple BPEL process (using ALBPM) which would call a webservice exposed through ALSB. This BPEL process is initiated by a wrapper BPMN process calling the BPEL process through fuego code.
    Though we are able to do the above on a standalone ALBPM studio, When we try to deploy the exported BPM project on the enterprise server and access it through the hiper workspace portal we are getting the following error in the BPM Process Administrator Log of the Engine.
    A component failed while executing activity '/Process#Default-1.0/Global' (BP-method Global). Details: The task could not be successfully executed. Reason: 'fuego.connector.ConnectorException: The configuration name [ProcessService] and type [Web Service] is not defined. Detail:The connector must be configured in the appropiate context. '. Caused by: The configuration name [ProcessService] and type [Web Service] is not defined. Detail:The connector must be configured in the appropiate context. fuego.lang.ComponentExecutionException: The task could not be successfully executed. Reason: 'fuego.connector.ConnectorException: The configuration name [ProcessService] and type [Web Service] is not defined. Detail:The connector must be configured in the appropiate context. '. at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:916) at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1068) at fuego.server.execution.TaskExecution.invoke(TaskExecution.java:389) at fuego.server.execution.GlobalTaskExecution.invoke(GlobalTaskExecution.java:106) at fuego.server.execution.TaskExecution.executeCIL(TaskExecution.java:481) at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:655) at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:616) at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:442) at fuego.server.execution.GlobalTaskExecution.executeGlobalCIL(GlobalTaskExecution.java:164) at fuego.server.execution.GlobalTaskExecution.executeGlobalCIL(GlobalTaskExecution.java:142) at fuego.server.execution.Global.execute(Global.java:81) at fuego.server.AbstractProcessBean$38.execute(AbstractProcessBean.java:2496) at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:290) at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:462) at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:540) at fuego.transaction.TransactionAction.start(TransactionAction.java:213) at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:117) at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66) at fuego.server.AbstractProcessBean.runGlobalActivity(AbstractProcessBean.java:2491) at fuego.ejbengine.EJBProcessControlAdapter.runGlobalActivity(EJBProcessControlAdapter.java:386) at fuego.ejbengine.EJBProcessControlAdapter_hu750h_EOImpl.runGlobalActivity(EJBProcessControlAdapter_hu750h_EOImpl.java:2877) at fuego.ejbengine.EJBProcessControlAdapter_hu750h_EOImpl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174) at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:335) at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252) at fuego.ejbengine.EJBProcessControlAdapter_hu750h_EOImpl_921_WLStub.runGlobalActivity(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at fuego.papi.impl.AbstractProcessControlHandler.invokeInternal(AbstractProcessControlHandler.java:48) at fuego.papi.impl.j2ee.EJBProcessControlHandler.doInvoke(EJBProcessControlHandler.java:111) at fuego.papi.impl.j2ee.EJBProcessControlHandler.invoke(EJBProcessControlHandler.java:66) at $Proxy77.runGlobalActivity(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1478) at fuego.lang.JavaObject.invoke(JavaObject.java:185) at fuego.papi.impl.j2ee.EJBExecution.next(EJBExecution.java:200) at fuego.portal.wapi.InteractiveExecution.process(InteractiveExecution.java:157) at fuego.portal.wapi.WebInteractiveExecution.process(WebInteractiveExecution.java:54) at fuego.portal.wapi.InteractiveExecution.process(InteractiveExecution.java:200) at fuego.portal.servlet.ExecutionDispatcher.runGlobalActivity(ExecutionDispatcher.java:659) at fuego.portal.servlet.ExecutionDispatcher.processRequest(ExecutionDispatcher.java:144) at fuego.portal.servlet.ExecutionDispatcher.doPost(ExecutionDispatcher.java:105) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at fuego.portal.servlet.AuthenticatedWamServlet.service(AuthenticatedWamServlet.java:1049) at fuego.portal.servlet.SingleThreadPerSession.service(SingleThreadPerSession.java:73) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:223) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at fuego.servlet.multipart.BaseMultipartFilter.doFilter(BaseMultipartFilter.java:57) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3243) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:181) Caused by: fuego.connector.ConnectorException: The configuration name [ProcessService] and type [Web Service] is not defined. Detail:The connector must be configured in the appropiate context. at fuego.connector.ConnectorException.connectorNotFound(ConnectorException.java:55) at fuego.connector.ConnectorService.getConnectorInterface(ConnectorService.java:586) at fuego.connector.ConnectorTransaction.getConnectorInterface(ConnectorTransaction.java:618) at fuego.connector.ConnectorTransaction.getResource(ConnectorTransaction.java:254) at fuego.soaptype.WSConfiguration.getInstance(WSConfiguration.java:55) at fuego.soaptype.Endpoint.create(Endpoint.java:42) at fuego.soaptype.WebServiceInstantiator.instantiate(WebServiceInstantiator.java:58) at fuego.component.Component.instantiateDynamic(Component.java:123) at CapGemini.Process.Default_1_0.Instance.CIL_callBPEL(Instance.java:241) at CapGemini.Process.Default_1_0.Instance.CIL_callBPEL(Instance.java:307) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at fuego.server.execution.EngineExecutionContext.invokeMethodAsCil(EngineExecutionContext.java:907) ... 64 more
    Two things here that might help to understand the problem better :
    1) As I understand the error is due to some issue while calling the BPEL process from the Fuego code.
    The Fuego code which call's the BPEL from the BPMN process is as follows :
    helloResponse as String = "someoutput"
    helloRequest as String = "someinput"
    sessionid as String
    // Starting a Session.
    // In case you are testing this in the Studio,
    // the password must be the same as the user
    startSession BPELWSDL.ProcessServiceListenerWSDL.ProcessService
    using user = "test",
    password = "test"
    returning sessionid = result
    // createTest is the name of the operation
    // in the exposed process.
    // In this case the process "ExposedProcess"
    // has a web service operation
    // called "createTest" that is a "Process Creation" type
    // and uses the Begin activity's argument set
    callHello BPELWSDL.ProcessServiceListenerWSDL.ProcessService
    using sessionId = sessionid,
    arg1 = helloRequest
    returning helloResponse = result
    // Closing the session
    discardSession BPELWSDL.ProcessServiceListenerWSDL.ProcessService
    using sessionId = sessionid
    display "The BPEL's response : " + helloResponse
    2) Further, I had catalogued the BPEL's wsdl to the location http://localhost:9000/fuegoServices/ws/ProcessServiceListener?WSDL while running the same in Studio, but while deploying on the enterprise server , I made this point to http://localhost:7001/fuegoServices/ws/ProcessServiceListener?WSDL Is this correct ?
    Any thought on this issue would be appreciated.
    Regards
    Deepak

    Hi Deepak,
    We are also facing a similar problem, while accessing an external webservice from a BPM process.
    Were you able to resolve this issue.
    If so, Could you please let us know the procedure that you followed to resolve the issue.
    Thanks in Advance,
    Krishnaveni.

  • Errors after upgrading Bpel process manager

    Hi all,
    As said in the subject I recently upgraded to the latest version of the Bpel process manager. And it looks like some changes have been made ;-) My project does not compile/deploy anymore. See below the obant errors I got. Apparently, I should now add the ns prefixes in the bpel source ... could you confirm? What impact will that make on the queries?
    thanx,
    --mike
    Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument>obant
    Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument>SETLOCAL
    Buildfile: build.xml
    main:
    [bpelc] bpelc> validating "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel" ...
    [bpelc] BPEL validation failed.
    [bpelc] BPEL source validation failed, the errors are:
    [bpelc]
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 377 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/userId"
    is invalid, because step ':userId' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 382 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/imageUR
    L" is invalid, because step ':imageURL' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 404 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/passwor
    d" is invalid, because step ':password' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 747 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/ex
    ecution/started" is invalid, because step ':execution' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 752 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/lo
    anAccountNumber" is invalid, because step ':loanAccountNumber' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 757 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/fo
    rmURL" is invalid, because step ':formURL' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 767 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/lo
    anAccountNumber" is invalid, because step ':loanAccountNumber' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 772 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/fo
    rmURL" is invalid, because step ':formURL' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 782 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/loanupdate/ex
    ecution/finished" is invalid, because step ':execution' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 817 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailRe
    cipient" is invalid, because step ':emailRecipient' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 822 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailRe
    cipient" is invalid, because step ':emailRecipient' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    [bpelc] [Error ORABPEL-10057]: invalid query
    [bpelc] [Description]: in line 1127 of "Z:\smartdocument.bpel\src\LocalLoanIncSmartDocument\LocalLoanIncSmartDocument.bpel", query "/input/emailR
    ecipient" is invalid, because step ':emailRecipient' is not valid..
    [bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
    Next is my bpel source:
    <!-- LocalLoanIncSmartDocument BPEL Process [Generated by the Oracle BPEL Designer] -->
    <process name="LocalLoanIncSmartDocument" targetNamespace="urn:SmartDocument" suppressJoinFailure="yes" xmlns:tns="urn:SmartDocument" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:cx="http://schemas.collaxa.com/xpath/extension" xmlns:ns0="urn:ocr.services.smartdocument.xerox.com" xmlns:ns1="urn:email.services.smartdocument.xerox.com" xmlns:ns2="urn:categoriser.services.smartdocument.xerox.com" xmlns:ns3="urn:signature.services.smartdocument.xerox.com" xmlns:ns4="urn:LoanService" xmlns:ns5="urn:dataglyph.services.smartdocument.xerox.com" xmlns:ns6="urn:initiate.services.smartdocument.xerox.com" xmlns:ns7="urn:seal.services.smartdocument.xerox.com" xmlns:ns8="http://www.xerox.com/webservices/" xmlns:ns9="urn:store.services.smartdocument.xerox.com" xmlns:ns10="urn:factfinder.services.smartdocument.xerox.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:task="http://services.oracle.com/bpel/task">
         <!-- ================================================================= -->
         <!-- 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="client" partnerLinkType="tns:LocalLoanIncSmartDocument" myRole="LocalLoanIncSmartDocumentProvider" partnerRole="LocalLoanIncSmartDocumentRequester"/>
              <partnerLink name="SignatureService" partnerRole="SignatureProvider" partnerLinkType="ns3:SignatureLink"/>
              <partnerLink name="CategoriserService" partnerRole="CategoriserProvider" partnerLinkType="ns2:CategoriserLink"/>
              <partnerLink name="EmailService" partnerRole="EmailProvider" partnerLinkType="ns1:EmailLink"/>
              <partnerLink name="OCRService" partnerRole="OcrProvider" partnerLinkType="ns0:OcrLink"/>
              <partnerLink name="ValidateApplicationManager" partnerLinkType="task:TaskManager" partnerRole="TaskManager" myRole="TaskManagerRequester"/>
              <partnerLink name="DataglyphService" partnerRole="DataglyphProvider" partnerLinkType="ns5:DataglyphLink"/>
              <partnerLink name="LoanService" partnerRole="LoanServiceProvider" partnerLinkType="ns4:LoanServiceLink"/>
              <partnerLink name="InitiateService" partnerLinkType="ns6:InitiateLink" partnerRole="InitiateProvider"/>
              <partnerLink name="SealService" partnerLinkType="ns7:SealLink" partnerRole="SealProvider"/>
              <!-- CHANGE If on boss
              <partnerLink name="FactFinderService" partnerLinkType="ns8:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
    -->
              <!-- CHANGE If not on boss -->
              <partnerLink name="FactFinderService" partnerLinkType="ns10:FactFinderSoapLink" partnerRole="FactFinderSoapProvider"/>
              <!-- -->
              <partnerLink name="StoreService" partnerLinkType="ns9:StoreLink" partnerRole="StoreProvider"/>
         </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="input" messageType="tns:InputMessage"/>
              <!-- Reference to the message that will be sent back to the
    requester during callback
    -->
              <variable name="flowContents" messageType="tns:SmartDocumentMessage"/>
              <variable name="dataglyphKey" type="xsd:string"/>
              <variable name="inputSmartDocumentId" type="xsd:string"/>
              <variable name="inputDocumentId" type="xsd:string"/>
              <variable name="inputUrl" type="xsd:string"/>
              <variable name="serviceIdentifier" type="xsd:string"/>
              <variable name="runtimeFaultMessage" messageType="bpelx:RuntimeFaultMessage"/>
              <variable name="authId" type="xsd:string"/>
         </variables>
         <faultHandlers>
              <catch faultName="bpelx:bindingFault" faultVariable="runtimeFaultMessage">
                   <scope name="HandleBindingFault">
                        <variables>
                             <variable name="error" element="tns:error"/>
                        </variables>
                        <sequence>
                             <scope name="SetErrorMessage">
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from variable="serviceIdentifier">
                                                 </from>
                                                 <to variable="error" query="/error/processStep"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="error" query="/error/occuredAt"/>
                                            </copy>
                                            <copy>
                                                 <from variable="runtimeFaultMessage" part="code">
                                                 </from>
                                                 <to variable="error" query="/error/errorCode"/>
                                            </copy>
                                            <copy>
                                                 <from variable="runtimeFaultMessage" part="summary">
                                                 </from>
                                                 <to variable="error" query="/error/errorSummary"/>
                                            </copy>
                                       </assign>
                                       <assign name="addToSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                  </sequence>
                             </scope>
                             <scope name="Seal">
                                  <variables>
                                       <variable name="seal" element="tns:seal"/>
                                       <variable name="sealInput" messageType="ns7:SealRequest"/>
                                       <variable name="sealOutput" messageType="ns7:SealResponse"/>
                                  </variables>
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="seal" query="/seal/execution/started"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputSmartDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/smartdocumentid"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/documentid"/>
                                            </copy>
                                       </assign>
                                       <assign name="addtoSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                       <assign name="setServiceInput">
                                            <copy>
                                                 <from variable="authId">
                                                 </from>
                                                 <to variable="sealInput" part="AuthId"/>
                                            </copy>
                                            <copy>
                                                 <from variable="seal" query="/seal/input/smartdocumentid">
                                                 </from>
                                                 <to variable="sealInput" part="SmartDocumentId"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
                                                 </from>
                                                 <to variable="sealInput" part="XmlString"/>
                                            </copy>
                                       </assign>
                                       <invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
                                  </sequence>
                             </scope>
                        </sequence>
                   </scope>
              </catch>
              <catch faultName="bpelx:remoteFault" faultVariable="runtimeFaultMessage">
                   <scope name="HandleRemoteFault">
                        <variables>
                             <variable name="error" element="tns:error"/>
                        </variables>
                        <sequence>
                             <scope name="SetErrorMessage">
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from variable="serviceIdentifier">
                                                 </from>
                                                 <to variable="error" query="/error/processStep"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="error" query="/error/occuredAt"/>
                                            </copy>
                                            <copy>
                                                 <from variable="runtimeFaultMessage" part="code">
                                                 </from>
                                                 <to variable="error" query="/error/errorCode"/>
                                            </copy>
                                            <copy>
                                                 <from variable="runtimeFaultMessage" part="summary">
                                                 </from>
                                                 <to variable="error" query="/error/errorSummary"/>
                                            </copy>
                                       </assign>
                                       <assign name="addToSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                  </sequence>
                             </scope>
                             <scope name="Seal">
                                  <variables>
                                       <variable name="seal" element="tns:seal"/>
                                       <variable name="sealInput" messageType="ns7:SealRequest"/>
                                       <variable name="sealOutput" messageType="ns7:SealResponse"/>
                                  </variables>
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="seal" query="/seal/execution/started"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputSmartDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/smartdocumentid"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/documentid"/>
                                            </copy>
                                       </assign>
                                       <assign name="addtoSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                       <assign name="setServiceInput">
                                            <copy>
                                                 <from variable="authId">
                                                 </from>
                                                 <to variable="sealInput" part="AuthId"/>
                                            </copy>
                                            <copy>
                                                 <from variable="seal" query="/seal/input/smartdocumentid">
                                                 </from>
                                                 <to variable="sealInput" part="SmartDocumentId"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
                                                 </from>
                                                 <to variable="sealInput" part="XmlString"/>
                                            </copy>
                                       </assign>
                                       <invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
                                  </sequence>
                             </scope>
                        </sequence>
                   </scope>
              </catch>
              <catchAll>
                   <scope name="HandleGenericFault">
                        <variables>
                             <variable name="error" element="tns:error"/>
                        </variables>
                        <sequence>
                             <scope name="SetErrorMessage">
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from variable="serviceIdentifier">
                                                 </from>
                                                 <to variable="error" query="/error/processStep"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="error" query="/error/occuredAt"/>
                                            </copy>
                                            <copy>
                                                 <from expression="'UNKNOWN ERROR CODE'">
                                                 </from>
                                                 <to variable="error" query="/error/errorCode"/>
                                            </copy>
                                            <copy>
                                                 <from expression="'UNKNOWN ERROR SUMMARY'">
                                                 </from>
                                                 <to variable="error" query="/error/errorSummary"/>
                                            </copy>
                                       </assign>
                                       <assign name="addToSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('error'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                  </sequence>
                             </scope>
                             <scope name="Seal">
                                  <variables>
                                       <variable name="seal" element="tns:seal"/>
                                       <variable name="sealInput" messageType="ns7:SealRequest"/>
                                       <variable name="sealOutput" messageType="ns7:SealResponse"/>
                                  </variables>
                                  <sequence>
                                       <assign name="prepareRecord">
                                            <copy>
                                                 <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                 </from>
                                                 <to variable="seal" query="/seal/execution/started"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputSmartDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/smartdocumentid"/>
                                            </copy>
                                            <copy>
                                                 <from variable="inputDocumentId">
                                                 </from>
                                                 <to variable="seal" query="/seal/input/documentid"/>
                                            </copy>
                                       </assign>
                                       <assign name="addtoSmartDocument">
                                            <copy>
                                                 <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('seal'))">
                                                 </from>
                                                 <to variable="flowContents" part="document" query="/smartdocument"/>
                                            </copy>
                                       </assign>
                                       <assign name="setServiceInput">
                                            <copy>
                                                 <from variable="authId">
                                                 </from>
                                                 <to variable="sealInput" part="AuthId"/>
                                            </copy>
                                            <copy>
                                                 <from variable="seal" query="/seal/input/smartdocumentid">
                                                 </from>
                                                 <to variable="sealInput" part="SmartDocumentId"/>
                                            </copy>
                                            <copy>
                                                 <from expression="ora:getContentAsString(ora:getElement('flowContents', 'document', '/smartdocument'))">
                                                 </from>
                                                 <to variable="sealInput" part="XmlString"/>
                                            </copy>
                                       </assign>
                                       <invoke partnerLink="SealService" portType="ns7:Seal" operation="Seal" inputVariable="sealInput" outputVariable="sealOutput"/>
                                  </sequence>
                             </scope>
                        </sequence>
                   </scope>
              </catchAll>
         </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 LocalLoanIncSmartDocument.wsdl
    -->
              <receive name="receiveInput" partnerLink="client" portType="tns:LocalLoanIncSmartDocument" operation="initiate" variable="input" createInstance="yes"/>
              <assign name="InitialiseVariables">
                   <copy>
                        <from expression="'042e05a98cddac30e309f8'">
                        </from>
                        <to variable="dataglyphKey"/>
                   </copy>
                   <copy>
                        <from expression="'0'">
                        </from>
                        <to variable="inputSmartDocumentId"/>
                   </copy>
                   <copy>
                        <from expression="'0'">
                        </from>
                        <to variable="inputDocumentId"/>
                   </copy>
                   <copy>
                        <from expression="'Unknown service'">
                        </from>
                        <to variable="serviceIdentifier"/>
                   </copy>
              </assign>
              <scope name="Initiate">
                   <variables>
                        <variable name="initiate" element="tns:initiate"/>
                        <variable name="initiateInput" messageType="ns6:InitiateRequest"/>
                        <variable name="initiateOutput" messageType="ns6:InitiateResponse"/>
                   </variables>
                   <sequence>
                        <assign name="prepareRecord">
                             <copy>
                                  <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                  </from>
                                  <to variable="initiate" query="/initiate/execution/started"/>
                             </copy>
                             <copy>
                                  <from variable="input" part="payload" query="/input/userId">
                                  </from>
                                  <to variable="initiate" query="/initiate/userid"/>
                             </copy>
                             <copy>
                                  <from variable="input" part="payload" query="/input/imageURL">
                                  </from>
                                  <to variable="initiate" query="/initiate/url"/>
                             </copy>
                             <copy>
                                  <from expression="string('LocalLoanIncSmartDocument')">
                                  </from>
                                  <to variable="initiate" query="/initiate/processName"/>
                             </copy>
                        </assign>
                        <assign name="setServiceInput">
                             <copy>
                                  <from expression="'Initiate'">
                                  </from>
                                  <to variable="serviceIdentifier"/>
                             </copy>
                             <copy>
                                  <from variable="initiate" query="/initiate/userid">
                                  </from>
                                  <to variable="initiateInput" part="Username"/>
                             </copy>
                             <copy>
                                  <from variable="input" part="payload" query="/input/password">
                                  </from>
                                  <to variable="initiateInput" part="Password"/>
                             </copy>
                             <copy>
                                  <from variable="initiate" query="/initiate/url">
                                  </from>
                                  <to variable="initiateInput" part="URL"/>
                             </copy>
                        </assign>
                        <invoke partnerLink="InitiateService" portType="ns6:Initiate" operation="Initiate" inputVariable="initiateInput" outputVariable="initiateOutput"/>
                        <assign name="updateScopeVariables">
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
                                  </from>
                                  <to variable="inputSmartDocumentId"/>
                             </copy>
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/DocumentId">
                                  </from>
                                  <to variable="inputDocumentId"/>
                             </copy>
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/DocumentURL">
                                  </from>
                                  <to variable="inputUrl"/>
                             </copy>
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/AuthId">
                                  </from>
                                  <to variable="authId"/>
                             </copy>
                        </assign>
                        <assign name="updateRecord">
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/SmartDocumentId">
                                  </from>
                                  <to variable="initiate" query="/initiate/output/smartdocumentid"/>
                             </copy>
                             <copy>
                                  <from variable="initiateOutput" part="Result" query="/Result/DocumentId">
                                  </from>
                                  <to variable="initiate" query="/initiate/output/documentid"/>
                             </copy>
                             <copy>
                                  <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                  </from>
                                  <to variable="initiate" query="/initiate/execution/finished"/>
                             </copy>
                        </assign>
                        <assign name="addToSmartDocument">
                             <copy>
                                  <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('initiate'))">
                                  </from>
                                  <to variable="flowContents" part="document" query="/smartdocument"/>
                             </copy>
                        </assign>
                   </sequence>
              </scope>
              <scope name="DetectDataglyph">
                   <variables>
                        <variable name="glyphdetection" element="tns:glyphdetection"/>
                        <variable name="detectDataglyphInput" messageType="ns5:SmartDocumentDataglyphDetectRequest"/>
                        <variable name="detectDataglyphOutput" messageType="ns5:SmartDocumentDataglyphDetectResponse"/>
                   </variables>
                   <sequence>
                        <assign name="prepareRecord">
                             <copy>
                                  <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/execution/started"/>
                             </copy>
                             <copy>
                                  <from variable="flowContents" part="document" query="/smartdocument/initiate/output/smartdocumentid">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/input/smartdocumentid"/>
                             </copy>
                             <copy>
                                  <from variable="flowContents" part="document" query="/smartdocument/initiate/output/documentid">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/input/documentid"/>
                             </copy>
                        </assign>
                        <assign name="setServiceInput">
                             <copy>
                                  <from expression="'GlyphDetection'">
                                  </from>
                                  <to variable="serviceIdentifier"/>
                             </copy>
                             <copy>
                                  <from variable="authId">
                                  </from>
                                  <to variable="detectDataglyphInput" part="AuthId"/>
                             </copy>
                             <copy>
                                  <from variable="dataglyphKey">
                                  </from>
                                  <to variable="detectDataglyphInput" part="Key"/>
                             </copy>
                             <copy>
                                  <from expression="5">
                                  </from>
                                  <to variable="detectDataglyphInput" part="MaxAngle"/>
                             </copy>
                             <copy>
                                  <from expression="128">
                                  </from>
                                  <to variable="detectDataglyphInput" part="Region"/>
                             </copy>
                             <copy>
                                  <from variable="glyphdetection" query="/glyphdetection/input/smartdocumentid">
                                  </from>
                                  <to variable="detectDataglyphInput" part="SmartDocumentId"/>
                             </copy>
                             <copy>
                                  <from variable="glyphdetection" query="/glyphdetection/input/documentid">
                                  </from>
                                  <to variable="detectDataglyphInput" part="DocumentId"/>
                             </copy>
                        </assign>
                        <invoke partnerLink="DataglyphService" portType="ns5:Dataglyph" operation="SmartDocumentDataglyphDetect" inputVariable="detectDataglyphInput" outputVariable="detectDataglyphOutput"/>
                        <assign name="updateRecord">
                             <copy>
                                  <from expression="string(boolean(bpws:getVariableData('detectDataglyphOutput', 'Result', '/Result/Result')&gt;500.0))">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/detected"/>
                             </copy>
                             <copy>
                                  <from variable="detectDataglyphOutput" part="Result" query="/Result/SmartDocumentId">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/output/smartdocumentid"/>
                             </copy>
                             <copy>
                                  <from variable="detectDataglyphOutput" part="Result" query="/Result/DocumentId">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/output/documentid"/>
                             </copy>
                             <copy>
                                  <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                  </from>
                                  <to variable="glyphdetection" query="/glyphdetection/execution/finished"/>
                             </copy>
                        </assign>
                        <assign name="addToSmartDocument">
                             <copy>
                                  <from expression="ora:addChildNode(bpws:getVariableData('flowContents', 'document', '/smartdocument'), bpws:getVariableData('glyphdetection'))">
                                  </from>
                                  <to variable="flowContents" part="document" query="/smartdocument"/>
                             </copy>
                        </assign>
                   </sequence>
              </scope>
              <switch name="DataglyphDetected">
                   <case condition="bpws:getVariableData('flowContents', 'document', '/smartdocument/glyphdetection/detected')='true'">
                        <sequence>
                             <scope name="Detected-ProcessAsForm">
                                  <sequence>
                                       <scope name="DetectSignature">
                                            <variables>
                                                 <variable name="signaturedetection" element="tns:signaturedetection"/>
                                                 <variable name="detectSignatureInput" messageType="ns3:SmartDocumentSignatureDetectRequest"/>
                                                 <variable name="detectSignatureOutput" messageType="ns3:SmartDocumentSignatureDetectResponse"/>
                                            </variables>
                                            <sequence>
                                                 <assign name="prepareRecord">
                                                      <copy>
                                                           <from expression="ora:getCurrentDateTime('yyyy-MM-dd hh:mm:ss z')">
                                                           </from>
                                                           <to variable="signaturedetection" query="/signaturedetection/execution/started"/>
                                                      </copy>
                                                      <copy>
                                                           <from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/smartdocumentid">
                                                           </from>
                                                           <to variable="signaturedetection" query="/signaturedetection/input/smartdocumentid"/>
                                                      </copy>
                                                      <copy>
                                                           <from variable="flowContents" part="document" query="/smartdocument/glyphdetection/output/documentid">
       

    Hi all,
    I modified the bpel so that it could compile by letting the designer add prefixes where it needed some. Then I deployed the process and tested it. Unfortunately ;-( See below the error log. It looks like the newly added prefixes are source of troubles ...
    Any ideas?
    --mike
    [2005/04/29 11:06:12] Error in <assign> expression: <to> value is empty at line "375". The XPath expression : "/tns:input/tns:userId" returns zero node, when applied to document shown below: Less
    <input xmlns="urn:SmartDocument" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <userId xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">mniemaz</userId>
    <password xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">mniemaz</password>
    <imageURL xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">http://pic-charvet.xrce.xeroxlabs.com:8080/smartdocument.demo/data/tiff/loanrequest1.tiff</imageURL>
    <emailRecipient xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">[email protected]</emailRecipient>
    <formOutput xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">file.pdf</formOutput>
    </input>
    [2005/04/29 11:06:12] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown. Less
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    <part name="summary">empty variable/expression result. xpath variable/expression expression "/tns:input/tns:userId" is empty at line 375, when attempting reading/copying it. Please make sure the variable/expression result "/tns:input/tns:userId" is not empty.</part>
    </selectionFailure>

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

  • Fault policies not getting executed for called BPEL process

    Hi,
    I am facing one issue in execution of fault policy for a called BPEL Process.
    I have two BPEL Processes - BPELProcess1 and BPELProcess2.
    We have fault-policies and fault-bindings file.
    Case1 - BPELProcess2 is synchronous :-
    BPELProcess2 throws a fault of selectionFailure.
    Now this fault is defined in fault-policies and fault policy is bound to BPELProcess2 component in fault-bindings.xml file.
    But this fault policy is NOT getting executed.
    This selectionFailure fault from BPELProcess2 goes unhandled and in BPELProcess1, invoke activity gets this unhandled fault and raises a fault "remoteFault".
    This remotefault is also defined in fault-bindings and bound to BPELProcess1 component. Here fault policy bound to BPELProcess1 is working fine.
    So problem is that for called process, fault policies are not getting executed while for calling process, they are getting executed.
    Case1 - BPELProcess2 is Asynchronous
    BPELProcess2 is asynchronous. So same situation happening here. Fault policy for BPELProcess2 is not getting executed on throwing selectionFailure.
    But now here, since BPELProcess2 is async in nature, BPELProcess1 is not getting response and it is always waiting for response which is wrong.
    So how can we use fault policies in this case?
    Please suggest.
    Thanks & Regards,
    Parshant

    So that means - only fault originating from invoke activity in BPEL can be associated with a fault policy. No other fault can be associated. Even if I throw a selectionFault from throw activity, that will not be captured. Only fault from invoke activity can be associated with a fault policy.
    Please confirm.
    Thanks,
    Edited by: 833944 on Feb 24, 2011 9:36 PM

  • Exception on JaxRpc invoke: HTTP transport error in BPEL process

    Hi,
    One C# web service is running on IIS. I am trying to invoke this web service from BPEL process on the same system in which IIS is running. I have created the partnerlink using generated the WSDL file from IIS. I have changed the 'tempuri.org' to 'localhost' . I am able to compile and deploy the process but during execution it gives following error during invoke of web service
    <messages><input><Invoke_1_ProcessXMLDoc_InputVariable_1><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters"><ProcessXMLDoc xmlns="http://10.100.34.70/"/>
    </part></Invoke_1_ProcessXMLDoc_InputVariable_1></input><fault><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 401 Access Denied</summary>
    </part></remoteFault></fault></messages>
    Can anybody suggest to resolve this error?
    Thanks

    try removing your "localhost" from the windows hosts file and then do it all over again using your ip or hostname.

  • Clear wsdl cache every time a bpel process call is made.

    Hi All,
    I have a bpel process which gets input xml of the size of 6MB. This bpel process interacts with a java component using the WSIF approach to reorder the xml input recieved.
    The strange problem that i am currently encountering right now is for each time the bpel process execution time scales up. For example, the first time i fired the request, the bpel process took 29 seconds to completely execute. The second time it took 39 seconds and the third time it has taken around 56 seconds to execute.
    When i cleared the wsdl cache from within the bpel console, the execution again came down to around 21 seconds.
    Can i know which is the property which we can set in bpel.xml file of the bpel process to clear the wsdl cache each time a request is fired.
    Thanks in Advance,
    Vijay S

    Jay,
    You don't say how these links on the menu page are constructed. If you are using an apex list then for each list entry there would be a target page section in which you would put the target page ID in the Clear Cache field. For example, if the link goes to a page in the current application, say page 10, then you'd put 10 in the Clear Cache field.
    If you are building a link yourself, just put 10 (for page 10) in the clear-cache position of the f?p URL, e.g.,
    f?p=&APP_ID.:10:&APP_SESSION.::NO:10:P10_ITEM:&SOME_ITEM.
    Scott

Maybe you are looking for