error -23101 configurando Guarani 3W2 en Ubuntu Server 14 [SOLUCIONADO]

¿Alquién recibió el error -23101 y sabe como resolverlo?

Ese error entiendo significa que no se puede conectar porque no coinciden los locales… el tema es que si ejecuto:

./guarani test_conexion

Se conecta lo más bien, incluso para re-verificar escribí mi propio script de testing, les dejo una transcripción de miprueba.php:

<?php
   $db = new("informix:host=10.10.200.100; service=1526; database=guarani; server=ol_guarani; protocol=onsoctcp; EnableScrollableCursors=1", "dba", "SuperPW:D");
   $smtp = $db->query("select a.legajo from sga_alumnos a, sga_personas p where a.nro_inscripcion=p.nro_inscripcion and p.nro_documento='12345678' and a.carrera='123'");
   $res = $smtp->fetch(PDO::FETCH_BOTH);
   $legajo = $res[0];
   echo "El legajo es: $legajo\n";
?>

y si lo ejecuto (php miprueba.php) se conecta, hace la consulta y me muestra correctamente los resultados.

Al mismo script le agregué en la cadena de conexión “; client-locale=en_us.8859-1; db-locale=en_us.CP1252” y sigue conectándose lo más bien. O bien porque aceptó los locales o bien porque los ignoró pero el script de prueba sigue funcionando.

Peeeero, desde el navegador si entro al sitio del g3w2 queda todo en blanco y el log de errores de apache dice que ocurrió un error -23101 y que verifique los parámetros de mi conexión.
El Ubuntu tiene las variables de sesión DB_LOCALE, CLIENT_LOCALE, LANG, LANGUAGE configuradas… ¿me faltó alguna otra?

PD: en config.php uso los mismos parámetros que en el script de testing que escribi… y los valores que me muestra en el error en principio están bien.

Hola Diego, te referencio al siguiente posteo: http://foro.comunidad.siu.edu.ar/index.php?topic=7210 donde se trata el mismo error.
Contiene enlaces a más posteos donde se explica bien todas las variables de entorno de apache a configurar.
Si persiste el problema avisanos que lo seguimos viendo

OK, gracias, leyendo el otro hilo… no cierro este tema hasta que no esté resuelto.

Bueno, leyendo sobre el error me pasa lo mismo que lo descrito aquí: http://foro.comunidad.siu.edu.ar/index.php?topic=6943

El tema es que en la configuración de mi apache puse:

SetEnv DBLANG en_us.8859-1
SetEnv DB_LOCALE en_us.8859-1
SetEnv CLIENT_LOCALE en_us.8859-1

pero luego de ejecutar /etc/init.d/apache2 restart sigue todo igual.

Los locale del ubuntu server están todos en en_us.8859-1…

¿Ustedes que entienden por “Faltaba setear las variables de entorno de Apache para INFORMIX”? me está faltando algo pero no me doy cuenta que…

Éstos parámetros los tenés?

En /etc/apache2/envavars :

INFORMIXDIR=/opt/informix
PATH=$PATH:$INFORMIXDIR/bin
INFORMIXSERVER=ol_xxxx
INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts

en /etc/apache2/envvars tengo:

export DB_LOCALE=en_us.8859-1
export CLIENT_LOCALE=en_us.8859-1
export DBLANG=en_us.CP1252
export SERVER_LOCALE=en_us.CP1252
export INFORMIXDIR=/root
export INFORMIXSERVER=ol_guarani
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
export PATH=$PATH:$INFORMIXDIR/bin

en /root/etc/sqlhosts tengo:

ol_guarani   onsoctcp   10.10.100.10   1526

pero el error -23101 continua…

El error -23101 hace referencia a las siguientes variables:
CLIENT_LOCALE (Es el locale del ubuntu)
DB_LOCALE (es el locale de la base de datos)
INFORMIXDIR

Veo en tu configuración que INFORMIXDIR tiene definido el path /root
¿Es correcto? ¿Alli esta instalado el informix?

si si ahí se instaló el feo del sdk y no me molesté en cambiarlo.

Supongo que las variables de entorno de la consola están bien, si no cuando ejecuto desde la consola los scripts php no deberían poder conectarse…
El problema intuyo es en las variables de entorno que usa apache, pero (creo) que están igual a las de la consola, de ahí que ando un poco perdido.

Hola Diego:

En el archivo /etc/apache2/envvars Reemplaza


export DB_LOCALE=en.us.8859-1

por


export DB_LOCALE=en_us.8859-1

y reinicia el Servidor de apache

También deberías descomentar y modificar esta linea del config.php para tu bloque de acceso


//        'client-locale' => 'en_us.8859-1',

por


        'client_locale' => 'en_us.cp1252',

Saludos!

jajaja con el DB_LOCALE que Sergio sugirió salió andando… lo triste es que juraría que ese export ya lo había escrito :smiley:

Muchas Gracias, pueden cerrar el hilo.

PD: Quizás le sea útil a alguien así que dejaré en dropbox el disco de la VM con esta última corrección.

A mi no me funciona, me da el error -23101, sigo estos pasos y no hay caso.