DBIx::Class is an object-oriented persistence system where you
interact with objects and call methods like create or update
that deal with the database for you.
If you use a dbh with Apache::DBI, just make sure you connect
the dbh at the beginning of every request. Then, set your
server timeouts to just a few seconds --
# mysql client connections
interactive_timeout=120
# apache::dbi connections
wait_timeout=8
Then, if the server is busy, Apache::DBI will take care of
re-using connections, and if the server is not busy, you won't
waste connections by leaving them open.
It's really the best solution for you if you choose to directly
use a dbh under Apache.
Mark
On Mon, 26 Jun 2006, John Robens wrote:
> From: John Robens <[EMAIL PROTECTED]>
> To: [email protected]
> Date: Mon, 26 Jun 2006 15:20:54 +1000
> Subject: Re: [Mason] Global object with database data
>
> Is the DBIx::Class method better than Apache::DBI?
>
> Presume that it is just a wrapper for the standard DBI stuff.
>
> The problem that I have with connecting at server startup time, is that
> our firewall drops connections to things that have been open for a while
> but not used. So if nobody uses the server for an hour it is jammed. 1hr
> cron restart - which is disgusting - is the only solution that I have
> found.
>
> My handler.pl sets the Apache::DBI configuration variables then a global
> DB handle variable.
>
> # always ping
> Apache::DBI->connect_on_init($datasource, ...);
> Apache::DBI->setPingTimeOut($datasource, 0);
>
> {
> package HTML::Mason::Commands;
> use vars qw($DBH);
> $DBH = DBI->connect(...);
> }
>
> Thanks
> John
>
>
>
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Mark
> Hedges
> Sent: Saturday, 24 June 2006 7:52 AM
> To: mason users list
> Subject: Re: [Mason] Global object with database data
>
>
>
> On Fri, 23 Jun 2006, Mark Hedges wrote:
> > >
> > > I don't believe it's possible for them to share the same connection
> > > safely under FastCGI, since it is multi-process, just like mod_perl
> with
> > > the prefork MPM. The DBIx::Class code never shares connections
> across
> > > processes or threads.
> >
> > My impression was it was different, and that it does some kind
> > of management for that, but I could be wrong.
> >
> > >From the man page:
> >
> > "It has auto-increment support for SQLite, MySQL, PostgreSQL,
> > Oracle, SQL Server and DB2 and is known to be used in production
> > on at least the first four, and is fork- and thread-safe out of
> > the box (although your DBD may not be)."
>
> I was wrong about DBIx::Class. All this means is, that if you
> connect in startup, then children fork/spawn, DBIx::Class
> detects that and automatically reconnects with a fresh handle.
>
> There is some work on other mechanisms, if you search on CPAN
> for "DBI pool". The DBI roadmap document has this to say:
>
> "* Connection pooling in a threaded application, such as
> mod_perl, is difficult because DBI handles cannot be passed
> between threads. An alternative mechanism for passing
> connections between threads has been defined, and an
> experimental connection pool module implemented using it, but
> development has stalled."
>
> Until then, number of workers/threads == number of DBI handles.
>
> Mark
>
> Using Tomcat but need to do more? Need to support web services,
> security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Mason-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mason-users
>
>
> --
> Confidential: This email is intended only for the person or entity to
> which it is addressed. The information contained in this email may be
> confidential and privileged. Any retransmission, review, dissemination or
> other use of, or taking of any action in reliance upon, this information
> by persons or entities other than the intended recipient is prohibited.
> If you received this email in error, please let us know by reply and
> destroy all copies of it. Thank you.
>
>
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Mason-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mason-users
>
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mason-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mason-users