Hi Clinton,

Thanks for replying early.

Following is the saveAllRecords which save the list passed.
List contain the BasicDTO which is serialisable.


Suppose I have two DTO in list. First DTO is saved successfully and if I
get exception while saving second DTO , the First DTO which is saved
earlier should get roll backed. But this is not happening ibatis is
saving first DTO.i have set auto commit to false. What change I should
make in order to properly roll back the transaction.


        public void saveAllRecords( String id, List recordList )
        {
                try
                {
                getSession().startTransaction();
                        if (!recordList.isEmpty())
                        {
                                for (int i = 0; i < recordList.size();
i++)

                                {
                             BasicDTO basicDTO = (BasicDTO)
recordList.get(i);
                                   getSession().insert(id +"_INSERT",
basicDTO);
                                }
                                
                        }
                getSession().commitTransaction();
                        
                }
                catch (SQLException e)
                {
                        throw new RuntimeException("Error while
Excecuting Batch"                               + e);
                }
                finally
                {
                        try
                        {
                           getSession().endTransaction();
                        }
                        catch (SQLException e)
                        {
                                throw new RuntimeException("Error while
Excecuting                              Batch" + e);
                                
                        }
                }
                
        }







Regards
 yuvraj 


   

-----Original Message-----
From: Clinton Begin [mailto:[EMAIL PROTECTED] 
Sent: Friday, January 19, 2007 12:23 PM
To: user-java@ibatis.apache.org
Subject: Re: Autocommit not properly handled in Ibatis.

A few things:

1) iBATIS never uses AutoCommit.

2) setCommitRequired has nothing to do with AutoCommit.  iBATIS uses
deferred commits to avoid unecessary commits when no non-queries have
been issued.  And setCommitRequired is actually parameterized and can
be set with <transactionManager ... commitRequired="true">

3) You'll need to post your code so we can see what it's doing.  Are
you calling startTransaction()?  Are you using setUserConnection?  Or
openSession(conn)?

I'm sure with the right information we can resolve this for you easily.

Clinton

On 1/18/07, Yuvraj Shinde <[EMAIL PROTECTED]> wrote:
>
>
>
>
> Hi all,
>
>
>
>    I want to know how to handle auto commit in ibatis.if I am saving
two
> records and if I get an exception while saving second record the first
> record saved should be rolled back.
>
>   But ibatis is saving the first record. How I should handle this even
> though the auto commit property is explicitly set to false.
>
>
>
>    Even though AutoCommit value is set to false. Rollback of
Transaction is
> not working.
>
>    I found one Issue in GeneralStatement.java.
>
>    On line 52  request.getSession().setCommitRequired(true);
>
>
>
>    Here Auto commit is hard coded it should be parameterized so that
it will
> take value from "Auto commit" property of  SqlMapConfig.xml.
>
>    Please correct me if I am wrong.please send me a solution.
>
>
>
> Regards
>
> Yuvrajs
>
>
>
>
>
>
>
>
>
> Yuvraj Shinde * Senior Software Engineer -  Zainet*  SunGard *
Offshore
> Services *
>  Pride Portal,CTS No 103A/5A/1A/1B Bhamburda,Senapati Bapat Road,
> shivajinagar,Pune 411016
>  Tel Direct +91 20 66248045 * Main +91 20 66248000 * Fax +91 20
25606222
>  [EMAIL PROTECTED] * www.sungard.com
>
>
>
>
> Success is never ending and failure is never final.
>
>


Reply via email to