BPEL polling

Recently we created a bpel process which polls a database table for all the status=5 reecords and then process them and updates the status = 5. The query itself is simple, just a normal where status = 5 clause. The frequency of the polling is 1 minute.
This process works well for small number of records. However, when there are around 20k status=5 records , it took some time for bpel to poll and update these records. As a result, this process did not update the status of some records timely and keep polling and processing them multiple times. Does anybody encounter a similar problem? Is there the workaround of this? Please advise.

Hi,
have you tried to limit the rows per transaction in the wizard (screen "9",
http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28994/adptr_db.htm#BDCEACEE )
I think your transaction is to big...
If you limit it to 1000 rows, you will ensure that you only get 1000 rows in one minute. If the sustained rate of your system is below this, everything is fine. Sometimes you get 2000 rows updated to 5 and your BPEL need two minutes to process them...
If your sustained rate is faster than 1000, you have to buy faster disks ;-) because your system is not sized for this load...

Similar Messages

  • Oracle BPEL Polling Database Adapter

    Can someone give me sample or link of db polling ?
    i tired in following way
    1. created db adapter with logical delete option
    2. then created bpel process based on wsdl
    i tired inserting new data but my instance did not get executed?

    Hi,
    Can you please specify your requirement in more detail so I can understand why you need to DB adapter.
    Inbound vs Outbound:
    The main function of inbound is to execute a sql select query and turn the result set as a message. This in relation to outbound that handles a message to execute an SQL query.
    Don't worry about this with the DB adapter as it will do this for you. The only thing you have to make sure that the JNDI name you specify in the DB adapter is configured as a data source in weblogic.
    Thanks
    Sander

  • BPEL polling process open new connection every time it poll for data.

    Hi All,
    I've created a BPEL process that with a database polling process for an AS400 table and the log is showing the BPEL process is opening a new connection every second. Is there a way to create a polling process that will only use one connection and keep the connection open.

    This is dependent on the SOA Server configuration not your service. To change that login to EM console and find appropriate configuration entries in administration tab of your OC4J instance.
    Unfortunately I don't know exactly which one (or more that one) is responsible in your case. I didn't trouble about that ever before, for me it can be even million connections as far as it is working smoothly.

  • 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

  • How to specify custom SQL in polling db adapter with logical delete option

    Hi all,
    I am writing a SOA composite app using JDeveloper SOA Suite 11.1.1.4 connecting to a SQL Server db using a polling DB Adapter with the logical delete option to send data to a BPEL process.
    I have requirements which go beyond what is supported in the JDeveloper UI for DB Adapter polling options, namely:
    * update more than one column to mark each row read, and
    * specify different SQL for the logical delete operation based on whether bpel processing of the data polled was successful or not.
    A complicating factor is that the polling involves two tables. Here is my full use-case:
    1) Polling will select data derived from two tables: e.g. 'headers' and 'details' simplified for this example:
    table: headers
    hid - primary key
    name - data label
    status - 'unprocessed', 'processed', or 'error'
    processedDate - null when data is loaded, set to current datetime when row is processed
    table: details
    hid - foreign key pointed at header.hid
    attr - data attribute name
    value - value of data attribute
    2) There is a many:1 relationship between detail and header rows through the hid columns. The db adapter polling SELECT shall return results from an outer join consisting of one header row and the associated detail rows where header.status = 'unprocessed' and header.hid = details.hid. (This is supported by the Jdeveloper UI)
    3) The polled data will be sent to be processed by a bpel process:
    3.1) If the bpel processing succeeds, the logical delete (UPDATE) operation shall set header.status = 'processed', and header.processedDate = 'getdate()'.
    3.2) If bpel processing fails (e.g. hits a data error while processing the selected data) the logical delete (UPDATE) operation shall set header.status = 'failed', header.processedDate = 'getdate()', and header.errorMsg = '{some text returned from bpel}'.
    Several parts of #3 are not supported by the JDeveloper UI: updating multiple columns to mark the row processed, using getdate() to populate a value of one of those column updates, doing different update operations based on the results of the BPEL processing of the data (success or error), and using data obtained from BPEL processing as a value of those column updates (error message).
    I have found examples which describe specifying custom SQL using the polling delete option to create a template then modifying the toplink file(s) to specify custom select and update SQL to implement a logical delete. (e.g. http://dlimiter.wordpress.com/2009/11/05/advanced-logic-in-oracle-bpel-polling-database-adapter/ and http://myexperienceswithsoa.blogspot.com/2010/06/db-adapter-polling-tricks.html). But none of them match what I've got in my project, in the first case because maybe because I'm using a higher version of JDeveloper, and in the second I think because in my case two tables are involved.
    Any suggestions would be appreciated. Thanks, John

    Hi John,
    You've raised a good scenario.
    First of all let me say that the purpose of the DB polling transaction, is to have an option to initiate a process from a DB table/view and not to update multiple fields in a table (or have other complex manipulation on the table).
    So, when choose to update a field in a record, after reading it, you are "telling" the engine not to poll this record again. Sure, i guess you can find a solution/workaround for it, but I don't think this is the way....
    The question now is what to do?
    You can have another DB adapter where you can update the data after finishing the process. In that case, after reading the data (on polling transaction) - update the header.status = 'processed' for example, and after processing the selected data update the rest of the fields.
    Hope it make some sense to you.
    Arik

  • Rollback Issue in BPEL

    Hi All,
    I am facing issue with Txn rollback in BPEL while using fault policies.My BPEL polls JMS Q and  invokes 2 databases and 1 jms adapter in a sequential manner. I want if any invocation fails , the preceding successful invocations should be rollbacked and txn should be retried as per the source jms q retry settings .I have worked on it using 2 approaches-
    1. Without using Fault Policy- I created a catchall and added a throw activity with rollback fault in it. So if any invocation fails, the rollback and retry is working fine as per the source Q retry settings.
    2.With Fault Policy- I created a fault policy and fault binding(composite/reference level).Also I created a catchall and added a throw activity with rollback fault in it.When any invocation fails, the fault policy is called, and the Ora:retry action executes and retry calling the failed adapter as per the retry configuration set in the policy file. If after all retries, still invocation fails, then transaction goes to CatchAll block.Here is the problem.The transaction is not getting rollbacked and does not even retry as per the JMS Q retry configuration.
    My agenda is to have a process, where in if any invocation fails, that should be retried as per fault policy retry configuration.If still invocation is faulted after all retries, the preceding invocations should be rollbacked and the message should be rollbacked to source jms Q. Again bpel should be instantiated with new transaction. Each instance should itself retry as per fault policy retry configuration.It should keep on retrying(creating new instances) till source Q jms retry limit is achieved.
    Please help..
    Thanks
    Rishu

    Hi Ananth,
    Thanks for your reply.
    I am using fault policies for Error handling in all my interfaces instead of handling the faults using the catch block.So the same approach I need to follow in this interface as well , where I am facing the issue. In my affected interface, I have 3 invocations in sequence manner and want that If any invocation fails, the earlier successful transactions should be rollbacked.So when I am using fault policy, the failed invocation is getting retried as per the fault policy retry , but it is not rollbacking the earlier 2 successful invocations, which it should do to have an effective error handling. Same is getting accomplished by using Catch and throwing rollback error from there. I am ok even if Q retry should not get executed but I need to rollback the previous successfully executed invocations.Could you please let me know how to handle this scenario using fault policy..May be I am skipping something then..
    Thanks and Regards,
    Rishu Sharma

  • ORACLE.FDK.MaximumConcurrentRequestsPerUserReached

    Hi Could you please help us
    I have create a BPEL polling adapter which polls on database table. As soon as a record is inserted into this table, the BPEL process will kick of and creates a folder in OCS using Webservices API. Polling will run every 5 mins.
    When there are more than 10 records then I am getting this error from OCS.
    ORACLE.FDK.SessionError:ORACLE.FDK.MaximumConcurrentRequestsPerUserReached
    Is there any system parameter That I can setup to bump up this value to max 100 concurrent processes per user?

    Try looking under Content --> Node Configuration --> Node in EM.

  • Generate WSDL file

    My BPEL poller process dont have the wsdl file.
    I want to generate wsdl flie for the BPEL process. so that I can convert it to asynchoronous process.
    Any pointers ?
    Thanks

    No sirini,
    Actually My BPEL process polls the database and instantiate the flow where the validation happens.
    I going to split the process into two
    1. BPEL process to poll the database and call second process
    2. second BPEL process will validate the data.
    This is to improve the durability of BPEL processes.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to poll a PL/SQL procedure in BPEL?

    Hi,
    Normally in BPEL your start your process flows by receiving an event. You can only create a BPEL instance via a Receive or Pick activity. I have a couple of integrations where I have to continually call a PL/SQL procedure and then call another PL/SQL procedure with the output from the first procedure. This is done by invoking 2 partner links and a While activity. I got this working fine. The problem is how to create the instance. At the moment I start the flow by reading in a dummy file with a Receive event. This works for now but if the process has to be restarted it will not work since BPEL know that it has already read the file.
    I have tried to start the flow with a receive activity that calls a PL/SQL procedure but I get the error “Operation is not specified” (http://theheat.dk/bpelDb1.jpg). Normally you would use a Invoke activity when calling a PL/SQL procedure, but when I try that I get an error because I don’t have a receive activity first (http://theheat.dk/bpelDb2.jpg)
    So basically I need a way to have a receive activity call a PL/SQL procedure.
    I have the exact same problem when I need to continually call a Web Service and send the output to a PL/SQL procedure. Here I need an Invoke activity that calls the Web Service and an Invoke that calls the PL/SQL procedure but to get the flow initiated BPEL wants a receive activity.
    Regards Pete

    I found a simple solution that works but I would like to hear if anybody can see any problems with this approach:
    I create a dummy table with one row. I create a partner link that polls the dummy table every 5 minutes. The operation on the table is an update, but the Read value and Unread value are the same!
    Every 5 minutes BPEL kicks of a process that calls a PL/SQL procedure etc. There will always be a row in the dummy table and as long as my polling interval is longer than the processing time of the flow I will never have more than one process in-flight at a time. This should ensure that the solution is robust.
    Regards Pete
    Message was edited by:
    Peter Lorenzen
    Message was edited by:
    Peter Lorenzen

  • FTP Adapter stops polling on updating descriptors in BPEL Console

    I have a bpel process activated by a file in a FTP dropzone. An FTP Adapter listens to this dropzone. I have set up a few preferences (Deployment descriptors) for this process. Once when I update any of these user defined preferences, ftp adapter stops polling the dropzone.
    Any idea why this happens?
    Workarounds?

    Hi Shishir,
    Bouncing the server working most of the times, which might not be possible all the time in case of production environments ;/
    Do you find any errors on the logs when the cube engine and activation loggers are set to DEBUG ?
    Could you please mail me your project to [email protected] ?
    Regards
    A

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

  • Polling from the database view in BPEL 11g

    Hi,
    We do have a requirement of polling from the database view in BPEL 11g. I am exploring the following polling strategies in our case:
    - Delete
    - Logical Delete
    In case of Delete polling strategy, can we delete the record as the view does not allow deletion. In this case, do we have any other way to achieve this functionality?
    In case of Logical Delete, We have to mark the status column with particular value. how could we achieve the same when the view is not updateable.
    In 10g, we can override the delete polling strategy with an update statement. Is it possible in 11g?
    Thanks & Regards
    Siva

    Hi,
    I am also doing the same thing what you have done, please help me.
    I have used BPEL export utility for exporting my JPDs to BPEL. but it was not a good help, ultimately i m creating a process manually.
    the main problem what is the replacement of control(jcx files)
    please guide me really it would be great help..
    Thanks in advance and hope to hear from you.
    my mail id is [email protected]
    please send some document if you have...

  • Need  file adapter polling with read operation to be triggered by a BPEL without using synchronous read

    The scenario is:-
    Web Service Client -->input-->BPEL-->if input valid-->trigger file adapter with read operation--> receive file
    i am not able to stop the polling until it is required to trigger the polling.
    As soon as i deploy the composite the file adapter starts polling without waiting for input.
    Since i am using two receive activities, the second one which is suppose to receive file from file adapter is always showing pending state. (asynchronous callback)

    Hi there,
    IMHO the traditional read is used only as inbound operation, that means
    that it starts polling the input folder as soon as the composite gets
    deployed - which is the same you are experiencing.
    In your case you need an outbound operation that needs to be invoked at
    a certain moment. I don't know what are the reasons not to use sync
    read, but this is the only outbound read operation supported by the
    adapter. If you can not use the sync read, then you would have to design
    some custom solution where you call a web service or EJB for instance
    that reads the desired files.
    Another option I can think of, though have not use personally is using
    the adapters programatically in Java - take a look at this blog post as
    it seems related to this topic -
    https://technology.amis.nl/2012/01/22/using-the-oracle-weblogic-technology-adapters-with-custom-java-message-driven-bean-mdb-triggered-by-file-adapter-part-of-the-story/.
    Hope this helps,
    A.

  • How to Exclude a sub directorys from polling using FileAdapter of BPEL Proc

    Hi all,
    I have a BPEL process with file adapter which is polling to root folder .
    I want to exclude File polling for some of the sub folder of the BPEL process.
    How to exclude file polling for sub folder i know the option is available for file name not for folder.
    Thanks
    Phani

    dude, you have to give the exact name of the folder you want to poll to,
    you can also pass the location of the folder at runtime/dynamically.
    In 10 G only single location can be polled by single file adapter
    in 11 g we can poll different folders by single file adapter
    However I doubt that there can be selective polling to multiple folder.

  • Can i Create Output Variable for DB Polling in BPEL 11g?

    Hi Team,
              I want to create the Output Variable for DB Polling,But when i double click on Reply Activity-->Create New Variable it is giving error message like "Can't Create output variable.The Selected operation doesn't have an Output Message".
    My Question is Can we create Output Variable for DB Polling, if Yes tell me the procedure to create the Output variable ?
    Regards,
    Kiran

    Hi Kiran,
    In these scenario generally runtime faults occurs so you can use the CatchAll activity and rethrow activity to complete the instance in error state. Also before the completion of the process if exception occurs you can rollback all the transaction.
    or
    you can use the Fault handling framework:
    Using Fault Handling in a BPEL Process - 11g Release 1 (11.1.1.7)
    Regards,
    Anshul

Maybe you are looking for

  • Noise at the beginning of each song/ Zen Mi

    Well at the start of every song i have a slight noise. I'm using firmware ..0 Zen Micro 6GB. Thanks Bernd

  • SRM-MDM-Catalog - Searching various products ID

    Hi, At the catalog's search, can I enter with various products ID separated by ";" or "," and list all items of this list? The user did it when use SRM 2.0 with Requisite. He search various products in a same query. For example: Product ID field: 112

  • How to view the report of Upload and Download list

    Hello, I would like to see the Portal Activity Report of all the users who have logged in and out and their times and I would like to see the names also with how many uploades and downloades from the portal. I can view only the user ids thats all in

  • WdFireEvent

    Hi, I tried to use custom events in a WebDynpro Development Component. To do this, I created an Event in "component one" of my project. I tried to fire this event with: "wdThis.wdFireEventValidatePassword();" In "component two", of the same project I

  • Unable to create server pool, cant locate server pool file system

    Hi, While creating a server pool, I'm unable to select a physical disk for the server pool file system. I have a Fiber channel 20 GB LUN presented to 2 hosts and on both, the disks are seen. However when creating the server pool, no physical disks sh