If it's a new project, I recommend using Spring DAO since iBATIS DAO is deprecated.
See http://ibatis.apache.org/javadownloads.cgi Christian -----Original Message----- From: Comcast Mail [mailto:[EMAIL PROTECTED] Sent: Saturday, November 22, 2008 7:03 AM To: [email protected] Subject: Re: Beginner question on transactions... 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 >
