Hi,

 

Great. I guess this might solve the problem. 

 

I had found in one of the forum stating that  we can write a handler which 
generates the "$r" global object  before initiate the Apache::DBI  connection . 
 Is that possible ? .

 

Otherwise, Shall I  install Apache::DBI 1.06 instead of Apache::DBI 1.07 ? 

 

Thanks,

Raja 

 

From: Brad Van Sickle [mailto:bvs7...@gmail.com] 
Sent: Saturday, September 12, 2009 7:54 PM
To: mod_perl list
Cc: Kulasekaran, Raja
Subject: Re: FW: Apache::DBI Failed due to +GlobalRequest

 

I've run into this before.   It's a bug in v1.07 of Apache::DBI

Open up the Apache/DBI.pm source file (on one of my test systems it's installed 
in /usr/lib/perl5/site_perl/5.8.8/Apache/DBI.pm) aind the following block of 
code: 
   if (!$Rollback{$Idx}) {
        my $r;
        if (MP2) {
                $r = Apache2::RequestUtil->request;
                }
        elsif (Apache->can('push_handlers')) {
            $r = 'Apache';
        }

The problem with this is that if you're calling this from startup.pl you're not 
actually in a request at that point  (as someone already mentioned) so without 
the eval there the script dies. 

Fix it by wrapping the "$r = Apache2::RequestUtil->request;" part in an eval so 
it looks like this: eval { $r = Apache2::RequestUtil->request;}








André Warnier wrote: 

Kulasekaran, Raja wrote: 



Hi, 

Thanks for your mail. I did tried. It's not working . 

Yes, I am sorry.  I did not look close enough at the following error : 

[Thu Sep 10 14:39:30 2009] [error] Global $r object is not available. 
Set:\n\tPerlOptions +GlobalRequest\nin httpd.conf at 
/var/www/audashboard/exec/startup.pl line 24.\nCompilation failed in 
require at (eval 5) line 1.\n 

In a mod_perl *request* handler, the first argument 
(my $r = shift;) 
is usually a pointer to the current Request object. 

But in your startup script (startup.pl), that is not the case, because when 
that script is run, there is no request yet. 
I don't know what you are trying to do with $r in that startup script, but 
something is wrong and maybe the error message above is misleading. 
(I mean that it may have nothing to do with GlobalRequest at that stage.) 

Reply via email to