ID: 15390
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Closed
+Status: Open
Bug Type: OCI8 related
-Operating System: RedHat 6.2
+Operating System: RedHat 7.3
-PHP Version: 4.0.6
+PHP Version: 4.2.3
New Comment:
Just to note, the same behavior occurs with PHP 4.2.3 on RH 7.3. The
hack seems to handle this without much visibility to the end-user, but
is there a real fix planned for this?
Best,
Hans
Previous Comments:
------------------------------------------------------------------------
[2002-04-13 09:22:08] [EMAIL PROTECTED]
hack:
change your tnsnames.ora to include a failover to the same db.
PROD=(
DESCRIPTION=(
ADDRESS=(PROTOCOL=TCP)(Host=127.0.0.1)(Port=1521))
(CONNECT_DATA=(SID=PROD)(failover_mode=(backup=PROD)(type=session)(method=basic)(retry=100)(delay=60)))
)
this will make the Net8 client to reconnect automagically
------------------------------------------------------------------------
[2002-04-09 11:30:29] [EMAIL PROTECTED]
Same problem exists under:
RedHat 7.2
PHP 4.1.2 (--with-oci8)
Oracle8i 8.1.5
------------------------------------------------------------------------
[2002-02-05 12:59:47] [EMAIL PROTECTED]
I have PHP 4.0.6 compiled as an Apache 1.3.20 module with OCI8 and
MySQL on RedHat 6.2. I use persistent connections with OCI8 to avoid
the costly connection construction for Oracle for each request.
However, I notice that these persistent connections get "poisoned"
under certain
circumstances. What I mean by this is this:
Since each persistent connection stays with it's corresponding Apache
process, if the database happens to be down when a request comes in,
the persistent connection that is used throws an ORA-03113. However,
even when the database comes back, the persistent connection still
thinks the database is down somehow, and will continue to throw the
ORA-03113 error. As a result, if a request happens to hit the poisoned
Apache process, it appears the database is down. If a request hits
another Apache process, all is OK.
So far, the only way I've seen to deal this is to restart Apache, and
have the persistent connections build up again. Obviously, this is not
a good thing, and if database connectivity is lost in any form, the
persistent connections get poisoned again, and the cycle begins.
Now as this might not be a bug per se, I would think that persistent
connections should at least check that they aren't corrupted in some
way; or 'freshen' themselves. Although I haven't tested it fully, I
have never seen this behavior with persistent MySQL connections.
Please contact me for any further details or clarification if needed.
Thank you,
Hans
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=15390&edit=1