Initializing BPEL instance ID

HI,
Is there way to initialize SOA instance id to a specific number? I have tried to find out any database sequence presents or not in SOA infrastructure database but there is no database sequence for instance id.Please let me know any body has some idea. Again just want to initialize instance id to start from some specific number.
Thanks,

To get access to the instance If of a newly started BPEL suitecase/process the build-in method
getInstanceId() has to be used.
This method can be used in the bpel:exec action only.
<bpelx:exec name="Java_Embedding_1" language="java" version="1.3">
<![CDATA[ setVariableData("instance", new Long(getInstanceId())); ]]>
</bpelx:exec>
<bpelx:exec name="Java_Embedding_1" language="java" version="1.3"><!--[CDATA[ setVariableData("instance", new Long(getInstanceId())); ]]--></bpelx:exec>
In that case the instance ID is stored in the variable 'instance', which is of type 'long' and has been created in the scope in which the bpel:exec action resides.

Similar Messages

  • Polling + Bpel : polling ok, no bpel instance

    Hello,
    i have a simple pretty polling with logicalDeleteStrategy, and a Bpel that call a directBinding (OSB)
    my problem is:
    -the polling work fine (the logicalDelete is done)
    -But there no bpel instance created.
    thx
    SOA Suite11.1.1.4

    Have you checked the 'Create Instance' check box in the initial receive activity of your BPEL process.
    user7741749 wrote:
    Hello,
    i have a simple pretty polling with logicalDeleteStrategy, and a Bpel that call a directBinding (OSB)
    my problem is:
    -the polling work fine (the logicalDelete is done)
    -But there no bpel instance created.
    thx
    SOA Suite11.1.1.4

  • BPEL instance getting restarted automatically

    Hi All,
    The BPEL instance is getting restarted automatically for every 10 minutes.
    Below is the error found in the log.
    Any help will be appareciated..
    <2010-08-27 18:15:43,486> <INFO> <collaxa> <ConnectionFactoryImpl::init> Initialized connection factory jdbc/BPELServerDataSourceWorkflow
    <2010-08-27 18:15:43,486> <INFO> <collaxa> <ConnectionFactoryImpl::init> Initialized connection factory jdbc/BPELServerDataSource
    10/08/27 18:15:43 System.getProperty(dehydration.store)=null
    <2010-08-27 18:15:44,044> <INFO> <collaxa> <ServerManager::__init> Detected datasource 'oracle'
    <2010-08-27 18:15:44,061> <INFO> <collaxa> <gsServerSchemaManager::validateCompatibility> Detected database version '2.0.4'
    <2010-08-27 18:15:44,062> <INFO> <collaxa> <ServerAdaptorManager::init> Initialized adaptors for platform 'ias_10g'
    10/08/27 18:15:45
    GMS: address is 10.90.188.91:11326
    -------------------------------------------------------

    Hi,
    Could some one please help me.
    I suppose it could be of a below property?
    Could some one please explain what this is all about?
    <web-app application="jamagent" name="jamagent" load-on-startup="true" root="/jamagent" ohs-routing="false" />

  • Tracking: BPEL Instance Payload

    Hi All,
    I tried to look around for a solution in forums but could find one.
    I want to keep track of all the BPEL instances (Successful, Faulted, etc.,) payloads initially and at the end. For example inputVariable and outputVariable data.
    I saw that the paylod is logged in to XML_DOCUMENT table in orabpel schema. Do I need to use this table to keep tracking?
    Also I guess we can use sensors to log the payload to some temp tables and keep tracking.
    Is there any other better solution to achieve the above solution.
    If any one has implemented or has any good solution, please advise me (You can mail me at ramana.rangaraju at yahoo dot com). Any documentation or pointers are greatly appreciated.
    Thanks in advance.
    Regards
    Ramana.

    Hi Ramana,
    just another hint.
    You don't even have to use JMS/AQ. The sensor information can be stored in the database schema ORABPEL and will be accessible using the view orabpel.bpel_variable_sensor_values or your own customized view. If your sole aim is to monitor this data, a web-application could be sufficient.
    For more information see the ReportSchema tutorial provided with BPEL-Server
    (You should find it somewhere in a directory like oracle\product\10.1.3.1\OraBPEL_1\bpel\samples\tutorials\125.ReportsSchema)
    Kind regards
    Marco

  • How to delete the BPEL instance in Java code

    Hi all,
    How to delete the BPEL instance which I initiate in Java code?
    Thanks
    Jayson

    Hi,
    take a look here
    http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28986/toc.htm
    Interface IInstanceHandle
    void      delete()
    Delete the instance from the process domain.

  • Time Delay when Initiating BPEL from Oracle ESB

    Hi there,
    I am currently working with a client who have an on-going integration project. They are using the BPEL and Oracle ESB components of the Oracle SOA Suite 10.1.3.3.1. There is an issue that periodically occurs.
    The scenario that we are occasionally getting is as follows:
    The ESB is used to Poll for business events in a SQL Server database. Business Events are just information that needs to trigger a process occuring. The ESB has a DB Adapter that POLLS for these events. The ESB simply listens for these events, when one occurs it transforms the incoming message and invokes a Synchonous BPEL process that processes the message. Periodically in their environment, when the ESB DB Poller picks up a message, there seems to be a significant time frame between picking up the message and invoking BPEL. This has been anything upto 90 minutes. For Example messgae picked up 1t 12.30pm and the BPEL instance starts at 2.00pm. This issue seems to be uncreatable. Has anyone experienced similar issues or has any advice regarding this?
    Any assistance / advise would be appreciated
    Dave

    Hi Ruplim
    Thanks for quick response,
    I want to Invoke ESB service from BPEL and get the Response Back in the form of Transformation Data.
    I tried searching for Demo example in tutorials but i am not able to find such case, Do you have any documentation or Sample code for this type?
    Thanks & regards
    Sanjay

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

  • Could not initialize variable. An error occurs while initializing BPEL .

    I have the following error:
    **Could not initialize variable. An error occurs while initializing BPEL variable inputVariable; the schema processor cannot find the element {http://xmlns.oracle.com/MRTApplicationWorkflow/Project1/BPELProcess1}processRequest in the following schemas: oracle.fabric.common.wsdl.SchemaManager@e92e05. The XSD element on which the variable was based was not properly defined in XSD or the WSDL. Ensure that the element named in the error message is valid in the XSD or the WSDL.**
    My process input xsd below:
    <?xml version="1.0" encoding="UTF-8"?>
    <schema attributeFormDefault="unqualified"
         elementFormDefault="qualified"
         targetNamespace="http://xmlns.oracle.com/MRTApplicationWorkflow/Project1/BPELProcess1"
         xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:q1="http://schemas.datacontract.org/2004/07/WM.Services.MRTPortfolioService.BusinessObjects">
    <import schemaLocation="MRTWorkflowService.svc_xsd_xsd2.xsd"
    namespace="http://schemas.datacontract.org/2004/07/WM.Services.MRTPortfolioService.BusinessObjects"/>
    <element name="processRequest">
              <complexType>
                   <sequence>
                        <element name="institutionid" type="int" />
    <element name="brokerid" type="long"/>
    <element name="accountid" type="string"/>
                   </sequence>
              </complexType>
         </element>
         <element name="processResponse">
              <complexType>
                   <sequence>
                        <element name="result" type="q1:ArrayOfMRTProposedOrder"
    />
                   </sequence>
              </complexType>
         </element>
    </schema>
    Please help me with this isssue.
    I am using BPEL 2.0.

    Please check your XSD and dependant XSD's whether it contains any special characters.
    I solved the same issue in my BPEL process by commenting the special characters included in <documentation> element of XSD.

  • Where is the BPEL Instance payload stored in soa database?

    Hi all,
    Given an instance id, I need to get the payload used to invoke the BPEL.
    I searched in the soa database. Also I went through the bpel client apis. But I couldn't find any. Is there any table in the BPEL dehydration store that can give me the entire bpel instance input payload given the instance_id?
    Thanks,
    Shyamala

    Hi,
    have you tried to unzip the blob inside the xml_document table?
    the dockey is availalbe via document_ci_ref

  • Looking to use BPEL Instance and counter inside of a transformation

    I'm trying to find a way to include the BPEL instance and a counter within a BPEL transformation to create a unique key.
    Example, picking up files with multiple lines and no unique keys, each file is processed as a unique BPEL instance (key 1), and would like to use the row number (of the file, but not specified in the file) as the second key.
    My process takes a file from a file adapter and loads it into a database adapter if that helps.
    Any ideas would be appreciated.

    We ended up finding a Node-set Function -> Position to return the position inside of the dataset.

  • Sequential Instantiation of BPEL instances for a BPEL process

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

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

  • BPEL Instance Id

    Hi,
    How are the BPEL instance Ids assigned to each BPEL service instances? Is it some kind of a sequence generator?
    Is there a way to specify / change the Min_value for this Instance Id generator for BPEL so that it starts assigning sequence ids starting from the specified value?
    Thanks,

    To get access to the instance If of a newly started BPEL suitecase/process the build-in method
    getInstanceId() has to be used.
    This method can be used in the bpel:exec action only.
    <bpelx:exec name="Java_Embedding_1" language="java" version="1.3">
    <![CDATA[ setVariableData("instance", new Long(getInstanceId())); ]]>
    </bpelx:exec>
    <bpelx:exec name="Java_Embedding_1" language="java" version="1.3"><!--[CDATA[ setVariableData("instance", new Long(getInstanceId())); ]]--></bpelx:exec>
    In that case the instance ID is stored in the variable 'instance', which is of type 'long' and has been created in the scope in which the bpel:exec action resides.

  • OSB Instance ID like BPEL Instance ID

    Hi all,
    Are we going to have OSB unique instance ID like BPEL instance ID ???
    if not how to create a unique instance ID for OSB instance ??
    Thanks
    Phani

    Use the BEA service bus function fn-bea:uuid() to generate a Unique If for a Message Instance in OSB.

  • BPEL instance recreation for used correlation set.

    Hi,
    In our project we have deployed two composites in the first one we have used a fileadapter,mediator,webservice the flow is like from Fileadapter-->mediator-->webservice(1^st^ Composite) .
    In the second composite bpel interface is web service and wrting to an outbound location using a file adapter. The flow is like webservice-->BPEL-->Fileadapter(2^nd^ Composite).
    To achieve message aggregation,In the BPEL we have used co-relation set on ID.When we put file in inbound location having same unique ID it will be processed within the same BPEL instance and files having different ID will have different bpel instance.
    So it's working as expected after deployment only once.The message are aggregated.But when we are putting some new files in the inbound location having same ID(i:e new instance to be created)there is no files are aggregated at outbound location.In console we can see the flow from fileadapter-mediator-webservice invocation but it's invoking the bpel component..
    I am using BPEL instance corelation set to aggregate multiple message segment from same caller for 5 mins.It works fine no issues.
    For the same corelation ser if I repeat the same requests after 10 mins it won't instantiate BPEL also does not give any error .
    To make it work we have to redeploy the 2^nd^ composite everytime.
    So can anybody please help us out on this how to resolve this issue.
    Thanks In Advance!:)

    Hi,
    Even I am getting the same exception. Even tough my Process doesn't contain any conflicting Receive there is a pick activity that receives the Incoming call with two different messages. And logically it should not generate a conflicting receive.
    Did anyone get the root cause of this problem. If someone can update this . It will be really helpful. I am trying to create the PL for the particular branch instead of the global PL as suggested in one of he blogs. I will also update if i get any new clues.
    Thanks in advance.
    Yogesh

  • Make a BPEL instance recoverable from a BPEL fault hanler?

    Hi
    Does anybody know of a way to make a BPEL instance recoverable from a BPEL catch fault handler, e.g. using Java to programatically instruct the service engine to do the same thing as when using the fault management framework and fault policies to perform a human-intervention action?
    A scenario where this would be very useful is when you have a transformation that fails, e.g. due to missing values in a DVM or XREF. Then, instead of having to do a resend from the source system, you would solve the issue in the affected DVM or XREF and then recover the instance.
    Regards
    Lars

    Hi,
    I don't know of an expiclit way of achieving this directly from within a BPEL Fault handler (e.g. Java API Calls). However an approach i have used is to be a little creative with the use of additional components. You could either place the xForm in a spearate component. Thay way be invoking from the parent component the invoke will receive the fault. Hence your fault framework and fault policies can configure the appropraite actions beacuse the fault occurs on an invoke. Another approach is if you did not want to move the transform is to call a spearate component that just throws a fault. This would have a similar approach as the invoke would receive the fault.
    Regards Dave

Maybe you are looking for