Buen dia, estamos usando la version 2.7 de guarani, informix bajo linux versión10 UC5E, php version 5.3.3, PDO informix versión 1.3.0, el cliente SDK 3.70.FC5DE.
Estamos cambiando de servidor fisico informix, el nombre del servidor anterior era guarani1, el actual es guaranieie01.
El error que obtenemos en el acceso al guarani web, no permanentemente sino aleatoriamente es:
[error] [client 192.168.1.35] PHP Notice: La sentencia SQL: informix:host=192.168.51.82;service=11974;database=pruix_270_1;server=guaranieie01;protocol=olsoctcp;EnableScrollableCursors=1 provoc\xf3 error nro: -1 [Connection attempt failed: SQLSTATE=01S00, SQLDriverConnect: -11005 [Informix][Informix ODBC Driver]Invalid connection string attribute.] in /var/www/g3w/www/library/std_functions.lib.php on line 137
Descartamos todo lo posible y nos queda la duda sobre la longitud del nombre del servidor. Hay alguna restricción con respecto a esto?
Les a pasado algo similar.
Como información extra, cuando me conecto con sql editor y en el login de guarani gestión la conexión se establece pero demora mas de lo acostumbrado, sin ningún mensaje de error.
Hola, acá encontré un foro que habla sobre dicho problema: http://www.scriptcase.net/forum/showthread.php?4770-Informix-PDO-connection-fails, debe ser que falla conectarse al puerto que tienen configurado (es el atributo service de los parámetros de conexión a la DB, acá en el SIU usamos el puerto 1526 y funciona todo bien).
Una consulta, que valor tienen configurado en client_locale en instalacion/config.php?
El archivo hosts del servidor informix no ha sido tocado porque tenemos servidor de DNS propio y la resolución inversa funciona sin problemas.
la entrada ip-cliente-g3w usuario “internet” está agregada en .rhosts en el servidor informix, tanto para IPv4 como para IPv6
monitorizando el tráfico de red se ve claramente el intercambio de paquetes entre el cliente g3w y el servidor informix. De hecho, es posible usar g3w en la mitad de los intentos y se realizan las operaciones normalmente. Pero en la otra mitad de los intentos, no es posible operar.
sólo tenemos configurado client_locale en la configuración de SetNet32 (guaraní gestión en Windows) con el valor en_US.819
El problema por lo que parece viene en la lentitud de la conexion, es lo que comprobaste al conectarte desde el sqleditor de una pc cliente, lo mismo debe suceder cuando se conecta desde el Guarani3w. Quizas algunas conexiones sale por timeout.
En la configuración del cliente informix que esta en la pc donde tenes el sqleditor y en el servidor web, fijate de poner el nro de ip del servidor de informix y no el nombre del servidor.
Si realizas un ping al servidor informix desde la pc cliente, la respuesta tarda tambien?
El client_locale de la base de datos que tenes configurado en instalacion/config.php debe ser ‘en_us.cp1252’, ya que sino trae problemas de conexión a la base (http://foro.comunidad.siu.edu.ar/index.php?topic=8478).
Con este nuevo servidor, hay una ligera lentitud al establecer la conexión con sqleditor, pero luego todo funciona normalmente y a la misma velocidad que con el servidor viejo.
En la includes/parametros.inc.php está la IP del nuevo servidor en “sHosts”.
En cuanto al “ping”, no hay pérdida en la secuencia ni variaciones llamativas en el tiempo de respuesta.
Con respecto al client_locale, está en el valor en_US.819 desde que se hizo la primera instalación a más de un lustro, y con el servidor anterior funcionó y no hubo problemas.
Por otra parte, revisé una vez más y no tengo un instalación/config.php en ningún lado de /var/www/g3w
Revisé esos links y el error allí mencionado es evidente: empleo de variables en vez de los valores adecuados.
Si ven el primer post de este hilo, verán:
[error] [client 192.168.1.35] PHP Notice: La sentencia SQL: informix:host=192.168.51.82;service=11974;database=pruix_270_1;server=guaranieie01;protocol=olsoctcp;EnableScrollableCursors=1 provoc\xf3 error nro: -1 [Connection attempt failed: SQLSTATE=01S00, SQLDriverConnect: -11005 [Informix][Informix ODBC Driver]Invalid connection string attribute.] in /var/www/g3w/www/library/std_functions.lib.php on line 137
Guarani3w hace años que está funcionando sin problemas. Era de esperar que al cambiar de servidor informix, con modificar los valores de IP del servidor y nombre del servidor en /opt/informix/sqlhosts, en /etc/apache/ennvars y en g3w/includes/parametros.inc.php debería haber funcionado “automágicamente”.
Los clientes de gestión se conectan sin problemas al nuevo servidor, salvo una ligera lentitud en el log-in.
una cosa que me suena un poco rara es el puerto. El informix estara escuchando en el puerto 11974 ? (usualmente lo ponemos en el 1526, pero todo es posible)
Podrias verificarlo en el archivo sqlhosts de informix. deberia estar en el home de informix ($INFORMIXDIR/etc/sqlhosts o sqlhosts.std)
Por favor sijate si en ese archivo figura puerto 11974 (si en lugar del puerto aparece el nombre del servicio, buscalo en /etc/services y fijate si el puerto de informix es el 11974)
Te confirmo, el puerto es 11974 configurado así hace muchos años. Y sí, está abierto y “escucha”.
Como dije antes, los usuarios de Guaraní Gestión se conectan y trabajan normalmente.
El problema es la pérdida de conexiones desde Guarani3w… qué, paradójicamente funciona perfectamente con el viejo servidor, qué también escucha en el puerto 11974.
Es decir, entre el viejo servidor y el nuevo servidor, sólo varía la IP y el identificativo INFORMIXSERVER. Valores éstos modificados en donde corresponde:
No usamos /etc/services ya que explicitamos el puerto en sqlhosts.
En teoría, todo debería reducirse a cambiar esos valores y “debería andar”, pero no es así (desde G3W).
Un monitoreo de red no evidencia intentos de conexión a otro puerto que no sea 11974, por lo que descarto de que se trate de un problema de especificación de puerto (monitoreando tanto la máquina g3w como el nuevo servidor informix).
podrias pegar aqui el contenido del sqlhosts. el INFORMIXSERVER es guaranieie01 ?
por lo que entiendo algunas veces te conectas bien (incluso desde g3w) y otras te da error al conectar. Te podrias fijar si queda algun mensaje de error en el log de informix con un onstat -m cuando hay una coneccion fallida ?
Por otra parte, revisé una vez más y no tengo un instalación/config.php en ningún lado de /var/www/g3w
Dentro del proyecto del 3W carpeta instalacion tiene que estar el archivo config.php, allí esta toda la configuración de la aplicación incluida la configuración de la DB, chequea que ‘client_locale’ => ‘en_us.cp1252’ y ‘service’ => 11974.