> 
> I like the second one very much.
> But where should I put this code?
> In every of my embperl pages?
> Or can I store the object and reuse it? So that I don't have 
> to create it on every request, which would result in a new db 
> connection per request.
> 

$epapp -> {dbic}  ||= DBIx::Whatever -> new (...) ;

This will only call new when $epapp -> {dbic} is undefined and $epapp is per
child, so your db connection will only be created on the first request of
every child and reused afterwards.

Gerald

P.S. You can have a similar effect (at least of the data base connection
itself) by using Apache::DBI




> -Alex
> 
> 
> > -----Original Message-----
> > From: Gerald Richter [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, June 06, 2006 1:40 PM
> > To: embperl@perl.apache.org
> > Cc: Hartmaier Alexander
> > Subject: Re: persistent DB connections
> > 
> > Am Dienstag, 6. Juni 2006 13:22 schrieb Hartmaier Alexander:
> > > Hi Gerald!
> > >
> > > Yes I know that! So can you tell me where to store my dbic schema
> > object
> > > which stores my dbh?
> > >
> > 
> > I would do something like
> > 
> > $dhic ||= DBIx::Whatever -> new (...) ;
> > 
> > or
> > 
> > $epapp -> {dbic}  ||= DBIx::Whatever -> new (...) ;
> > 
> > if you use the first one inside a embperl page, you should 
> use another 
> > namespace, to make it globally available for all pages e.g.:
> > 
> > $mydbic::dhic ||= DBIx::Whatever -> new (...) ;
> > 
> > if you use the second one inside a custom module, you have to pass 
> > $epapp
> > 
> > Gerald
> > 
> > 
> > 
> > > -Alex
> > >
> > > > -----Original Message-----
> > > > From: Gerald Richter [mailto:[EMAIL PROTECTED]
> > > > Sent: Tuesday, June 06, 2006 11:59 AM
> > > > To: embperl@perl.apache.org
> > > > Cc: Hartmaier Alexander
> > > > Subject: Re: persistent DB connections
> > > >
> > > > Am Montag, 29. Mai 2006 11:05 schrieb Hartmaier Alexander:
> > > > > If i use $epapp, where/when should I set it? Can it 
> be done in 
> > > > > my
> > > >
> > > > apache2
> > > >
> > > > > config? (startup.pl) Same question for the global var...
> > > >
> > > > You should not open a db connection in startup.pl 
> because handles
> > will
> > > > not be
> > > > valid after the fork of the children. All other data 
> can be setup 
> > > > in
> > the
> > > > startup.pl and stored in a global variable.
> > > >
> > > > The db connection should be opened at the first request 
> to the db.
> > > >
> > > > Gerald
> > > >
> > > > > -Alex
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Gerald Richter [mailto:[EMAIL PROTECTED]
> > > > > > Sent: Monday, May 29, 2006 6:31 AM
> > > > > > To: Hartmaier Alexander; embperl@perl.apache.org
> > > > > > Subject: RE: persistent DB connections
> > > > > >
> > > > > > > I want to use my DBIx::Class module to access the db and 
> > > > > > > want to store a DBIx::Class::Schema object which 
> holds a db 
> > > > > > > connection somewhere, so I can access it from my embperl 
> > > > > > > pages and my embperl library I include with
> > > > > > >
> > > > > > > Execute ({ inputfile => 'nacadminlib.epl', import => 1 });
> > > > > > >
> > > > > > > in every page.
> > > > > > >
> > > > > > > I looked at the Embperl docs but couldn't find a solution.
> > > > > > >
> > > > > > > Put it in $epreq, or $epapp?
> > > > > > >
> > > > > > > How to do it to get one per apache2 child?
> > > > > >
> > > > > > Putting it in $epapp should work, but will get a db 
> handle for
> > every
> > > > > > different name you specify with Embperl_App in your 
> httpd.conf
> > file.
> > > > > >
> > > > > > The other possibility is to put it in a global 
> variable, then
> > you
> > > >
> > > > will
> > > >
> > > > > > get a
> > > > > > handle per Apache child
> > > > > >
> > > > > > Gerald
> > > > > >
> > > > > >
> > > > > >
> > > > > > ** Virus checked by BB-5000 Mailfilter **
> > > >
> > > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > > > *"*
> > > >
> > > > >"* T-Systems Austria GesmbH   Rennweg 97-99, 1030 Wien
> > > > > Handelsgericht Wien, FN 79340b
> > > >
> > > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > > > *"*
> > > >
> > > > >"* Notice: This e-mail contains information that is 
> confidential
> > and
> > > >
> > > > may be
> > > >
> > > > > privileged. If you are not the intended recipient, 
> please notify
> > the
> > > >
> > > > sender
> > > >
> > > > > and then delete this e-mail immediately.
> > > >
> > > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > > > *"*
> > > >
> > > > >"*
> > > >
> > > > ** Virus checked by BB-5000 Mailfilter **
> > >
> > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > *"*
> > >"* T-Systems Austria GesmbH   Rennweg 97-99, 1030 Wien
> > > Handelsgericht Wien, FN 79340b
> > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > *"*
> > >"* Notice: This e-mail contains information that is 
> confidential and
> > may be
> > > privileged. If you are not the intended recipient, please 
> notify the
> > sender
> > > and then delete this e-mail immediately.
> > >
> > 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"
> > *"*
> > >"*
> > 
> > 
> > ** Virus checked by BB-5000 Mailfilter **
> > 
> 
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"*"*"*
> T-Systems Austria GesmbH   Rennweg 97-99, 1030 Wien
> Handelsgericht Wien, FN 79340b
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"*"*"*
> Notice: This e-mail contains information that is confidential 
> and may be privileged.
> If you are not the intended recipient, please notify the 
> sender and then delete this e-mail immediately.
> *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"
> *"*"*"*"*"*"*"*
> V*rGo M1~)z<oo~^
> 



** Virus checked by BB-5000 Mailfilter **


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to