Subject RE: [IBO] Many ways of commiting
Author Alan McDonald
> Hi Experts!
> Its been a year that I have been using and learning IBO. And learning
> and using IBO is such a good thing. Can someone please tell me the
> difference between these methods and which is the best?
> What I want to accomplish is to commit the works done but leaving the
> datasets open.
> method 1.
> with commitaction of the ib_dataset set to cainvalidatecursor
> calling the ib_transaction.commit is it the same as ...
> method 2.
> with refreshaction of the ib_dataset set to rakeepdatapos
> calling the ib_transaction.refresh(true) is it the same as ...
> method 3
> with commitaction of the ib_dataest set to carefresh
> and refreshaction of the ib_dataset set to rakeepdatapos
> calling the ib_trnsaction.commit is it the same as ...
> method 4.
> ib_transaction.commitretaining.
> As far as I understand these 4 methods gives the same result. But
> considering the performance, OAT, usage of system resources, and speed
> which is the best to use under a condition where commiting a transaction
> is done very often.(let say every minute?)
> regards,
> james

if you're commiting every minute, don't use commitretaining (too much server
I use your method 2 and allow users to set a timed save to use this method.
There are separate operations which require a different approach and so they
use their own connection/transaction and call rollback if needed. These
operations typically call the master refresh method before they start and
after they finish. I'm not sure that methods 1 and 3 actually re-open the
datasets again - do they? I like refresh because it hard commits and gets
all my open datasets back the way they were and the user is none the wiser.