FitTrend has asked for the wisdom of the Perl Monks concerning the following question:
Hi all,
Before posting this I've made some effort searching the web and archives for something related to the issue I'm having. This issue is very random. Some times, the user can click link after link after link (web based app) and it works fine. Other times, a few clicks in it fails with no errors from Perl, apache or the mysql log.
To summarize what happens behind the scenes every time a user clicks a link:
- A scan of available tables takes place (this determine which tables I need for creating a merge table based on what the user is asking for)
- A drop table of the old merge tables (3 of them) is issued (this is where it randomly dies some times)
- A merge table is created from the scan list (in the first step) and indexes are applied. It is unique for each user
- A Temporary table is created to narrow down the records needed (could be 100k+ records)
- The application queries the results from the temporary table, displays it, and terminates normally
This is the process that is repeated for every user request. It is done this way because the merge table COULD span multiple databases and tables. It all depends on the user. What is frustrating is no errors are generated and it always fails on the first drop table when it occurs (we drop a total of 3 tables).
I've done some testing with just MySQL and cannot reproduce the drop or premature connection termination behavior I believe I'm seeing. I've tested with MySQL 4.1.10a (and the latest), Apache 2.0.52 (and the latest), DBI 1.49 and 1.50, and Perl 5.8.7 and 5.8.8. This is all from a windows system.
Has anyone heard of this type of behavior before? Can any one give me some suggestions on how I should go about resolving my issue? I'm sure I'm missing something.
I've attached the sub I use to create the merge tables using DBI. code here
I appreciate your consideration.
Sincerely,
Marc