Foros del Web » Programando para Internet » PHP » CodeIgniter »

Problema de conexion con Bd en sistema en produccion

Estas en el tema de Problema de conexion con Bd en sistema en produccion en el foro de CodeIgniter en Foros del Web. Hola amigos, hace poco empeze con este framework y hasta ahora todo iba bien, sin embargo despues de hacer mi segunda aplicacion la cual dicho ...
  #1 (permalink)  
Antiguo 11/06/2011, 18:20
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Problema de conexion con Bd en sistema en produccion

Hola amigos, hace poco empeze con este framework y hasta ahora todo iba bien, sin embargo despues de hacer mi segunda aplicacion la cual dicho sea de paso no es gran cosa, hace algunas consultas muestra en pantalla datos y tablas en maestro detalle, en fin lo de siempre consultas, y una que otra insercion o actualizacion a la base de datos, pues bien probada y re probada la puse en produccion y zass,

Código PHP:
A Database Error Occurred
Unable to select the specified database 
pues bien segun parece con varios usuarios usandolo el sistema se colapso, la pregunta es el error de donde viene, estoy seguro que la base de datos no es porque sobre ella estaba corriendo una aplicacion en asp y todo bien, los cambios son la instalacion de apache, php y el uso de codeigniter.

el problema es mas o menos serio porque hasta no resolverlo no debo colocar el sitio en produccion...

me pregunto si es algo asi como un numero maximo de conexiones permitidas por codeigniter o php para esa bd en particular ( por cierto es mssql 2000), pues bien espero puedan con su experiencia ayudarme con esto porque me tiene pensando bastante ...


Gracias .....
  #2 (permalink)  
Antiguo 12/06/2011, 04:09
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Problema de conexion con Bd en sistema en produccion

El error es claro, no encuentra la base en cuestión.
Te fijaste si apunta al servidor correcto, l nombre y password coincide, estas cargando el driver correcto?
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 12/06/2011, 05:44
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

La configuracion es la correcta, ya que si son pocas solicitudes funciona bien, sin embargo cuando aumentan no conecta, por eso pregunto sobre algun tipo de limitacion con el numero maximo de conexiones posibles....

Gracias por tu respuesta
  #4 (permalink)  
Antiguo 12/06/2011, 05:54
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Que tal julioctorresg,

Has comprobado en el servidor el limite de conexiones y la cantidad máxima de conexiones concurrentes ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 12/06/2011, 06:04
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

Hola, no estoy seguro de cual servidor te refieres al servidor web o al de base de datos, en todo caso el primero es apache 2.2.15 y el segundo es mssql 2000, como verifico esos valores en estos servidores ....


Gracias por tu respuesta...
  #6 (permalink)  
Antiguo 12/06/2011, 06:23
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Me refiero al servidor de bbdd y la verdad no se como comprobarlo en mssql, en mysql por ejemplo se puede hacer algo así,

Código MySQL:
Ver original
  1. select @@max_connections
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 12/06/2011, 06:37
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

Hola es el mismo comando en mssql me da como resultado 32767 de modo que por ahi no es la cosa, estoy preocupado ....estos errores le dificultan la vida a uno ...

Gracias ....
  #8 (permalink)  
Antiguo 12/06/2011, 06:51
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

voy a colocar algo de codigo a ver si por ahi va la cosa

parametros de configuracion de la base de datos
Código PHP:
$active_group 'default';
$active_record TRUE;

$db['default']['hostname'] = '(local)';
$db['default']['username'] = 'usuario';
$db['default']['password'] = 'clave';
$db['default']['database'] = 'bd';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE
formato de consulta a stored procedure
Código PHP:
function get_Datos($param1,$param2){
        
$sql='EXEC sp_consulta ?,?';
        
$result=$this->db->query($sql,array($param1,$param2));
            return 
$result;
    } 
pensando que era por no liberar los recursos la transforme a esto

Código PHP:
function get_Datos($param1,$param2){
        
$sql='EXEC sp_consulta ?,?';
        
$result=$this->db->query($sql,array($param1,$param2));
                
$this->db->close();
            return 
$result;
    } 
sin embargo esto no soluciono nada ....

funcion de actualizacion( esta si es generica la reuso constantemente segun el numero de datos a actualizar en la tabla)
Código PHP:
function set_Datos_Tabla($data,$param1,$param2){
        
// insercion con transacciones -......................................
        
$this->db->trans_begin();
            
$this->db->where('dato1',$param1);
            
$this->db->where('dato2',$param2);
            
$this->db->update('tabla',$data);
    
        if (
$this->db->trans_status()==TRUE){
            
$this->db->trans_commit();
        }else{
            
$this->db->trans_rollback();
        }
     return 
$this->db->trans_status();    
    } 
luego al no funcionar el sitio pense que era asunto del uso de las transacciones y las elimine quedando solo dentro de la funcion

Código PHP:
$this->db->where('dato1',$param1);
            
$this->db->where('dato2',$param2);
            
$this->db->update('tabla',$data); 
pero esto no fue la solucion, el sitio seguia funcionando bien siempre y cuando el numero de solicitudes fuera pequeño, en caso contrario daba el error antes descrito ...

Gracias por su atencion, sinceramente espero que haya algo mal en el codigo que me ayude a dar la solucion a este problema....
  #9 (permalink)  
Antiguo 12/06/2011, 06:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Cuando se dan este tipo de problemas hay que armarse de paciencia julioctorresg, has probado poner pconnect a false ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #10 (permalink)  
Antiguo 12/06/2011, 07:07
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

hola, si en efecto ya probe esa alternativa de pconnect=false sin embargo cuando lo hacia el sitio se caia por completo ....

Gracias por tus multiples respuestas, y tienes razon hay que armarse de paciencia pero es que el tiempo apremia ....
  #11 (permalink)  
Antiguo 12/06/2011, 07:32
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Me encontré con esto, http://sqlserverpedia.com/blog/uncat...e-connections/, cuando te da el error, se crashea el server y da el mismo error a todos los clientes ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 12/06/2011, 07:55
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

Hola de nuevo, vi el link que me pasaste y te cuento que la primera opcion la de licencias no es ya que antes de este habia un sistema similar en produccion hecho con asp contra la misma base de datos mssql, y todo iba bien, por asuntos de migracion se hizo este nuevo con php y codeigniter y desde alli el problema, lo nuevo seria apache , php y codeigniter, en uno de estos esta el problema, lo del exceso de conexiones tampoco me cuadra ya que ademas de esta pagina simultaneamente esta funcionando un sistema de escritorio contra la base de datos y el funcionaba aceptablemente bien, por eso creo que es algo de php apache o codeigniter, sin embargo pensandolo bien la configuracion de la base de datos que pase no es exactamente la misma en el servidor de produccion

Código PHP:
$active_group 'default';
$active_record TRUE;

$db['default']['hostname'] = 'direccion ip del servidor';
$db['default']['username'] = 'usuario';
$db['default']['password'] = 'clave';
$db['default']['database'] = 'bd';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE
lo que cambia es de esto
$db['default']['hostname'] = '(local)';
a esto
$db['default']['hostname'] = 'direccion ip del servidor';
en el servidor el parametro hostname le estoy pasando su ip y no presisamente 127.0.0.1 sino la de internet desde la cual se conecta todo el mundo, no estoy seguro si esto tendra algo que ver porque el sistema deberia checkear la direccion internamente antes de buscarla por fuera, esto seria lo mas inteligente ....

Gracias por tus respuestas ....
  #13 (permalink)  
Antiguo 12/06/2011, 08:01
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

El servidor de bbdd esta en otra maquina ?, sino debería ser localhost o 127.0.0.1
__________________
http://es.phptherightway.com/
thats us riders :)
  #14 (permalink)  
Antiguo 12/06/2011, 08:10
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

esta en la misma maquina, es un error de cuando paso la aplicacion de equipo
de desarrollo y prueba al servidor de produccion....

sin embargo no creo que eso sea determinante para el rendimiento, ojo debo aclarar que la pagina en produccion tendria un maximo de conexiones simultaneas de 30 usuarios no creo que mas es por eso que no me cuadra el error
  #15 (permalink)  
Antiguo 12/06/2011, 10:36
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Problema de conexion con Bd en sistema en produccion

Probaste viendo los logs de CI.
Activalos en config.php
$config['log_threshold'] = 4;
Luego ve a la carpeta de logs(Si no lo has cambiado es /system/logs)

Ya nos cuentas.
Saludos.

Se me hace que es mas un error de scripts, que de conexion....
__________________
Drupal Argentina
  #16 (permalink)  
Antiguo 12/06/2011, 10:54
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

Gracias por tu respuesta, el truco de habilitar los logs no me lo sabia, lamentablemente tendre que esperar a estar frente al servidor mañana para habilitarlo, en cuanto a error de scrips me encantaria que tuvieras razon, pero no creo que sea asi ya que si pocos clientes simultaneos conectan con el mismo script porque cuando sube la carga no, en lo personal creo que es otra cosa .... a menos que en mis scripts este algo que sobrecarga el servidor, cosa que no creo ya que uso bastante stored_procedures por encima de consultas normales y segun entiendo los procedures son consultas optimizadas, sin embargo estoy viendo mi codigo(parte del cual subi en este post) para que lo revisen porque yo no veo nada malo alli,

gracias estoy en deuda con ustedes por los comentarios, este sera un domingo de ardua investigacion para mi ....
  #17 (permalink)  
Antiguo 12/06/2011, 11:03
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

julioctorresg no hay mucha info y lo poco que hay apunta a problemas en el driver de PHP para mssql, hay gente que le falla de manera intermitente, has descubierto en donde ocurre exactamente el error ?, al hacer el connect ?

Agregado:

En teoría falla al seleccionar la bbdd, que versión de CI estas utilizando ?
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 12/06/2011 a las 11:14
  #18 (permalink)  
Antiguo 12/06/2011, 11:29
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

hola, la version de codeigniter es la 2.0.2 segun tu comentario debo pensar que si es el driver de php nada tiene que ver el de codeigniter, lo digo porque estoy pensando probar con otro framework o hacer la aplicacion a pie(una crueldad ya que me vi las virtudes de los frameworks), en todo caso la verdad estoy de acuerdo contigo, mis sospechosos son en este orden

php la libreria de mssql,
apache
configuracion o algo en codeigniter
y por ultimo mssql porque como ya comente simultaneamente se esta usando una aplicacion de escritorio contra la bd y funciona bien ....

en principio crei que es algo de maximas conexiones concurrentes de php contra mssql, por cierto habra alguna utilidad o sript que sirva para poner a prueba el servidor, asi mismo me gustaria que me recomendaran alguna herramienta grafica que permita monitorear el servidor de bd y apache

si descubro que es problema de mssql juro por dios que voy a armar un plan de migracion a otro manejador, postgres por ejemplo


Gracias....
  #19 (permalink)  
Antiguo 12/06/2011, 12:14
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Si tienes acceso al servidor puedes crear un dsn y cambiar el driver de mssql a odbc, otra opción seria actualizar el fichero ntwdblib.dll a la última versión, previo backup obvio(también depende de que tengas acceso al servidor).

Con respecto a las herramientas para monitoreo, ni idea, pero googleando seguro encontras mas de una.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #20 (permalink)  
Antiguo 12/06/2011, 12:37
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

Justo hace rato en mi cama, mirando el techo, estaba pensando en odbc como una solucion, sobre todo que si funciona tendriamos "aclarado el misterio" el problema ahora es que odbc no me funciona de una con codeigniter, claro seguro hay algun truco por ahi, gracias muchas gracias, por tus comentarios...

Saludos...
  #21 (permalink)  
Antiguo 12/06/2011, 15:47
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema de conexion con Bd en sistema en produccion

Como dejaste la config ?, en hostname iria el dsn, en dbdriver iria odbc y de paso dejar pconnect a false.
__________________
http://es.phptherightway.com/
thats us riders :)
  #22 (permalink)  
Antiguo 12/06/2011, 20:21
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema de conexion con Bd en sistema en produccion

La configuracion es como la mencionas, sin embargo al arrancar el sitio se nota que las consultas no caminan como deberian, por ejemplo la comprobacion:
Código PHP:
$resultado=$this->modelo->consulta();
if (
$resultado->num_rows(){


no funciona el num_rows incluso parece que algunas consultas tampoco...vamos a ver porque implica rehacer muchos metodos que acceden a la bd..

Gracias por tus respuestas...
  #23 (permalink)  
Antiguo 14/06/2011, 20:15
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Respuesta: Problema de conexion con Bd en sistema en produccion

Justo estaba leyendo y me encontre con esto, no tengo idea de Mssql pero quizas sea la causa.
http://oviedo.mx/codeigniter-modific...ver-mssql_4304
__________________
Drupal Argentina

Etiquetas: frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:12.