I'm afraid I'm out of my league. I just noticed the following comment on the Apache::DBI man page:

  Edmund Mergl was the original author of Apache::DBI. It is now supported
  and maintained by the modperl mailinglist, see the mod_perl documentation
  for instructions on how to subscribe.

 -Jim

On Fri, 31 May 2013, Xinhuan Zheng wrote:

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
     >>
     >>
     >>





Reply via email to