Dehydration points

Hi,
I'm trying to identify which activities in a bpel process result in dehydration occuring. I've seen bits of documentation / posts that give some clues e.g. invoke/receive on an asynchronous web service. However, is there an exhaustive list documented anywhere?
It seems to me that its very important to fully understand this behaviour in order to develop robust processes.
Thanks in advance,
Richard

Ashley and Clemens - thanks for the information. I'm a little surprised this isn't clearly documented in the developer's guide as it seems such a fundamental part of process design.

Similar Messages

  • Query on Clustering,Load Balancing and Dehydration in Oracle BPEL PM

    Hi,
    I had a Few queries on Dehydration ,Clustering and Load Balancing:
    1) In section 5.1 "Use Case for Asynchronous Web Services",insertion of a dehydration point is mentioned.What do you exactly mean by this.Can a dehydration point be inserted explicitly?OR we have to put a wait activity or something so that dehydration happens?
    2) If a dehydration point needs to be inserted explicity arent we assuming that the invoke-reply will take long?But this might not be the case always.Is is a lso possible that an asynchronous process is not a long running one.
    3) Can we configure administratively ,how much time the process (say 10 seconds or so)waits after which it gets dehydrated?
    4) Consider a load balancing scenario,where we have 2 BPEL PM's (PM1 and PM2) running on 2 different App Servers (SRV1 and SRV2)in an clustered environment.
    Scenario:
    1)We have an asynchronous process which makes a call to a human task activity.
    2)A request from client comes for this process.
    3) The load balancing server forwards it to PM1 on SRV1.PM1 processes the request and calls the human task.
    4) PM1 has not dehydrated the process.
    5) The response from the Human User comes back to the Load Balancer before the process is dehydrated by PM1.It forwards this response to PM2.PM2 searches for the Process based on the Cor-relation ID and does not find it.
    Can you tell me how this scenario is handled?
    I would be grateful if someone can answer these queries or direct me to some place where it is already explained.
    Thanks
    Dileep

    1) In section 5.1 "Use Case for Asynchronous Web Services",insertion of a dehydration point is mentioned.What do you exactly mean by this.Can a dehydration point be inserted explicitly?OR we have to put a wait activity or something so that dehydration happens?
    Insert a java snippet with "checkpoint();"
    3) Can we configure administratively ,how much time the process (say 10 seconds or so)waits after which it gets dehydrated?
    No, this is due to the performance of your database.

  • Restart causing Failed to read wsdl and BaseScheduledWorker null pointer

    Hoped that 10.1.3.3.1 patchset would fix this but doesn't seem to have done so. I'm doing a test whereby I restart the application server under simulated load conditions, two BPEL domain log files are created, possibly indicating it has had a problem coming back up, domain.log.1 contains this :
    <2007-12-06 10:39:37,758> <ERROR> <default.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ... exception
    java.lang.NullPointerException
         at com.collaxa.cube.engine.dispatch.InstanceQueue.acknowledge(InstanceQueue.java:285)
         at com.collaxa.cube.engine.dispatch.BaseDispatchSet.acknowledge(BaseDispatchSet.java:241)
         at com.collaxa.cube.engine.dispatch.Dispatcher.acknowledge(Dispatcher.java:650)
    <2007-12-06 10:39:40,764> <ERROR> <default.collaxa.cube.engine> <CubeEngine::checkExpirable> Failed to unschedule work item "140957-BpInv3-BpSeq1.3-4" from the expiration agent.
    ORABPEL-00025
    Cannot unschedule agent.
    An attempt to unschedule the "expiration" agent with the scheduler has failed. The exception reported is: org.quartz.SchedulerException: Scheduler with name 'BPELPMRamScheduler' already exists.
         at org.quartz.impl.SchedulerRepository.bind(SchedulerRepository.java:87)
         at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:967)
    Async processes caught up in this are getting errors trying to pass back a response back to their invoking process as follows (note these processes work fine when I'm not restarting the app server underneath them) :
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>when invoking locally the endpoint 'http://pukldr00000.whatever.co.uk:7833/orabpel/default/invoker_name/1.0/processname/rolename', ; nested exception is:
         ORABPEL-00000
    Exception not handled by the Collaxa Cube system.
    An unhandled exception has been thrown in the Collaxa Cube system. The exception reported is: "ORABPEL-08003
    Failed to read wsdl.
    Failed to read wsdl at "http://pukldr00000.whatever.co.uk:7833/orabpel/default/processname/processname?wsdl", because "Failed to read WSDL from http://pukldr00000.whatever.co.uk:7833/orabpel/default/processname/processname?wsdl: HTTP connection error code is 500"
    Any help gratefully appreciated.

    SR has been filed for some time and includes an example. My example is as follows, async process A calls async process B, async process B just does a 20 second sleep in java before doing callback to A. To demonstrate the issue I just set off process A and shut down the oc4j through Enterprise Manager, process B hits the failed to read wsdl when it tries to callback to A. It seems like some of the infrastructure has been taken down before all of the in-memory processes have hit a dehydration point, which is not good !
    SR # is 6615784.993 I am now escalating.

  • Not dehydrating Aschronous BPEL Process in SOA

    Hi All,
    Can anybody can guide what we have to do if we doesn't want to dehydrate our asychronous bpel process. FYI.. I have created a asychrounous bpel process and trying out not to dehydrate the instance details of that process in order to increase the performance of the process.
    Can anybody can provide any URLs on this specific scenario if possible.
    Waiting for a help as it is urgent issue for me to fix.
    Regards,
    Cherry

    Hi Pablo,
    Thanks For the reply.
    we are using DB adapter which will poll on table,that means this is the service which creates the bpel instance.
    the only prob we are facing is sometimes BPEL instances are never comeout from the RUNNING state and error its showing error as"The transaction was rolled back. The work performed for bpel instance "290086" was rolled back to the previous dehydration point, but the audit trail has been saved.You can recover the instance from the recovery console by resubmitting the callback message or activity for execution"
    Oracle suggested this problem occurs when you are using Synchronous processes. increase the timeout settings.
    DB adapter Polling is always Asynchronous?
    can you just share your thoughts on this..
    Regards,
    Sudha

  • BPEL dehydration database.

    Greetings,
    I know that BPEL PM Server uses dehydration store to update some audit trail tables as it executes activities from a BEPL process. Is there any way to know when and what is being preserved? Anyway to monitor it?
    We have huge performance issues as we read a message using a file adapter, process it and then using another file adapter write a result to a file. We have a "While" construct in the BPEL process that cycles through sub-elements of the root-element of the input message and it seems to take a whole lot of a time. We were just curious if dehydration activities are also invoked in a loop.
    Thank you.

    HI,
    I wrote an artile on the dehydration points a while ago..
    http://clemensblog.blogspot.com/2006/03/loosely-coupled-and-transacted.html
    that should explain a little bit on this topic ..

  • Force Dehydration with Checkpoint Function

    I was reviewing the "what's new in 10.1.2.0.2" document and I saw a note about "Force Dehydration with Checkpoint Function". Where might I find some documentation on how to accomplish this? The only documentation in the users guide is the following:
    [start quote]
    Using Dehydration Points to Maintain Long-Running Asynchronous Processes:
    To automatically maintain long-running asynchronous processes and their current
    state information in a database while they wait for asynchronous callbacks, you can
    create a dehydration point. Storing the process in a database preserves the process and
    prevents any loss of state or reliability if a system shuts down or a network problem
    occurs. This feature increases both BPEL process reliability and scalability. You can alsouse it to support clustering and failover.
    You insert this point between the invoke activity and receive activity. Figure 6–1 on
    page 6-2 shows an example of a dehydration point in the loan application approver
    Web service.
    [end quote] (note, figure 6-1 does not really give any clues).
    I also found this little snippit on the forum and I am wondering if this is the feature being referenced or if there is a new way to accomplish a checkpoint?
    <bpelx:exec name="invokeJavaExec" language="java" version="1.4">
    <![CDATA[
    checkpoint()
    ]]>
    </bpelx:exec>
    Thanks,
    Greg

    right, checkpoint is a function that can be used inside embedded java code only. Exactly as shown in the code snippet, and will force the state to be dehydrated ..
    thx clemens

  • Email Activity Not sending email when BPEL process fails

    In 11g SOASuite I have a BPEL process which does the following,
    1) Receive response from client
    2) Email activity - Notify with an id received in the request as content
    3) Insert data into a table using db adapter
    Whenever db adapter has some key violations or issues, I notice that no emails are getting dispatched. When I look at EM console it displays that txn has been rolled back after 3rd step. I understand that but it makes me ask this question,
    How can I make the process to send an email at step2 irrespective of an error that happens down stream at step-3? How to make email activity not part of this Txn scope?
    It works as expected(emails are dispatched) when there are no issues at step-3.

    Hi,
    In order to not rollback your transactions, you need to hit a dehydration point, meaning, save your process into the db store and perform a commit until that point.
    It sounds like a simple process, so you can drag a checkpoint activity after the email activity.
    That is one option. Try, and see if it works for you.
    Arik

  • Create entity and human task

    Hello,
    I have a really simple process which includes a create entity activity. It works perfectly fine as data is inserted into the table and i can see everything is completed in the flow trace. Now, when i insert a human task after the create entity activity, things start going wrong. While i don't see any errors in the flow trace and all tasks are completed as planned, the BPEL component's state is showing as running and at the end of the flow i got the message "The transaction was rolled back. The work performed for bpel instance "123456" was rolled back to the previous dehydration point, but the audit trail has been saved...." It seems like it's waiting for something from the human task (even though it was completed successfully). As long as I leave this running, the process would try everyday from 12:00 AM to 4:00 AM every five minutes. That's another issue that i can't figure out. Can someone shed some light on this? Thank you.

    Hi,
    its best to post this question to the SOA forum. The answer on this forum would be to use a  page template, a parametrized bounded task flow and then add the bounded task flow to each page that has the template. However, the task flow in the HT case is generated, which means that you re-build it all the time (meaning you don't work with the same task flow but multiple). If you know how to just use the HT API to access the information to display, you could write a generic bounded task flow for this. Check on the SOA forum if they can come up with a template approach for your use case.
    Frank

  • Assigning values to array in soa 10.1.3

    Dear team,
    I am working on soa10.1.3 server. we have a complex element of string array.we created a varaible of that element. In while loop we need to pass values to array elements.How can we do that..we tried with indexvaraible..but getting error.
    Regards,
    Radha

    schema is
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/BPELProcess4"
         xmlns="http://www.w3.org/2001/XMLSchema">
         <element name="BPELProcess4ProcessRequest">
              <complexType>
                   <sequence>
                        <element name="input" type="string"/>
                   </sequence>
              </complexType>
         </element>
         <element name="BPELProcess4ProcessResponse">
              <complexType>
                   <sequence>
                        <element name="result" type="string"/>
                   </sequence>
              </complexType>
         </element>
    <element name="element5">
    <complexType>
    <sequence>
    <element name="result" minOccurs="0" maxOccurs="unbounded"
    type="string"/>
    </sequence>
    </complexType>
    </element>
    </schema>
    wdsl is
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="BPELProcess4"
    targetNamespace="http://xmlns.oracle.com/BPELProcess4"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:client="http://xmlns.oracle.com/BPELProcess4"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         TYPE DEFINITION - List of services participating in this BPEL process
         The default output of the BPEL designer uses strings as input and
         output to the BPEL Process. But you can define or import any XML
         Schema type and use them as part of the message types.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://xmlns.oracle.com/BPELProcess4" schemaLocation="BPELProcess4.xsd" />
              </schema>
         </types>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         MESSAGE TYPE DEFINITION - Definition of the message types used as
         part of the port type defintions
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <message name="BPELProcess4RequestMessage">
              <part name="payload" element="client:BPELProcess4ProcessRequest"/>
         </message>
         <message name="BPELProcess4ResponseMessage">
              <part name="payload" element="client:BPELProcess4ProcessResponse"/>
         </message>
    <message name="BPELProcessMessage">
              <part name="payload" element="client:element5"/>
         </message>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PORT TYPE DEFINITION - A port type groups a set of operations into
         a logical service unit.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- portType implemented by the BPELProcess4 BPEL process -->
         <portType name="BPELProcess4">
              <operation name="initiate">
                   <input message="client:BPELProcess4RequestMessage"/>
              </operation>
         </portType>
         <!-- portType implemented by the requester of BPELProcess4 BPEL process
         for asynchronous callback purposes
         -->
         <portType name="BPELProcess4Callback">
              <operation name="onResult">
                   <input message="client:BPELProcess4ResponseMessage"/>
              </operation>
         </portType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         PARTNER LINK TYPE DEFINITION
         the BPELProcess4 partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <plnk:partnerLinkType name="BPELProcess4">
              <plnk:role name="BPELProcess4Provider">
                   <plnk:portType name="client:BPELProcess4"/>
              </plnk:role>
              <plnk:role name="BPELProcess4Requester">
                   <plnk:portType name="client:BPELProcess4Callback"/>
              </plnk:role>
         </plnk:partnerLinkType>
    </definitions>
    bpel file is
    <?xml version = "1.0" encoding = "UTF-8" ?>
    <!--
    Oracle JDeveloper BPEL Designer
    Created: Fri Aug 27 10:01:38 IST 2010
    Author: ruck
    Purpose: Asynchronous BPEL Process
    -->
    <process name="BPELProcess4"
    targetNamespace="http://xmlns.oracle.com/BPELProcess4"
    xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:ns4="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:ns1="http://xmlns.oracle.com/bpel/workflow/xpath"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns3="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:ns2="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:client="http://xmlns.oracle.com/BPELProcess4"
    xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
    <!--
    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="client:BPELProcess4"
    myRole="BPELProcess4Provider"
    partnerRole="BPELProcess4Requester"/>
    </partnerLinks>
    <!--
    VARIABLES
    List of messages and XML documents used within this BPEL process
    -->
    <variables>
    <!-- Reference to the message passed as input during initiation -->
    <variable name="inputVariable"
    messageType="client:BPELProcess4RequestMessage"/>
    <!-- Reference to the message that will be sent back to the requester during callback -->
    <variable name="outputVariable"
    messageType="client:BPELProcess4ResponseMessage"/>
    <variable name="elementMessage"
    messageType="client:BPELProcessMessage"/>
    <variable name="count" type="xsd:int"/>
    </variables>
    <!--
    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 BPELProcess4.wsdl) -->
    <receive name="receiveInput" partnerLink="client"
    portType="client:BPELProcess4" operation="initiate"
    variable="inputVariable" createInstance="yes"/>
    <!--
    Asynchronous callback to the requester. (Note: the callback location and correlation id is transparently handled using WS-addressing.)
    -->
    <assign name="Assign_1">
    <copy>
    <from expression="number(1)"/>
    <to variable="count"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('count') &lt;= number(5)">
    <assign name="Assign_2">
    <copy>
    <from expression="'value'"/>
    <to variable="elementMessage" part="payload"
    query="/client:element5/client:result[bpws:getVariableData('count')]"/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('count')+number(1)"/>
    <to variable="count"/>
    </copy>
    </assign>
    </while>
    <invoke name="callbackClient" partnerLink="client"
    portType="client:BPELProcess4Callback" operation="onResult"
    inputVariable="outputVariable"/>
    </sequence>
    </process>
    For the count 1 code is working fine.. for count=2 thrwoing exception
    <while>
    Assign_2
    [2010/08/27 10:23:20] Updated variable "elementMessage" less
    -<elementMessage>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<element5 xmlns="http://xmlns.oracle.com/BPELProcess4">
    <result>value
    </result>
    </element5>
    </part>
    </elementMessage>
    [2010/08/27 10:23:20] Updated variable "count" More...
    <count>2
    </count>
    Assign_2
    [2010/08/27 10:23:20] Error in <assign> expression: <to> value is empty at line "86". The XPath expression : "" returns zero node, when applied to document shown below: More...
    [2010/08/27 10:23:20] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown. More...
    </while>
    </sequence>
    [2010/08/27 10:23:20] "BPELFault" has not been caught by a catch block.
    [2010/08/27 10:23:20] There is a system exception while performing the BPEL instance, the reason is "faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {} parts: {{summary=XPath query string returns zero node. According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node. Please check the BPEL source at line number "86" and verify the &lt;to&gt; part xpath query. Possible reasons behind this problems are: some xml elements/attributes are optional or the xml data is invalid according to XML Schema. To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page. }} ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point. More...
    [2010/08/27 10:23:20] BPEL process instance #"60002" cancelled

  • Getting "JTA transaction is not present" error while updating db table.

    Hi All,
    In one of my BPEL process, In a loop, I am updating value of database column Flag from 0 to 1. It was working fine in dev environment, but failed in Prod with below errors, Can Any one suggest on this.
    There is a system exception while performing the BPEL instance, the reason is "JTA transaction is not present or the transaction is not in active state. The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.. Please consult your administrator regarding this error. ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point.
    OPMN logs:
    <2010-05-05 01:56:49,395> <ERROR> <gemptp.collaxa.cube.engine> The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.
    The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
    The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
    The current JTA transaction is not present or it is not in active state when processing activity or instance "1020112-BpInv7-BpSeq14.87-2". The reason is The execution of this instance "1020112-BpInv7-BpSeq14.87-2" for process "UpdateOrderReqABCS" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
    Thanks in advance.

    I can envisage this happening only in a case where the update is taking a longer time than the value of JTA transaction timeout.
    Is this happening for all BPEL instances or some of them get thru succesfully ?
    Are you EVER updating that particular row of your table ( before/after) ?
    -Shishir

  • Regarding DB adapter transactions roll back

    Hi All,
    In a BPEL, using while loop i'm trying to insert records in a table(business table-Oracle XE DB). If any errors happen during the insertion, it should rollback the previous insertions happened in the business table and insert the error details in the log table.
    Example: Let's say 5 records need to be inserted in business table, after first two records get inserted successfully, due to invalid data, 3rd record fails to get inserted.
    Things i have done,
    1) I have a catch block to catch the errors
    2) I have an invoke activity in the catch block to invoke the DB adapter to insert error details in log table.
    3) Throw activity with bpelx:rollback to roll back the previous transactions.
    Question: After the error details get inserted in log table, since i have a throw activity with bpelx rollback, all the previous DB transactions including the log table insertion is getting rolled back. I don't want my log table record insertion to be rolled back, only the records which i have already inserted successfully in the business table needs to be rolled back.
    Can anyone let me know, how to handle such a situation? your response is greatly appreciated.

    You need to ensure that your process is working in a single transaction.
    You are correctly using the XA datasource.
    Next you need to ensure that you do not have a dehydration point in the process and if there is a call to another BPEL process they are in a same transaction.

  • Problem in dynamic routing through ESB

    Hi All,
    I am trying dynamic routing through ESB, So I created routing service in my esb with WSDL of BPEL Process1 and a soap service with same wsdl. Then created a xsl transformation. In this xsl transformation I added below code to route to BPEL process 2.
    <xsl:variable name="LocationIn"
    select="http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2"/>
    <xsl:variable name="LocationOut"
    select="ehdr:setOutboundHeader('/shdr:ESBHeader/shdr:location',
    $LocationIn, 'shdr=http://xmlns.oracle.com/esb;')"/>
    But when I am invoking this ESB through another BPEL process, Got below error message:, Is there any solution for that , I am using 10.1..3.4.0, (JDEV, and BPEL).
    receiveInput
    [2010/02/25 17:50:39] Received "inputVariable" call from partner "client" More...
    View xml document
    Invoke_1 (faulted)
    [2010/02/25 17:50:39] Faulted while invoking operation "initiate" on provider "PartnerLink_1".less
    -<messages>
    -<input>
    -<Invoke_1_initiate_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    <SyncBPELProcess1ProcessRequest xmlns="http://xmlns.oracle.com/SyncBPELProcess1"/>
    </part>
    </Invoke_1_initiate_InputVariable>
    </input>
    <fault>
    ORABPEL-08034
    JTA Rollback requested.
    The current JTA transaction has been aborted due to rollback request received from partner invocation.
    </fault>
    </messages>
    </sequence>
    [2010/02/25 17:50:39] There is a system exception while performing the BPEL instance, the reason is "Namespace prefix 'http' used but not declared.". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point. More...
    oracle.xml.xpath.XPathException: Namespace prefix 'http' used but not declared.
         at oracle.xml.xslt.XSLBuilder.startElement(XSLBuilder.java:468)
         at oracle.xml.parser.v2.XMLElement.reportStartElement(XMLElement.java:3703)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3564)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3566)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLElement.reportSAXEvents(XMLElement.java:3566)
         at oracle.xml.parser.v2.XMLElement.reportChildSAXEvents(XMLElement.java:3576)
         at oracle.xml.parser.v2.XMLDocument.reportSAXEvents(XMLDocument.java:1537)
         at oracle.xml.jaxp.JXSAXTransformerFactory.newTemplates(JXSAXTransformerFactory.java:379)
         at oracle.tip.esb.server.service.EsbTransformer.getXSLTTransformer(EsbTransformer.java:147)
         at oracle.tip.esb.server.common.cache.TransformCachePolicy.loadEntry(TransformCachePolicy.java:50)
         at oracle.tip.esb.server.common.cache.Cache.setEntry(Cache.java:306)
         at oracle.tip.esb.server.common.cache.Cache.setEntry(Cache.java:270)
         at oracle.tip.esb.server.common.cache.Cache.getEntry(Cache.java:208)
         at oracle.tip.esb.server.common.cache.Cache.getEntry(Cache.java:181)
         at oracle.tip.esb.server.common.cache.RuntimeCache.getXSLTransformer(RuntimeCache.java:324)
         at oracle.tip.esb.server.service.EsbTransformer.doTransform(EsbTransformer.java:101)
         at oracle.tip.esb.server.service.EsbTransformer.transform(EsbTransformer.java:90)
         at oracle.tip.esb.server.service.EsbTransformer.transform(EsbTransformer.java:83)
         at oracle.tip.esb.server.service.EsbRouterSubscription.transform(EsbRouterSubscription.java:388)
         at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:208)
         at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispatcher.java:138)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(InitialEventDispatcher.java:545)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(InitialEventDispatcher.java:527)
         at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(EventDispatcher.java:94)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:160)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1988)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1467)
         at oracle.tip.esb.wsif.WSIFOperation_ESB.executeRequestResponseOperation(WSIFOperation_ESB.java:288)
         at oracle.tip.esb.wsif.WSIFOperation_ESB.executeInputOnlyOperation(WSIFOperation_ESB.java:357)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:472)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:437)
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:251)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:826)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:402)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3698)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1655)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:217)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:314)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5765)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1087)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:546)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:342)
         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.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:693)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:140)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
         at java.lang.Thread.run(Thread.java:595)
    [2010/02/25 17:50:39] BPEL process instance "260032" cancelled
    Regards

    In below I changed http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2 to http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0 . this is working.
    <xsl:variable name="LocationIn"
    select="http://PC-HP249:8888/orabpel/default/SyncBPELProcess2/1.0/SyncBPELProcess2"/>

  • What is the max file limit for FTP adapter that uses FileIoInteractionSpec

    Hi,
    I know that Oracle provided some new features in 10.1.3.4 using which we can use the file and ftp adapter to move files in a more efficient way
    http://download.oracle.com/docs/cd/E12524_01/relnotes.1013/e12523/adapters.htm#CHDGFAAB
    Essentially it involves modifying the WSDL to use the new InteractionSpec="oracle.tip.adapter.file.outbound.FileIoInteractionSpec"
    Now my question is, what is the file size limit which can be transferred using this.
    I have tried with 20 mb file, it works. But I want to know the upper limit.
    Thanks,
    Amit

    Tried with 31 mb file.
    It successfully delivers the file but....
    The instance never completes successfully in the BPEL Console. If I open the audit tab, it shows the following message
    There is a system exception while performing the BPEL instance, the reason is "JTA transaction is not present or the transaction is not in active state. The current JTA transaction is not present or it is not in active state when processing activity or instance "7,200,001". The reason is The execution of this instance "7200001" for process "TestFTPLimit" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.. Please consult your administrator regarding this error. ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point.less
    ORABPEL-02182
    JTA transaction is not present or the transaction is not in active state.
    The current JTA transaction is not present or it is not in active state when processing activity or instance "7,200,001". The reason is The execution of this instance "7200001" for process "TestFTPLimit" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information..
    Please consult your administrator regarding this error.
         at com.collaxa.cube.engine.CubeEngine.store(CubeEngine.java:5514)
    So does anybody know how to get over this.
    I understand that sync read is a sync operation, so obviously it was going to timeout, as this transfer took around 4 minutes for me. But then, isnt this a bug from Oracle's side

  • Roll back in Adapter DataBase using Polling | BPEL 11g

    Hello Guys,
    I'm having a problem with roll back for polling "Update a field in Table(Logical Delete)" in DataBase Adapter BPEL 11g.
    My process is:
    Does polling in the table from the database changed the value in column from 0 for 1 and then put the message on a JMS queue.
    The problem is:
    When an exception occurs in the process, for example, exception when posting message in the queue, he does not roll back the database, then the value in the table column is changed to 1 and not 0 as it should.
    Adapter Data Base:
    Oracle XA
    Properties BPEL(Composite):
    <binding.jca config="XXXX_db.jca">
        <property name="singleton">true</property>
    </binding.jca>
    <component name="XXXXX" version="2.0">
        <implementation.bpel src="XXXXX.bpel"/>
        <property name="bpel.config.transaction" type="xs:string" many="false">required</property>
        <property name="bpel.config.oneWayDeliveryPolicy">sync</property>
    </component>
    Properties JCA of Data Base:
    <property name="DescriptorName" value="XXXXXXXXX"/>
          <property name="QueryName" value="XXXXXXSelect"/>
          <property name="MappingsMetaDataURL" value="XXXXXX-or-mappings.xml"/>
          <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
          <property name="MarkReadColumn" value="STATUS"/>
          <property name="MarkReadValue" value="1"/>
          <property name="MarkReservedValue" value="2${weblogic.Name}-${IP}"/>
          <property name="MarkUnreadValue" value="0"/>
          <property name="PollingInterval" value="5"/>
          <property name="MaxRaiseSize" value="1"/>
          <property name="MaxTransactionSize" value="10"/>
          <property name="NumberOfThreads" value="1"/>
          <property name="ReturnSingleResultSet" value="false"/>
    Its roll back?
    Could anyone please help me on this.
    Tks,
    Azevedo, Artur.

    You need to ensure that your process is working in a single transaction.
    You are correctly using the XA datasource.
    Next you need to ensure that you do not have a dehydration point in the process and if there is a call to another BPEL process they are in a same transaction.

  • Java.lang.OutOfMemoryError -- Is there a way to limit BPEL instances number

    Hi All,
    My BPEL process is using JMS adapter to read the JMS queue. Whenever a new message arrives, a new BPEL instance is created. However, when the message gets bigger and multiple messages arrive at queue at the same time, the OC4J gets java OutOfMemory (heap space) error and was forced shutdown. I'm wondering if there's any way to limit the BPEL instance created, say, only one at a time, and the messages would be processed in sequence. Would this be a good way to not use so much heap at one time? Is there a way to limit the BPEL instance created?
    Thanks for your help!
    Michelle

    Take a look at how to configure Jms polling interval (talks about a property that you can set to introduce a delay in between dequeues). That might be of some help to start with.
    It is supposed to work exactly the way you want it i.e the activation agent does a dequeue and hand off to bpel engine (which creates an instance and uses the same thread to run as much of that instance as possible i.e till the first dehydration point). So, if your process has a dehydration point right at the beginning (which could be due to invocation of another async process, or wait or ...), you could very well see this thread go right back and process the next available message.
    I believe this is a generic problem that is not necessarily jms adapter specific. One way would be to split up your process into three processes:
    1. "Kickoff" process which contains just a "receive" associated with the activation agent followed by an invocation of a "Controller" process
    2. "Controller" process which checks for the provided input as to which process it needs to invoke, and then goes on to check how many instances of that process are currently running; if this number is below a certain threshold, kick off the main process providing it the necessary payload gotten from the "KickOff" process
    3. "Main" process which is same as your current process except that it is a typical async process without the adapter "receive" partner link
    So, the idea being that for any process where you want to introduce a control-flow mechanism, you would split it into #1 and #3 above. Have one generic Controller process, which caters to all of the processes.
    Would be interested in learning if others have solved this in a generic way.

Maybe you are looking for

  • How can I import multiple PDF pages into ID?

    I am putting together a catalog which consists of over 400 pages. We had the products on our website exported into a PDF format and I need to add a header and footer to each page via a master page in ID. I don't need to edit the actual PDF but I need

  • Macbook CD2 802.11n not working

    I have a macbook (cd2) and it wont connect as a 802.11n to my linksys router that has 802.11n. i can get the Atheros ar5008 to connect as N while in my mac partition, but i cant get it to connect while i am in XP. i tried reinstalling the latest driv

  • Can't get anthing to come on

    Msi kt4v-l athlon xp2000 ati 8500dv all-in-wonder 256mg ram (dont know brand) 60gig maxtor 7200rpm hd 30gig Wd Hd I hooked it all up(yes i check the cables many times over and over..) and when i turn the power on i get 3 beeps...(64k ram problem or s

  • TC works w/Time Machine, but not as as AP

    Really weird.    All Macs successfully back up wirelessly via TM to my TC.   And all Macs detect the TC as a valid AP (with strong signal)...and can 'join' the TC.....but there is no Internet access when using the TC.  Any ideas are welcome.  TIA.

  • How to add  Spare material to Existing Asset Material.

    Hello  Gurus, I have a Problem that I made a Asset code of  One material, Later On one spare of that  Asset material is Damage. i replace it with  new one, But what i do  with new one spare? Wheater i make new Asset code for it. and if yes then How i