May 18th, 2009, 11:59 AM
Connection-Pool, TransactionManager and Dirty Read
I want to load millions of data in 3 tables. One Thread makes a select as an consumer and a pool of Threads get this data, look a the tables and make an inserts or update. (Informix Database)
For inserts and updates I use the SimpleJdbcTemplate. The isolation level is uncommited read, because I want to use transactions and all threads need the uncommited records.
But it doesn't work with transaction.
First I use the dbcp-connection pool, but it doesn't work togehter with autocommit=false and dirty read.
The SingleConnectionDataSource locks the table.
Can everybody give me an hint to solve this problem?
Wich DataSource should I use?
Thanks a lot.
May 19th, 2009, 04:30 AM
I have fixed the problem.
I use now c3po as connection pool (c3po.DriverManagerDataSource), with autoCommit=false and isolation level read uncommited.
The problem was the foreign key. It is not possible to insert a new record with a forgein key which refer to an uncommited record in an other table.
Sleeping over a problem is sometimes a good idea.