On Fri, 2005-05-20 at 04:32 +0300, Octavian Rasnita wrote:
> I have put the following lines in a startup.pl file which is included for
> all virtualhosts (but I have a single virtual host):
> 
> use Apache::DBI ();
> Apache::DBI->connect_on_init('DBI:mysql:database=test', 'root', undef,
> {PrintError => 1, RaiseError => 0, AutoCommit => 1});
> 
> Then I have called the modules that use DBI in a second "preload.pl" program
> which is included just in my virtual host, using:
> 
> use Site::Module1 ();
> use Site::Module2 ();

What's going on in there?  Are you using Class::DBI, by any chance?

> I have noticed that if I comment out the lines from the second file, the
> site works fine, but I am not sure if I won't have problems after a certain
> time.
> It seems that I am not allowed to launch the modules at server startup.

It just means that those modules open database handles when you load
them and cache those handles in globals or closures.  That will always
cause problems.  You need to make them postpone opening the handles, or
stop keeping cached copies of the handles.

- Perrin

Reply via email to