Hi there,

I've having some problems with ORACLE_SID under Solaris 8/PHP
4.22/Netscape 3.63.

If I specify the ORACLE_SID, and export it within my environment before
webserver startup, php/oracle do not look up the SID within
tnsnames.ora.  I verified this with truss:

Trace output:
Fatal NI connect error 12545, connecting to:
 
(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/data01/oracle/bin/oracle)(
ARGV0=orac
leblah)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')(DETACH
=NO))(
CONNECT_DATA=(CID=(PROGRAM=)(HOST=foo)(USER=fish))))

[---- ORACLE_SID=blah, OciLogon ( "user", "pw", "" ); -----]
# ps -funs | awk '{print $2}' | xargs truss -f -topen,access -p
10186:  access("/data/oracle/network/admin/ldap.ora", 0) Err#2 ENOENT
10186:  open("/data/oracle/rdbms/mesg/ocius.msb", O_RDONLY) = 19
10186:  open("/data/netscape/testing/test.php", O_RDONLY) = 20
10186:  open("/data/netscape/testing/connecttest.php", O_RDONLY) = 20
10186:  open64("./../", O_RDONLY|O_NDELAY)              = 20
10186:  open64("./../../", O_RDONLY|O_NDELAY)           = 20
10186:  open64("./../../../", O_RDONLY|O_NDELAY)        = 20
10186:  open64("./../../../../", O_RDONLY|O_NDELAY)     = 20
10186:  open("/etc/mnttab", O_RDONLY)                   = 21
10186:  access("/data/oracle/network/admin/ldap.ora", 0) Err#2 ENOENT
10186:  access("/data/oracle/network/admin/sqlnet.ora", 0) = 0
10186:  open("/data/oracle/network/admin/sqlnet.ora", O_RDONLY) = 20
10186:  access("/.sqlnet.ora", 0)                       Err#2 ENOENT
10186:  access("/data/oracle/network/admin/intchg.ora", 0) Err#2 ENOENT
10186:  access("/var/opt/oracle/intchg.ora", 0)         Err#2 ENOENT
10186:  access("/data/oracle/network/admin/intchg.ora", 0) Err#2 ENOENT
10186:  access("/data/oracle/network/admin/tnsnav.ora", 0) Err#2 ENOENT
10186:  access("/var/opt/oracle/tnsnav.ora", 0)         Err#2 ENOENT
10186:  access("/data/oracle/network/admin/tnsnav.ora", 0) Err#2 ENOENT
10186:  open("/data/netscape/https-testing/config/sqlnet.log",
O_WRONLY|O_APPEND|
O_CREAT, 0666) = 20
10186:  open("/data/oracle/network/mesg/tnsus.msb", O_RDONLY) = 21
10186:  open("/data/oracle/rdbms/mesg/oraus.msb", O_RDONLY) = 22
[---- ORACLE_SID=blah, OciLogon ( "user", "pw", "" ); -----]

If I specify the same SID in the db field of OciLogon it succeeds to
look up tnsnames.ora for the sid and connects properly:

[---- No ORACLE_SID, OciLogon ( "user", "pw", "blah" ); -----]
10210:  access("/data/oracle/network/admin/ldap.ora", 0) Err#2 ENOENT
10210:  open("/data/oracle/rdbms/mesg/ocius.msb", O_RDONLY) = 19
10210:  open("/data/netscape/testing/test.php", O_RDONLY) = 20
10210:  open("/data/netscape/testing/connecttest.php", O_RDONLY) = 20
10210:  open64("./../", O_RDONLY|O_NDELAY)              = 20
10210:  open64("./../../", O_RDONLY|O_NDELAY)           = 20
10210:  open64("./../../../", O_RDONLY|O_NDELAY)        = 20
10210:  open64("./../../../../", O_RDONLY|O_NDELAY)     = 20
10210:  open("/etc/mnttab", O_RDONLY)                   = 21
10210:  access("/data/oracle/network/admin/ldap.ora", 0) Err#2 ENOENT
10210:  access("/data/oracle/network/admin/sqlnet.ora", 0) = 0
10210:  open("/data/oracle/network/admin/sqlnet.ora", O_RDONLY) = 20
10210:  access("/.sqlnet.ora", 0)                       Err#2 ENOENT
10210:  access("/data/oracle/network/admin/intchg.ora", 0) Err#2 ENOENT
10210:  access("/var/data/oracle/intchg.ora", 0)         Err#2 ENOENT
10210:  access("/data/oracle/network/admin/intchg.ora", 0) Err#2 ENOENT
10210:  access("/data/oracle/network/admin/tnsnav.ora", 0) Err#2 ENOENT
10210:  access("/var/data/oracle/tnsnav.ora", 0)         Err#2 ENOENT
10210:  access("/data/oracle/network/admin/tnsnav.ora", 0) Err#2 ENOENT
10210:  access("/.tnsnames.ora", 0)                     Err#2 ENOENT
*** Why doesn't this happen with ORACLE_SID and a blank db in OciLogon??
10210:  access("/data/oracle/network/admin/tnsnames.ora", 0) = 0
10210:  open("/data/oracle/network/names/.sdns.ora", O_RDONLY) Err#2
ENOENT
10210:  open("/data/oracle/network/admin/tnsnames.ora", O_RDONLY) = 20
10210:  access("/.tnsnames.ora", 0)                     Err#2 ENOENT
10210:  access("/data/oracle/network/admin/tnsnames.ora", 0) = 0
10210:  open("/data/oracle/network/names/.sdns.ora", O_RDONLY) Err#2
ENOENT
10210:  open("/data/oracle/network/admin/tnsnames.ora", O_RDONLY) = 20
10210:  access("/data/oracle/network/admin/protocol.ora", 0) Err#2
ENOENT
10210:  access("/data/oracle/network/admin/protocol.ora", 0) Err#2
ENOENT
10210:  open("/etc/ttysrch", O_RDONLY)                  = 21
10210:  open("/proc/10210", O_RDONLY)                   = 21
10210:  open("/data/oracle/ocommon/nls/admin/data/lx1boot.nlb",
O_RDONLY) = 21
10210:  open("/etc/ttysrch", O_RDONLY)                  = 21
[---- No ORACLE_SID, OciLogon ( "user", "pw", "blah" ); -----]

Am I doing something stupid with the value in ORACLE_SID?  If I have
correctly specified ORACLE_SID then is PHP 4.22 working as designed or
is this a bug in php or oracle?

thanks in advance,

Dave.



--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to