ID: 32361
User updated by: diego dot veiga at embraer dot com dot br
Reported By: diego dot veiga at embraer dot com dot br
-Status: Feedback
+Status: Open
Bug Type: Oracle related
Operating System: fedora 3
PHP Version: 5.0.2
New Comment:
I upgraded the php to 5.0.3 and reproduce the same error, it seems the
oci_connect is working like the oci_pconnect.
Does anybody has an idea?
Previous Comments:
------------------------------------------------------------------------
[2005-03-18 19:12:59] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-03-18 13:22:14] diego dot veiga at embraer dot com dot br
Description:
------------
machine 1:
Linux redhat 7.2 2.4.18 #4 Fri Apr 12 08:10:27 BRT 2002 i686 unknown
configure with php4.3.4 and apache 1.3.29
./configure --with-dbtcp=/usr/src/dbtcp-0.1.17
--with-oci8=/ora8i/u01/app/oracle/product/8.1.6 --enable-track-vars
--enable-sigchild --enable-trans-sid
--with-apache=/usr/src/apache_1.3.29 --with-unixODBC --enable-xslt
--with-xslt-sa
blot=/usr/local --with-expat-dir=/usr/local --with-gd
--enable-gd-native-ttf --with-jpeg-dir=/usr --with-zlib-dir=/usr
--with-zlib=/usr/ --with-freetype-dir=/usr/local/include/freetype2
--with-png-dir=/usr --with-openssl=/usr/local/ssl
--with-config-file-path=/etc/php --sysconfdir=/etc/php
--with-pdflib=/usr/local --without-mysql --with-tiff-dir=/usr -
-with-java=/usr/java/j2sdk1.4.0_03 --enable-shared --with-layout=GNU
machine 2:
Linux fedora3 2.6.9-i386-1 #3 SMP Thu Feb 17 16:06:06 BRST 2005 i686
i686 i386 GNU/Linux
configure with php5.0.2 and apache 1.3.33
./configure --with-dbtcp=/usr/src/dbtcp-0.1.18a
--with-oci8=/ora8i/u01/app/oracle/product/8.1.6 --enable-sigchild
--enable-trans-sid --enable-track-vars
--with-apxs=/usr/local/apache/sbin/apxs --with-unixODBC --enable-xsl
--with-exp
at-dir=/usr/local/ --with-gd --enable-gd-native-ttf
--with-jpeg-dir=/usr --with-zlib-dir=/usr --with-zlib=/usr --with-
freetype-dir=/usr/ --with-png-dir=/usr --with-openssl=/usr
--with-config-file-path=/etc/php --sysconfdir=/etc/php --wi
th-pdflib=/usr/local --without-mysql --with-tiff-dir=/usr
--with-java=/usr/java/j2sdk1.4.0_03 --enable-shared --with-l
ayout=GNU
version of oracle: client 8.1.6, server 8.1.7
both machine with the php and include...
Reproduce code:
---------------
include:
function SetDatabase( $database )
{
case 'ORA_PROD' :
global $ORACLEVARS;
$ORACLEVARS['database'] = 'ORA_P';
$ORACLEVARS['username'] = 'xxxxx';
$ORACLEVARS['password'] = 'yyyyy';
break;
}
function sql_connect_simple(){
global $ORACLEVARS;
if ( $ORACLEVARS['log'] )
__log('CON:' . $ORACLEVARS['database']);
//$ORACLEVARS['conn'] = OCILogon( $ORACLEVARS['username'],
$ORACLEVARS['password'], $ORACLEVARS['database'] );
$ORACLEVARS['conn'] = oci_connect( $ORACLEVARS['username'],
$ORACLEVARS['password'], $ORACLEVARS['database'] );
}
function sql_query( $sql, $update = 0 ) {
global $ORACLEVARS;
if ( $ORACLEVARS['conn'] == 0 ) {
__err('*** QUERY: NOT CONNECTED');
return 0;
}
if ( $ORACLEVARS['log'] )
__log('QUE:' . $sql);
$handle = oci_parse( $ORACLEVARS['conn'], $sql );
if ( ! $handle ) {
__err('*** QUERY: PARSE ERROR');
return 0;
}
if ( ! oci_execute( $handle, $ORACLEVARS['mode'] ) ) {
__err('*** QUERY: EXECUTE ERROR');
oci_free_statement($handle);
return 0;
}
if ( $update ) {
oci_free_statement($handle);
$handle = 0;
}
$ORACLEVARS['dataset'][$handle] = 0;
return $handle;
}
php:
$SQL = '';
$SQL .= ' SELECT ';
$SQL .= ' NUM_BOL, ( ';
$SQL .= ' SGL_COLC_BOL ||';
$SQL .= ' TRIM(COD_PROJ_AENV) || ';
$SQL .= ' \'-\' || ';
$SQL .= ' TRIM(COD_CAP_A100) || \'-\' ||
';
$SQL .= ' IND_ALRT_BOL || ';
$SQL .= ' TRIM(TO_CHAR(NUM_SEQ_BOL, \'000\')) || \'/\' ||
';
$SQL .= ' TRIM(TO_CHAR(NUM_REV_BOL, \'00\')) ';
$SQL .= ' ) AS NUM_BOL_FORMTD, ';
$SQL .= ' NUM_REV_BOL, ';
$SQL .= ' DSC_TITL_BOL ';
$SQL .= ' FROM ';
$SQL .= ' CBS.CBS_BOLETIM';
$SQL .= ' WHERE 1=1';
$SQL .= ' AND ROWNUM <= ' . $P_QT;
$SQL .= ' AND COD_PROJ_AENV = \'' . $P_STR_COD_PROJ_AENV
. '\'';
$SQL .= ' AND SGL_COLC_BOL in (\'SB\', \'BS\') ';
$SQL .= ' ORDER BY ';
$SQL .= ' NUM_BOL ';
SetDatabase('ORA_P');
sql_connect_simple();
$RESULT = sql_query($SQL);
Expected result:
----------------
In php4.3.4
monitoring the status of connection with netstat the webserver connect
and disconnect to the server ORA_P:
while true; do netstat | grep ORA_P; echo; sleep 1; done
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521 TIME_WAIT
tcp 0 0 webserver:32896 ORA_P:1521 TIME_WAIT
tcp 0 0 webserver:32896 ORA_P:1521 TIME_WAIT
In 5.0.2
monitoring the status of connection with netstat the connection becomes
persist after the page is process, it's only disconnect with the Oracle
idle/time.
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
tcp 0 0 webserver:32896 ORA_P:1521
ESTABLISHED
I need that the connection in php 5.0.2 become non persist connection
with oracle.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=32361&edit=1