El día de ayer nuestra DBA me pidió ayuda con un servidor IBM Informix, el cual arrojaba un error relacionado a la emulación de terminal al intentar ejecutar la herramienta onmonitor. Este artículo presenta la solución al inconveniente que describe el título.

La variable de entorno TERM normalmente contiene el nombre del tipo de terminal, consola o dispositivo de display utilizado. Esta información es crítica para todos los programas de pantalla, como por ejemplo editores, clientes de correo, o cualquier herramienta que utilice librerías gráficas como curses.

Típicamente los sistemas GNU/Linux y *BSD utilizan el tipo de terminal "xterm-256color", el cual corresponde con el emulador de terminal del servidor X con soporte para 256 colores.

[informix@ifxserver1239 ~]$ echo $TERM
xterm-256color
[informix@ifxserver1239 ~]$ env | grep TERM
TERM=xterm-256color

Al ejecutar onmonitor en un servidor CentOS 6, arroja el siguiente error:

[informix@ifxserver1239 ~]$ onmonitor 
Program stopped at "tb4_main.4gl", line number 78.
FORMS statement error number -1170.
The type of your terminal is unknown to the system.

"El tipo de terminal es desconocido". Esto significa que onmonitor no reconoce el tipo de emuylador de terminal "xterm-256color", y por lo tanto debe ser cambiado por otro.

Para resolver este problema es necesario cambiar al tipo "xterm" y además exportar la variable de entorno TERMCAP, apuntando a la base de datos de capacidades de la terminal de la instancia (la cual se encuentra en la ruta etc/termcap relativa al directorio raíz de la instalación de Informix):

[informix@ifxserver1239 ~]$ export TERM=xterm
[informix@ifxserver1239 ~]$ export TERMCAP=$INFORMIXDIR/etc/termcap

Ahora es posible ejecutar onmonitor sin inconvenientes:

[informix@ifxserver1239 ~]$ onmonitor
Dynamic Server:   Status  Parameters  Dbspaces  Mode  Force-Ckpt  ...
Status menu to view Dynamic Server.

-----------------------------On-Line------- Press CTRL-W for Help. --------

Referencias


Tal vez pueda interesarte


Compartí este artículo