On Mon, 2006-01-16 at 05:11 +0000, Jeremy Nixon wrote: > I'm not caching across requests; I have a cleanup handler that > calls rollback and disconnect, and then nukes my entire db wrapper from > orbit.
You keep the handle in a global and then clear it from a cleanup handler? That should work, but I've had better luck using pnotes for this kind of thing, since no explicit clearing is needed. > On the other hand, I have some funky code going on after trying to deal > with DBI's handling of transactions -- I don't want AutoCommit, but it > seems to be impossible to do "set transaction isolation level serializable" > without it, because DBI won't open a transaction if you send that command, > but won't let you send a "begin" yourself, and effectively won't let you > call ->begin unless AutoCommit is on. My experience has been that there is no need to explicitly call begin, at least with MySQL InnoDB tables. I use the "read committed" isolation level, and switching from AutoCommit 1 to 0 seems to have the same effect as issuing a begin. It is effectively always inside of a transaction. If you have a small enough example of code that shows how you manage your database handles, you're welcome to post it here and I'll take a look at it. - Perrin