Edit report at https://bugs.php.net/bug.php?id=58925&edit=1
ID: 58925
Updated by: sixd@php.net
Reported by: glenn dot schmidt at deakin dot edu dot au
Summary: No error information available when
php_oci_create_env fails
Status: Closed
Type: Bug
Package: *General Issues
Operating System: Any
PHP Version: Irrelevant
Assigned To: sixd
Block user comment: N
Private report: N
New Comment:
PHP 5.1.4 is over 5 years old now and I strongly suggest upgrading
some or all of the stack. The connection management code in PHP OCI8
was changed a lot in OCI 1.4. You have what corresponds to OCI8 1.2.1.
This list of fixes since then is in http://pecl.php.net/package/oci8.
If you can't upgrade all of PHP, try upgrading only the OCI8 extension
using PECL. Some steps are in "Upgrading PHP with PECL OCI8 on Linux"
on p 70 of
http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-
098250.html
If you want yesterday's extra diagnostic from this bug, grab OCI8 code
in any of the 5.3/5.4/trunk bundles from http://snaps.php.net/
If you are using REF CURSORS (and not using Oracle Database 8i), I
suggest also upgrading Instant Client to 11.2 to get the pre-fetching
performance increase. If you want to stick to the 10.2 stream, you
might be interested that 10.2.0.5 is available.
Depending on your platform, if you don't want to build PHP, you may be
able to test out the development-only PHP 5.3.8 RPMs from
http://oss.oracle.com/projects/php/ or perhaps use
Zend Server.
Note this bug is closed. Please follow up via email or a support
forum such as http://www.oracle.com/technology/forums/php.html
Previous Comments:
------------------------------------------------------------------------
[2011-11-08 09:19:24] areddan at silverarm dot com
about 90 , not 9
------------------------------------------------------------------------
[2011-11-08 09:18:27] areddan at silverarm dot com
Server load about 9 scripts open during the minute of the corruption, each one connected to the db,
lasting approx 1 second each.
its PHP Version 5.1.4
--with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client/lib,/usr/include/oracle/10.2.0.4/client'
OCI8 Support enabled
Revision $Revision: 1.269.2.16 $
Active Persistent Connections 0
Active Connections 0
Oracle Instant Client Version 10.2
oci8.default_prefetch 10 10
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics 0 0
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
No persistant connections are being made and every so often, we get a fail to connect (during busy
times) resulting in the following in php error log.
[03-Nov-2011 17:11:22] PHP Warning: ocilogon() [<a
href='function.ocilogon'>function.ocilogon</a>]: OCIEnvNlsCreate() failed. There
is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with
Oracle Instant Client libraries in /disk1/********/db_class.php on line 17
------------------------------------------------------------------------
[2011-11-07 20:19:01] sixd@php.net
This bug has been fixed in SVN.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
For Windows:
http://windows.php.net/snapshots/
Thank you for the report, and for helping us make PHP better.
Code to print the Oracle error message has been added. It may help but from
previous experience I know it's not feasible to expect Oracle libraries to
identify the real root causes of misconfigured systems. So, if the root cause is
some memory corruption from any subsystem involved, I wouldn't expect the
messages to be reliable.
------------------------------------------------------------------------
[2011-11-07 20:10:34] sixd@php.net
Automatic comment from SVN on behalf of sixd
Revision: http://svn.php.net/viewvc/?view=revision&revision=318888
Log: Improve OCI8 NLS env creation error messages (#58925)
------------------------------------------------------------------------
[2011-11-07 19:21:56] sixd@php.net
It's a pity there is no useful information in this bug about the versions and
environments this is seen on. The root problem could be anywhere (including
webserver memory corruption). However since the failure is coming from the
environment setup, it's worth triple-checking the OCI8 environment is set
correctly. Make sure scripts don't use setenv() to set Oracle environment
variables.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=58925--
Edit this bug report at https://bugs.php.net/bug.php?id=58925&edit=1