Hi,

I figured out the issue. It was a combination of setting the SetAutoCommitAllowed, DefaultCommitAllowed properties correctly. Also I had assumed that DaoManagerBuilder.buildDaoManager will return the same instance of Daomanager always ( like a singleton ). So I was creating the dao in my constructor, then for the transaction, building another daomanager. That turned out not tobe true. Once I used the same instance of daomanager, things worked fine.

Thx

-- pady


----- Original Message ----- From: "Comcast Mail" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, November 21, 2008 1:35 PM
Subject: Re: Beginner question on transactions...



The tables were created with Engine=InnoDB

mysql 5.0.27

Thx

-- pady



----- Original Message ----- From: "Poitras Christian" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, November 21, 2008 1:12 PM
Subject: RE: Beginner question on transactions...


Are your tables in InnoDB or MyISAM?

InnoDB tables are required in MySQL to support transactions.

Christian

-----Original Message-----
From: Comcast Mail [mailto:[EMAIL PROTECTED]
Sent: Friday, November 21, 2008 1:04 PM
To: [email protected]
Subject: Beginner question on transactions...


Hi.

I have code that does the following:

try {
DaoManager.startTransaction();
// loop and do some inserts
...
DaoManager.commitTransaction();
} catch ( Exception ex ) {
 ...
} finally {
 DaoManager.endTransaction();
}


One of the insert fails but the previous inserts have been committed.
Although the commitTransaction is never reached.

here is my transaction block from sqlmapconfig.xml ( pointing to mysql database )...

<transactionManager type="JDBC" commitRequired="true">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>

<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test"/>

<property name="JDBC.Username" value="..."/>

<property name="JDBC.Password" value="..."/>

<property name="DefaultAutoCommit" value="false"/>

<property name="SetAutoCommitAllowed" value="false"/>

</dataSource>

</transactionManager>



Any ideas. Help appreciated.



Thanks



-- pady


Reply via email to