Cornel,
Uh, doesn't it say that if autocommit is disabled that commit must be
called for the changes to commit. If that is the case, you call commit
during the transaction if no exception is thrown and do endTransaction
in you catch an exception. The database getting no explicit commit
rolls back the current changes at the end of the transaction. It seems
to work for us that way, but we do not directly work with the
connection. We use the DAO transaction processing.
Maybe someone will correct me if I am wrong.
Al
Cornel Antohi wrote:
Hi Richard,
I do not agree with you:
http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html#setAutoCommit(boolean
<http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html#setAutoCommit%28boolean>)
Thank you,
Cornel
----- Original Message -----
*From:* Yee, Richard K CTR DMDC
<mailto:[EMAIL PROTECTED]>
*To:* 'user-java@ibatis.apache.org'
<mailto:[EMAIL PROTECTED]>
*Sent:* Monday, January 22, 2007 6:42 PM
*Subject:* RE: Autocommit not properly handled in Ibatis.
Antohi,
It looks to me that the code does exactly what Clinton says. If
autocommit is on, iBATIS turns it off and thus does not use
autocommit to commit changes to the DB.
-Richard
-----Original Message-----
*From:* Cornel Antohi [mailto:[EMAIL PROTECTED]
*Sent:* Monday, January 22, 2007 2:37 AM
*To:* user-java@ibatis.apache.org
<mailto:user-java@ibatis.apache.org>
*Subject:* Re: Autocommit not properly handled in Ibatis.
Hi Clinton,
1) What do you mean by "iBATIS never uses AutoCommit"? Here is
what I found in:
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction -->
private void init() throws SQLException, TransactionException
// AutoCommit
if (connection.getAutoCommit()) {
connection.setAutoCommit(false);
}
Thank you,
Cornel
----- Original Message -----
From: "Clinton Begin" <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>
To: <user-java@ibatis.apache.org
<mailto:user-java@ibatis.apache.org>>
Sent: Friday, January 19, 2007 8:52 AM
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]
<mailto:[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]
<mailto:[EMAIL PROTECTED]> * www.sungard.com
<http://www.sungard.com>
>
>
>
>
> Success is never ending and failure is never final.
>
>