ID: 3910 Updated by: [EMAIL PROTECTED] Reported By: guage at usa dot net -Status: Open +Status: Closed Bug Type: Oracle related Operating System: Linux - Redhat 6.1 -PHP Version: php 4.0.01pl2 +PHP Version: 4.0.01pl2 New Comment:
wrong version -> bug got lost, but is propably fixed in later versions of PHP anyway. Previous Comments: ------------------------------------------------------------------------ [2000-08-21 12:26:06] guage at usa dot net OciLogoff seems to do something now but does not clear a connection that has been killed on the oracle server (at least when ociplogon is used). The only way to recover from this situation is to restart the httpd server. I have tried to create a new connection via ociplogon but it continues to try to use the old connection which was killed. OCIPlogon returns a success but ociexecute returns an error. connecting to oracle Connected successfully ^- does a ociplogon Warning: OCIStmtExecute: ORA-00028: your session has been killed in orabugtest.php on line 12 ^--- this is from a ociexecute killing session !!!!! <--- this does a ocilogoff Warning: failed to rollback outstanding transactions!: ORA-01012: not logged on in orabugtest.php on line 16 Warning: OCIFetchStatement: OCI_INVALID_HANDLE in orabugtest.php on line 18 ------------------------------------------------------------------------ [2000-08-21 12:19:48] guage at usa dot net Bug still exists. I have verified for php 4.0.1pl2 Thanks... ------------------------------------------------------------------------ [2000-08-20 01:54:04] [EMAIL PROTECTED] No feedback from user. --Jani ------------------------------------------------------------------------ [2000-08-01 23:30:25] [EMAIL PROTECTED] Please verify that itīs still happening using the latest version of PHP (release 4.0.1pl2 or CVS). ------------------------------------------------------------------------ [2000-03-23 13:59:49] guage at usa dot net In reading the source code in Beta 4.0 it states that OCILogoff doesn't do anything anymore. This is a problem because when a session is killed on the database side the connection remains for ever on the server and you receive ORA-0028 errors when ever you hit an httpd server which has that particular session. The only solution is to restart the httpd server. To reproduce: 1. create a script which does an ociplogon and then executes a statement. 2. hit reload several times to increase the chance you will hit an httpd after you kill a session which has already established a connection to the database. 3. on the server type: select username,sid,serial# from v$session where username = '<username you connected with in ociplogon>'; 4. do a: alter system kill session '<sid>,<serial#>'; for each of the sessions. 5. hit reload on your browser. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=3910&edit=1