ApplixWare

Configuration

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.

  1. 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.

    1. Al final del fichero axnet.cnf, y busque la línea que comienza con

      #libFor elfodbc /ax/...

    2. Cambie la línea para que se lea

      libFor elfodbc applixroot/applix/axdata/axshlib/lib
      lo cual le dirá a elfodbc que busque en este directorio para la librería de soporte ODBC. Si ha instalado Applix en cualquier otro sitio, cambie la trayectoria en consecuencia.

  2. Cree el fichero.odbc.ini como se describió anteriormente. También puede querer añadir el indicador

    TextAsLongVarchar=0
    a la porción específica de bases de datos de .odbc.ini para que los campos de texto no sean mostrados como **BLOB**.

Probando las conexiones ODBC de ApplixWare

  1. Ejecute Applix Data

  2. Seleccione la base de datos Postgres de su interés.

    1. Seleccione Query->Choose Server.

    2. 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).

    3. Seleccione la base de datos en la caja de diálogo que ha sido lanzada por Browse, entonces haga click en OK.

    4. 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.

  3. 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.

  4. 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.

Problemas Comunes

Los siguientes mensajes pueden aparecer a la hora de intentar una conexión ODBC a través de Applix Data:

No puedo lanzar pasarela en el servidor

elfodbc no puede encontrar libodbc.so. Chequee su fichero axnet.cnf.

Error de pasarela ODBC: IM003::[iODBC][Driver Manager] El driver especificado no pudo cargarse

libodbc.so no puedo encontrar el driver especificado en .odbc.ini. Verifique los ajustes.

Servidor: Tubería rota

El proceso del driver ha terminado debido a algún problem. Puede que no tenga una versión actualizada del paquete ODBC de Postgres .

setuid a 256: fallo al lanzar la pasarela

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.

El sistema de seguridad del programa axnet parece un poco sospechoso. axnet hace cosas en nombre del usuario y en un sistema de múltiples usuarios de verdad debería ejecutarse con seguridad de root (de este modo puede leer/escribir en cada directorio de usuario). Debería dudar al recomendar esto, sin embargo, ya que no tengo idea de qué tipo de hoyos de seguridad provoca esto.

Depurando las conexiones ODBC ApplixWare

Una buena herramienta para la depuración de problemas de conexión usa el la aplicación del sistema Unix strace.

Depurando con strace

  1. Start applixware.

  2. Inicie un comando strace en el proceso axnet. Por ejemplo, si

    ps -aucx | grep ax 
    shows
    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 

  3. 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)
Así que lo que ocurre es que elfodbc de applix está buscando libodbc.so, pero no puede encontrarlo. Por eso es por lo que axnet.cnf necesita cambiarse.

Ejecutando la demo ApplixWare

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

  1. Copie /opt/applix/axdata/eng/Demos/sqldemo.am a un directorio local.

  2. Edite esta copia local de sqldemo.am:

    1. Busque 'null_clause = "NULL"

    2. Cámbielo a null_clause = ""

  3. Inicie Applix Macro Editor.

  4. Abra el fichero sqldemo.am desde el Macro Editor.

  5. Seleccione File->Compile and Save.

  6. Salga del Macro Editor.

  7. Inicie Applix Data.

  8. Seleccione *->Run Macro

  9. 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).

  10. Ahora debería ser capaz de acceder a las tablas demo.

Useful Macros

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

Atención

Deberá tener cuidado con las protecciones de fichero en cualquier fichero que contenga información de nombres de usuario y contraseñas.

Plataformas soportadas

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.