2 Replies Latest reply: Feb 11, 2013 9:41 AM by Tarak RSS

    Row level commit using DB adapter

    kiran4soa
      We have a soa 11g requirement, where a File is polled using File adapter and this is inserted into DB using DB adapter. All the commits should happen
      at the record level, where in if one of the record fails due to improper data, the others should commit. I am using a single DB insert rather than looping for
      each record in the bpel process. I initially tried with XADatasource, later created a non XA datasource and used it in DB adapter. ALso used the property setting
      Idempotent=false. But if one of the record fails, the whole transaction is failed. How to achieve the record level commit?
        • 1. Re: Row level commit using DB adapter
          vladodias
          kiran4soa wrote:
          But if one of the record fails, the whole transaction is failed.
          That's the expected behaviour and I'm afraid you won't find any option/property to change this...
          http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm
          How to achieve the record level commit?
          You'll have to redesign your process... One option would be to split your process in two... have a BPEL1 to read the file and send individual messages to a JMS queue, and a BPEL2 to listen to the queue and process individual messages...

          Cheers,
          Vlad
          • 2. Re: Row level commit using DB adapter
            Tarak
            Hi Kiran,

            I am scared that oracle has this functionality. I don't see what you trying to achieve can be done with Existing design. Also i feel this is not a recommended to implement in middle ware.

            As Vald said you need to redesign you service according to you requirement.

            Regards,
            Tarak