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