Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2008, 11:59
pipekingsaids
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 9 meses
Puntos: 1
Ayuda para cerrar las conexiones PHP-Oracle

Buenas Tardes,

Llevo tiempo intentado cerrar las conexiones que se hacen a mi base de datos Oracle desde una aplicacion hecha en PHP4, lo que me genera que la Base de datos se sature de conexiones INACTIVAS, lo que genera que se realice un proceso manual para cerrarlas.

he estado modificando el codigo para eliminar las conexiones permanentes, pues crei que esa era la solucion, pero aun sigo con conexiones INACTIVAS aun despues de haber hecho el cierre del Cursor (ORA_CLOSE) y de la conexion (ORA_LOGOFF).


No puedo migrar la aplicacion a PHP5, por que esta en Produccion, y debo antes solucionar el problema de las sesiones, con el fin de que me quede tiempo para hacerla migracion.

rutina conexion
Código PHP:
function ConectarBD(&$Link$user="")
    {
//        echo $ConsultaDB .'<br>';
        
putenv("NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1"); 

        
// parametros de Conexion
        
if ($user<>"")
        {
            
$UsuarioDB=($UsuarioGeneridoDB]);
            
$ContrasenaDB= ($ClaveUser);
            
$DB='Nombre BD';
        }
        else
        {
            
$UsuarioDB='xxxxx';
            
$ContrasenaDB='xxxxxxxx';
            
$DB='Nombre BD';
        }

        
$Link ora_logon($UsuarioDB.'@'.$DB$ContrasenaDB) or die ('error'.ora_error());
    } 

Rutina de Insercion en DB

Código PHP:




    
function EscribirDB($Link$Query)
    {
        
putenv("NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1"); 

//        Envio de Query
        
$Cursor ora_open($Link) or die ('Could not connect.'.ora_error());
        
$v_parse ora_parse($Cursor$Query);// or die ('select '.ora_error());
        
$v_execute ora_exec($Cursor);// or die ('Execution not made.'.ora_error());

//    SE VERIFICAN SO HUBO ERRORES EN LA CONEXION

        
if (!$v_parse or !$v_execute)
        {
            if (!
$v_parse)
            {
                
$mensaje='select.';
            }
            elseif (!
$v_execute)
            {
                
$mensaje='Execution not made';
            }

            
$e ora_error();
            echo 
htmlentities($e['message']);
            
ora_close($Cursor);
            return (
FALSE);
            die();
        }

        
ora_close($Cursor);
        
ora_logoff($Link);
        return (
TRUE);
    }