ApplixWare debe ser configurado correctamente para que pueda realizarse con él el acceso a los drivers ODBC de Postgres.
Habilitando el acceso a bases de datos con ApplixWare
Estas instrucciones son para la versión 4.4.1 de ApplixWare en Linux. Véase el libro on-line Administración de Sistemas Linux para información más detallada.
Debe modificar el fichero axnet.cnf para que elfodbc pueda encontrar la biblioteca compartida libodbc.so (el administrador de dispositivos ODBC). Esta biblioteca viene incluida con la distribución de Applixware, pero el fichero axnet.cnf necesita modificarse para que apunte a la ubicación correcta.
Como root, edite el fichero applixroot/applix/axdata/axnet.cnf.
Al final del fichero axnet.cnf, y busque la línea que comienza con
#libFor elfodbc /ax/... |
Cambie la línea para que se lea
libFor elfodbc applixroot/applix/axdata/axshlib/lib |
Cree el fichero.odbc.ini como se describió anteriormente. También puede querer añadir el indicador
TextAsLongVarchar=0 |
Probando las conexiones ODBC de ApplixWare
Ejecute Applix Data
Seleccione la base de datos Postgres de su interés.
Seleccione Query->Choose Server.
Seleccione ODBC, y haga click en Browse. La base de datos que configuró en el fichero .odbc.ini debería mostrarse. Asegúrese de que Host: field está vacío (si no es así, axnet intentará contactar con axnet en otra máquina para buscar la base de datos).
Seleccione la base de datos en la caja de diálogo que ha sido lanzada por Browse, entonces haga click en OK.
Introduzca el nombre de usuario y contraseña en la caja de diálogo de identificación, y haba click en OK.
Debería ver "Starting elfodbc server" en la esquina inferior izquierda de la ventana de datos. Si aparece una ventana de error, vea la sección de depuración de abajo.
El mensaje 'Ready' aparecerá en la esquina inferior inzquierda de la ventana de datos. Esto indica que a partir de ahora se pueden realizar consultas.
Seleccione una tabla desde Query->Choose tables, y entonces seleccione Query->Query para acceder a la base de datos. Las primeras 50 filas de la tabla más o menos deberían aparecer.
Los siguientes mensajes pueden aparecer a la hora de intentar una conexión ODBC a través de Applix Data:
elfodbc no puede encontrar libodbc.so. Chequee su fichero axnet.cnf.
libodbc.so no puedo encontrar el driver especificado en .odbc.ini. Verifique los ajustes.
El proceso del driver ha terminado debido a algún problem. Puede que no tenga una versión actualizada del paquete ODBC de Postgres .
La versión de septiembre de ApplixWare v4.4.1 (la primera versión con soporte oficial de ODBC bajo Linux) presenta problemas con nombres de usuario que exceden los ocho (8) caracteres de longitud. Descripción del problema contribuida por Steve Campbell.
Author | |
---|---|
Contribuido por Steve Campbell on 1998-10-20. |
Una buena herramienta para la depuración de problemas de conexión usa el la aplicación del sistema Unix strace.
Depurando con strace
Start applixware.
Inicie un comando strace en el proceso axnet. Por ejemplo, si
ps -aucx | grep ax |
cary 10432 0.0 2.6 1740 392 ? S Oct 9 0:00 axnet cary 27883 0.9 31.0 12692 4596 ? S 10:24 0:04 axmain |
Entonces ejecute
strace -f -s 1024 -p 10432 |
Compruebe la salida de strace.
Nota de Cary | |
---|---|
Muchos de los mensajes de error de ApplixWare van hacia stderr, pero no estoy seguro de a dónde está dirigido stderr, así que strace es la manera de encontrarlo. |
Por ejemplo, despues de obtener el mensaje "Cannot launch gateway on server", ejecuto strace en axnet y obtengo
[pid 27947] open("/usr/lib/libodbc.so", O_RDONLY) = -1 ENOENT (No existe el fichero o directorio) [pid 27947] open("/lib/libodbc.so", O_RDONLY) = -1 ENOENT (No existe el fichero o directorio) [pid 27947] write(2, "/usr2/applix/axdata/elfodbc: no puedo cargar la biblioteca 'libodbc.so'\n", 61) = -1 EIO (I/O error) |
Para poder ir a través de ApplixWare Data Tutorial, necesita crear las tablas de ejemplo a las que se refiere el Tutorial. La macro ELF Macro usada para crear las tablas intenta crear una condición NULL de algunas de las columnas de la base de datos y Postgres no permite esta opción por lo general.
Para bordear este problema, puede hacer lo siguiente:
Modificando la Demo ApplixWare
Copie /opt/applix/axdata/eng/Demos/sqldemo.am a un directorio local.
Edite esta copia local de sqldemo.am:
Busque 'null_clause = "NULL"
Cámbielo a null_clause = ""
Inicie Applix Macro Editor.
Abra el fichero sqldemo.am desde el Macro Editor.
Seleccione File->Compile and Save.
Salga del Macro Editor.
Inicie Applix Data.
Seleccione *->Run Macro
Introduzca el valor "sqldemo", entonces haga click en OK.
Debería ver el progreso en la línea de estado en la ventana de datos (en la esquina inferior izquierda).
Ahora debería ser capaz de acceder a las tablas demo.
Puede añadir información sobre el usuario y contraseña para la base de datos en el fichero de macro de inicio estándar de Applix. Este es un fichero ~/axhome/macros/login.am de ejemplo:
macro login set_set_system_var@("sql_username@","tgl") set_system_var@("sql_passwd@","no$way") endmacro |
Deberá tener cuidado con las protecciones de fichero en cualquier fichero que contenga información de nombres de usuario y contraseñas. |
psqlODBC ha sido compilado y probado en Linux. Han sido reportados éxitos con FreeBSD y Solaris. No se conocen restricciones para otras plataformas que soporten Postgres.