You were right- it was a transaction-related problem.
Setting JDBC.DefaultAutoCommit to true didn't help, but I looked at my code again and discovered that it didn't call SqlMapClient.commitTransaction() before endTransaction(). Adding a commitTransaction() call fixed my problem.
*sigh*, I'm learning....
Thanks again, Robin
Kris Jenkins wrote:
Hey Robin,
Your problem is to do with transactions, I believe. MyISAM tables don't support transactions (a pox on them and all their kind), but InnoDB tables do. When you insert into a MyISAM table, the data is just written. With an InnoDB table you have to either commit or rollback the change. I think that the MySQL driver will rollback by default, hence your problem. The easiest solution is to try this as a SimpleDataSource property:
<property name="JDBC.DefaultAutoCommit" value="true" />
But if the distinction between transactional and non-transactional table types doesn't mean much to you, take a look at this:
http://dev.mysql.com/books/mysqlpress/mysql-tutorial/ch10.html
HTH, Kris

