[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cgiapp] CAP::DBH and CAP::Session


Cees,
 
Nevermind, it was entirely my fault.  I still had a teardown sub left
over from before I was using CAP::DBH that would explicitly disconnect
the database.  Of course, with CAP::Session expecting all that to be
done automatically by DESTROYs, that didn't work so well.
 
Not feeling too smart right now...
 
Thanks for your help!
 
Curtis H.

>>> "Curtis Hawthorne" <suppressed> 6/22/2005
10:43:49 AM >>>

Cees,

I suspected mod_perl might be the problem too, but I have disabled it
for testing and am running as just a plain CGI script.  I went ahead
and
added a warn $@ statement to the PostgreSQL driver for CGI::Session
after the first eval in the store method when it tries to retrieve the
session information.  After doing this, I got an "execute on
disconnected handle" error in my Apache log, so it looks like the
handle
is being destroyed or disconnected for some reason.

Curtis H.

>>> Cees Hek <suppressed> 6/22/2005 9:15:09 AM >>>

On 6/22/05, Curtis Hawthorne <suppressed> wrote:
> So, I'm guessing what's happening is that the database handle inside
of
> CAP::DBH is getting DESTROYed before the session object.  Is there
any
> good way to get around this?

That should only happen if you explicitly close the database handle. 
CAP::Session will keep a reference to the database handle, so the
database handle will not be destroyed until after CAP::Session is
finished with it.

Another possibility is that your session never goes out of scope,
hence it is never automatically flushed.  This can happen under
mod_perl if you keep the session in a global variable, or trap it in a
closure.

Cheers,

Cees



Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.