Re: failed: ERROR OCIEnvNlsCreate. Check (everything)

[email protected] (Martin Evans)
Newsgroups perl.dbi.users
Organization Easysoft Limited
Message-ID <[email protected]>
Perl Diety wrote:
> We're trying to run a Perl program to connect to an Oracle 10 instance, on a
> RH box. From the xterm it runs fine- connects, R/W, everything is ducky. no
> issues whatsoever.
> 
> Then we tried it from a browser (apache server) and it's been a nightmare
> for days. After hours of research and trials, we finally managed to get past
> the "Cannot load Oracle.so"errors by modifying the ld conf file in /etc.,
> rebuilding the DBI, etc.
> 
> Now we've graduated to failed: "ERROR OCIEnvNlsCreate. Check (everything)"
> which basically says (*something* is wrong).
> 
> We went on a second research expiditon, and checked permissions, versions,
> modified ENV vars for NLS, yet nothing seems to help; we just keep getting
> this same message. The fiull message suggests a problem with ORACLE_HOME,
> ORA_NLS10, NLS_LANG,  and "etc" which we interpret to mean (anything at
> all).
> 
> We populated NLS_LANG to match *locale*. We also tried several other options
> like america.american, etc.
> 
> The error occurs at the Connect() step. I threw it into an eval{} block and
> checked perlvars for messages, but they were the same as the fataltobrowser
> message below.
> 
> Finally, we use the same DBI to connect just fine from a browser to mysql.
> So we know the DBI is at least functioning for some DBDs.
> 
> Any advice on howe to isolate this to a file or conf value, etc would be
> most welcome!
> 
> Here is the info we can extract to try to get an idea of what it doesnt
> like:
> 
> available_drivers:
> DBM
> ExampleP
> Oracle
> Proxy
> Sponge
> mysql
> 
> ENV VARS
> 
> DOCUMENT_ROOT = /var2/www/html
> GATEWAY_INTERFACE = CGI/1.1
> HTTP_ACCEPT = */*
> HTTP_ACCEPT_ENCODING = gzip, deflate
> HTTP_ACCEPT_LANGUAGE = en-us
> HTTP_HOST = ournode.com
> HTTP_UA_CPU = x86
> HTTP_USER_AGENT = Mozilla/4.0
> LD_LIBRARY_PATH = /export/apps/oracle/product/10201/lib
> LD_RUN_PATH = /export/apps/oracle/product/10201/lib
> NLS_LANG = en_GB.UTF-8
> ORACLE_BASE = /export/apps/oracle
> ORACLE_HOME = /export/apps/oracle/product/10201
> ORA_NLS10 = /export/apps/oracle/product/10201/nls/data/
> REQUEST_METHOD = GET
> REQUEST_URI = /cgi-bin/oratest.cgi
> SERVER_PORT = 80
> SERVER_PROTOCOL = HTTP/1.1
> SERVER_SIGNATURE =
> 
> Apache/2.0.52 (Red Hat) Server at ournode.com Port 80
> 
> SERVER_SOFTWARE = Apache/2.0.52 (Red Hat)
> DBI connect(...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux)
> env var or PATH (Windows) and or NLS settings, permissions, etc. at
> /cgi-bin/oratest.cgi line 32
> 

Did you really set AND export ORACLE_HOME or LD_LIBRARY_PATH such that
Apache children see them? I can't remember what the syntax in the
httpd.conf file is now (SetEnv perhaps) as I no longer use Apache but
you used to have to explicitly tell Apache which env vars to allow.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.