Booger has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks!

I have a mod_perl-enabled web application that I'm working with. Most of the time it Does The Right Thing(tm).

However sometimes the result isn't so nice and I find that the Class::DBI-based model occasionally returns objects that don't correlate with the database as it is at that time.

For instance, 80 out of 100 times I get a result that is consistent with the database, but 20 out of a 100 times I get objects out of Class::DBI searches that reflect how the database *used* to look like. (Okay, I made these numbers up but this is a rough approximation of what happens).

It would appear to me that there is some sort of caching going on at some level. I've employed Data::Dumper and have determined that is is most certainly NOT the browsers fault: Class::DBI is really giving me results that don't reflect the current contents of my database but rather older values from tables and so on.

My problem is that I'm not sure where to look to pin down which component is responsible for caching.

FWIW, I'm using MySQL, and the latest versions of the DBD, DBI and Class::DBI modules with Apache 1.3.x and mod_perl 1.29

Any suggestions or thoughts as to why this is happening would be GREATLY appreciated!


  • Comment on mod_perl/Class::DBI application returning inconsistent results

Replies are listed 'Best First'.
Re: mod_perl/Class::DBI application returning inconsistent results
by Joost (Canon) on Mar 15, 2005 at 21:35 UTC
Re: mod_perl/Class::DBI application returning inconsistent results
by perrin (Chancellor) on Mar 15, 2005 at 22:13 UTC
    Are you using InnoDB tables? If so, the problem is this. Otherwise, it's probably what Joost suggested.