I believe I am using "my" declaration rather than "local". I also tried explicitly disconnect but still have same issue. Since it only happens in parent/child processes, I don't know a good way to debug parent/child, nor reproducing the same error using a simple program. Can you guys help me with that?
Thanks, - xinhuan On 5/31/13 9:02 AM, "Jim Schueler" <jschue...@eloquency.com> wrote: >Perrin is right. But fundamentally, I'd say that you're confusing >'local' and 'my' variable scoping: > > http://www.perlmonks.org/?node_id=94007 > > -Jim > >On Fri, 31 May 2013, Perrin Harkins wrote: > >> Try an explicit disconnect() call. >> - Perrin >> >> >> On Thu, May 30, 2013 at 7:46 PM, Xinhuan Zheng >><xzh...@christianbook.com> >> wrote: >> The db handle is declared local and once it's out of scope, the >> destroy >> call will disconnect. But it appears even though variable is out >> of scope, >> we still get that error. Don't know why. >> - xinhuan >> >> On 5/30/13 8:31 AM, "Jim Schueler" <jschue...@eloquency.com> >> wrote: >> >> >Did this solve your problem? >> > >> > -Jim >> > >> >On Wed, 29 May 2013, Perrin Harkins wrote: >> > >> >> Hi, >> >> Apache::DBI is supposed to skip caching if you connect during >> startup. >> >>You >> >> should just need to disconnect your database handle after you >> finish >> >>with >> >> it. It sounds like you're opening it and then leaving it >> open. >> >> >> >> - Perrin >> >> >> >> >> >> On Wed, May 29, 2013 at 3:24 PM, Xinhuan Zheng >> >><xzh...@christianbook.com> >> >> wrote: >> >> Hi, >> >> >> >> I have apache 2.2.23 statically compiled with mod_perl2 >> (prefork). >> >> perl binary is 5.10.1. In startup.pl file there is call >> >> Apache::DBI->connect_on_init. >> >> >> >> <code> >> >> use Apache::DBI; >> >> Apache::DBI->connect_on_init( $DB_DRIVER, $DB_USER, >> $DB_PASSWORD ); >> >> >> >> use DBI; >> >> </code> >> >> >> >> I need to call DBI->connect to load some data during server >> startup >> >> stage. There is problem with this setup. Whenever apachectl >> >> startup/shutdown, we got connection error like this: >> >> >> >> DBD::Oracle::db DESTROY failed: ORA-03135: connection lost >> contact >> >> Process ID: 0 >> >> Session ID: 3252 Serial number: 15131 (DBD ERROR: >> OCISessionEnd) at >> >> /usr/local/lib/perl5/site_perl/5.10.1/Apache/DBI.pm line 228. >> >> >> >> I am trying to fix this error. I think it's related to >> DBI->connect >> >> in startup.pl. My question is: >> >> 1. How do I accomplish loading data into database during >> server >> >> startup using Apache::DBI? >> >> 2. Once data is loaded during server startup, how do I >> safely destroy >> >> this database handle but not affect the children >> instantiate their >> >> database handles? >> >> Thanks in advance, >> >> >> >> Xinhuan >> >> >> >> >> >> >> >> >>