My mistake, Jerome. 

PerlSetVar != PerlSetEnv

I read that as PerlSetVar. Sorry to confuse the issue.

I hope it's a simple permissions problem.

Good luck!

  David S . Kenzik said...

 >   Jerome MOUREAUX said...
 > 
 >  > David,
 >  > 
 >  > The ORACLE_HOME is set in the httpd.conf with a PerlSetEnv directive.
 >  > (it appears in the extract I sent). (I've checked that is OK in the scripts by
 >  > printing out $ENV{ORACLE_HOME} )
 > 
 > Well I can pretty much guarantee you that the ORACLE_HOME environment is not
 > being set by PerlSetVar. That is simply not the function of PerlSetVar. 
 > 
 > You must have it set globally in /etc/profile or similar if you're able to
 > print it. And if you are indeed able to print it, then it not being set is
 > not your problem.
 > 
 > Just to humour me, please set it in your startup.pl like my example shows,
 > and remove the PerlSetVar line in your httpd.conf. Try again. If the problem
 > persists, it's something else. Maybe permissions...
 > 
 > Does the webserver user have rights to look at tnsnames.ora and other
 > items inside /disc1/sherpa/oracle? To verify, su into your webserver user
 > and attempt to run your script from the command line. 
 > 
 >  > The SID is not case sensitive (I tried some combination when I was trying to
 >  > figure out what happen) otherwise it would mean that SID are insensitive when
 >  > running the script from command line and sensitive when running from Apache !
 > 
 > OK. It's not case sensitive. I've learned something new today, and verified
 > by reconfiguring my tnsnames.ora.
 > 
 > Good luck.
 > 
 >  > At 03:43 PM 29-03-00 -0500, David S . Kenzik wrote:
 >  >
 >  > >The ORACLE_HOME ___environment___ variable is set where? I see no indication
 >  > >of it being set in any of your examples or config.
 >  > >
 >  > >I do see PerlSetVar setting it-- don't confuse that with the environment!
 >  > >PerlSetVar is a specific way to set variables so mod_perl can read them via
 >  > >the dir_config() method.
 >  > >
 >  > >I usually set my ORACLE_HOME inside my startup.pl so all the Apache children
 >  > >can definitely find it:
 >  > >
 >  > >         $ENV{ORACLE_HOME}='/disc1/sherpa/oracle';
 >  > >
 >  > >You might also be able to use Apache's SetEnv directive, see the following
 >  > >URL for details and possible restrictions:
 >  > >
 >  > >         http://www.apache.org/docs/mod/mod_env.html#setenv
 >  > >
 >  > >And finally, you should double check your case in your DSN during your
 >  > >connect(). Oracle SIDs might be case sensitive and thus not finding the
 >  > >proper SID. (I always have SIDs that are all capital letters, so I couldn't
 >  > >tell you for sure.)
 >  > >
 >  > >Hope this helps.
 >  > >
 >  > >-d.
 >  > >
 >  > >   Jerome MOUREAUX said...
 >  > >
 >  > >  > Hi All,
 >  > >  >
 >  > >  > I experience a trouble with Perl script using DBI running under Mod_perl
 >  > >  > and Registry
 >  > >  > If you have an idea from where the problem may come....
 >  > >  >
 >  > >  > Here is the error :
 >  > >  >
 >  > >  > DBI->connect failed: ORA-12154: TNS:could not resolve service name (DBD:
 >  > >  > login f
 >  > >  > ailed) at /disc1/sherpa_a/indicators2/perl/activity/toto.pl line 5
 >  > >  > [Wed Mar 29 20:11:32 2000] [error] ORA-12154: TNS:could not resolve 
 >  > > service
 >  > >  > name
 >  > >  >   (DBD: login failed) at 
 >  > > /disc1/sherpa_a/indicators2/perl/activity/toto.pl
 >  > >  > line 5
 >  > >  >
 >  > >  > The ORACLE_HOME is well set ! I first tried to use Apache::DBI but i get
 >  > >  > this error
 >  > >  > so I go back to DBI only but it's exactly the same error.
 >  > >  > My scripts run well if I launch it from the command line.
 >  > >  >
 >  > >  > Here is extracts of my httpd.conf
 >  > >  >
 >  > >  >      # Additionnal directory (for indicators)
 >  > >  >      Alias /indicators2/perl "/disc1/sherpa_a/indicators2/perl"
 >  > >  >      <Location /indicators2/perl>
 >  > >  >          SetHandler      perl-script
 >  > >  >          PerlHandler     Apache::Registry
 >  > >  >          PerlSendHeader  On
 >  > >  >          Options         +ExecCGI
 >  > >  >      </Location>
 >  > >  >
 >  > >  > at the end:
 >  > >  >
 >  > >  > PerlSetEnv      ORACLE_HOME     /disc1/sherpa/oracle
 >  > >  > PerlRequire             conf/startup.pl
 >  > >  > PerlFreshRestart        On
 >  > >  >
 >  > >  > Here is the startup.pl
 >  > >  >
 >  > >  > #!/usr/bin/perl
 >  > >  >
 >  > >  > # Commonly used modules
 >  > >  > use Apache::Registry ();
 >  > >  > use Apache::Constants ();
 >  > >  > use CGI ();
 >  > >  > #use Apache::DBI ();
 >  > >  >
 >  > >  > #$Apache::DBI::DEBUG=2;
 >  > >  > #Apache::DBI->connect_on_init("dbi:Oracle:indicators", "indic", "xxxx",
 >  > >  >   { AutoCommit => 0, RaiseError => 1, PrintError => 0 } )
 >  > >  >   or die $DBI::errstr;
 >  > >  >
 >  > >  > 1;
 >  > >  >
 >  > >  > And finally my test file:
 >  > >  >
 >  > >  > #!/usr/bin/perl
 >  > >  >
 >  > >  > use DBI;
 >  > >  >
 >  > >  > my $dbh = DBI->connect( 'DBI:Oracle:INDICATORS', 'indic', xxxx',
 >  > >  >      { AutoCommit => 0, RaiseError => 0, PrintError => 1 } )
 >  > >  >      or die $DBI::errstr;
 >  > >  >
 >  > >  > $dbh->disconnect;
 >  > >  >
 >  > >  > Thanks in advance
 >  > >  > Jerome
 > 
 > -- 
 > David S. Kenzik
 > [EMAIL PROTECTED] - http://kenzik.com

-- 
David S. Kenzik
[EMAIL PROTECTED] - http://kenzik.com

Reply via email to