RE: problem with DBD::Oracle
- From: Malki.Cymbalista@xxxxxxxxxxxxxx (Malka Cymbalista)
- Date: Wed, 01 Jun 2005 14:33:54 +0300
Thanks to everyone who tried to help. In the end I solved the problem
by searching on google and finding the answer. The problem is specific
to mod_perl2 which is what we are running. I'm not sure I really
understood the explanation but it has to do with the fact that you can't
set environment variables in the script but it should be done at startup
time in the startup.pl script which is what we did and now things are
working properly.
Malka Cymbalista
Webmaster, Weizmann Institute of Science
malki.cymbalista@xxxxxxxxxxxxxx
08-934-3036
>>> "Reidy, Ron" <Ron.Reidy@xxxxxxxxxxxxxxxxxx> 31/05/2005 17:49 >>>
This error message looks hinkey. Are you printing the value of
DBI::errstr? If so, there is definitely something wrong with your
environment.
In any case, if you are making a connection to a remote server, your
connection string is wrong. AFAIK, it should read
"DBI->connect("dbi:Oracle:<your_oracle_sid>" ...".
-----------------
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Malka Cymbalista [mailto:Malki.Cymbalista@xxxxxxxxxxxxxx]
Sent: Tuesday, May 31, 2005 1:45 AM
To: Reidy, Ron
Subject: RE: problem with DBD::Oracle
Thanks for your reply. Unfortunately, I still cannot find the problem.
The error message I get back is ERROR OCIEnvNlsCreate (check
ORACLE_HOME
and NLS settings etc.). However, ORACLE_HOME is printed properly from
the script the NLS setrtings also look OK.
All the files in ORACLE_HOME/lib are readable by the world so I don't
think there's a problem with permissions. What's strange is that when
I
run it from the command line using the same user that runs the web
serve, everything works fine. Anyway, thanks again for your response
and for trying to help.
Malka Cymbalista
Webmaster, Weizmann Institute of Science
malki.cymbalista@xxxxxxxxxxxxxx
08-934-3036
>>> "Reidy, Ron" <Ron.Reidy@xxxxxxxxxxxxxxxxxx> 25/05/2005 17:21 >>>
Well, to start, you should **always** print the Oracle error message
($DBI->errstr). This will tell you more than we on this list could
even
hope to guess.
Next, if it runs from the command line, then you most likely have a
permissions issue with either the Perl script itself, or the Oracle.so
library.
-----------------
Ron Reidy
Lead DBA
Array BioPharma, Inc.
-----Original Message-----
From: Malka Cymbalista [mailto:Malki.Cymbalista@xxxxxxxxxxxxxx]
Sent: Wednesday, May 25, 2005 5:47 AM
To: dbi-users@xxxxxxxx
Subject: problem with DBD::Oracle
Our web server is running Apache 2.0.48 with mod_perl 1.99_12 on a
Sun
machine running Solaris 9. We are running perl 5.8.1, DBI 1.39 and
DBD-Oracle 1.16. We are trying to connect from our web server to an
Oracle database that is on a different machine. The script that we
wrote to do this runs perfectly well when we run it from the command
line as a plain user. However, when we try running it from the web,
we
cannot connect to the database.
When running from the web, the following environment variables are
printed properly:
TWO_TASK
ORACLE_SID
LIBPATH
LD_LIBRARY_PATH
ORACLE_HOME
SHLIB_PATH
I use the following code to connect to the database:
if ( ! ($dbh = DBI->connect("dbi:Oracle:", $dbuser, '', { PrintError
=>
0, AutoCommit => 0 }))) {
print "Error: cannot connect to DB<br>\n";
exit(0);
}
$dbuser is defined as
$dbuser = 'userid/password';
After all the environment variables are printed out, I get the message
Error: cannot connect to DB
As I said at the start, the script works perfectly well from the
command line even when it is run from the same userid that the web
runs
under.
Any suggestions to get this working from the web will be greatly
appreciated. Thanks in advance.
Malka Cymbalista
Webmaster, Weizmann Institute of Science
malki.cymbalista@xxxxxxxxxxxxxx
08-934-3036
This electronic message transmission is a PRIVATE communication which
contains
information which may be confidential or privileged. The information
is
intended
to be for the use of the individual or entity named above. If you are
not the
intended recipient, please be aware that any disclosure, copying,
distribution
or use of the contents of this information is prohibited. Please
notify
the
sender of the delivery error by replying to this message, or notify
us
by
telephone (877-633-2436, ext. 0), and then delete it from your system.
This electronic message transmission is a PRIVATE communication which
contains
information which may be confidential or privileged. The information is
intended
to be for the use of the individual or entity named above. If you are
not the
intended recipient, please be aware that any disclosure, copying,
distribution
or use of the contents of this information is prohibited. Please notify
the
sender of the delivery error by replying to this message, or notify us
by
telephone (877-633-2436, ext. 0), and then delete it from your system.
.
- Follow-Ups:
- Re: problem with DBD::Oracle
- From: Michael A Chase
- Re: problem with DBD::Oracle
- Prev by Date: Trying to install DBI module for perl5.8.0 on sun solaris8 E10k
- Next by Date: Re: problem with DBD::Oracle
- Previous by thread: Trying to install DBI module for perl5.8.0 on sun solaris8 E10k
- Next by thread: Re: problem with DBD::Oracle
- Index(es):
Relevant Pages
|