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