Crónicas de una migración

written by Mario G. Contreras Arriaga on Tuesday, December 14 2004

Prometí hablar un poco de la migración de la HP 9000 que tenemos en UNIVA así que aquí están mis comentarios.

El Porqué

En UNIVA teníamos un servidor HP 9000 L2000 que se adquirió hace tres años. Bueno, en realidad no se adquirió como tal sino que se arrendó. El contrato de arrendamiento duraba tres años y ya terminó. Ahora tenemos que regresar o comprar ese equipo. Se decidió regresarlo y hacer un nuevo contrato de arrendamiento por un equipo con mayor capacidad tratando que el costo del arrendamiento fuera prácticamente el mismo.

Llegada del equipo

El nuevo equipo llegó prácticamente ya con todo en su lugar. Se instaló en un lugar provisional y se colocó lo que hacía falta. Procedí a iniciar el equipo y hacer pruebas de cosas que he querido implementar tal como single sign-on entre Windows y HP-UX. Como estuve moviéndole a muchas cosas terminé decidiendo reinstalar el equipo para tener una instalación limpia (y así conocer como se instala ya que nunca lo había visto).

Instalación de HP-UX

La instalación fue mucho mejor y más fácil de lo que pensaba. Te deja personalizar tanto uno quiera y configura casi todo. Muy sencillo. Nada que ver con la instalación de SCO OpenServer  que realicé tiempos atrás. Por cierto, la versión de HP-UX es 11i versión 1 (B.11.11) y es a 64 bits.

La instalación fue en modo texto pero puede ser en modo gráfico si el equipo tiene un puerto gráfico. Lamentablemente ni en el equipo anterior ni en el nuevo pude tener uno. Sin embargo estoy usando ReflectionX (una versión ya vieja) para conectarme al equipo en modo gráfico. No hay mucho que realmente haga en este modo que no haga en modo texto pero ahí esta por si se ocupa.

Instalación de los productos de IBM Informix

En UNIVA usamos los productos de IBM Informix para la mayoría de las aplicaciones de misión crítica así que lo siguiente después del sistema operativo son estos productos. Primero menciono lo que instalamos para las primeras pruebas (todos son a 64 bits):

  1. IBM RDS Runtime 7.32.FC1
  2. IBM Informix 4GL Runtime 7.32.FC2
  3. IBM Informix Development 7.32.FC2
  4. IBM Informix Dynamic Server 9.4 9.40.FC4
  5. IBM Informix Client SDK 2.81.FC2
  6. IBM International Language Supplement 3.30.MC2

¿Por qué instalamos RDS Runtime? Porque tenemos una aplicación legacy llamada NOM2000 la cual esta compilada con RDS y por ende requiere su runtime. Quería aprovechar para mover esta aplicación a este equipo y así sacar provecho de este además de que esta aplicación estará por poco tiempo con nosotros porque estamos por cambiar a HRP.

El primer problema que tuvimos fue que estos productos deben de tener cierto orden de instalación porque si no se empalman ciertos archivos y dejan de funcionar las aplicaciones ya instaladas. Por ello tuvimos que recordar cual es el orden correcto. Afortunadamente ya tenía un documento que dice como se deben de instalar y en que orden así como un consultor especializado en IBM Informix me recordó esto mismo.

Luego de complicarme la vida porque los programas compilados en 4GL (un programa "Hola, mundo" que hicimos para probar la compilación) no funcionaban al ejecutarse. Según el programa el runtime de 4GL no estaba instalado. Rayos, ¿qué hacer entonces?

Gracias a que el ejecutivo de cuenta que nos vende el licenciamiento de IBM Informix me lo recomendó, hablé a Soporte Técnico de IBM Informix para ver que pasaba. Para no hacer la historia muy larga, el ILS (International Language Supplement) no funciona correctamente con 4GL. Según esto si funciona pero en la práctica no. ¿Qué es el ILS? es como el MUI de Windows (es decir, cambiar el idioma de la interfase del producto).

De cualquier forma la fecha límite para el traspaso de todos los programas y los datos se acercaba cada vez más. Decidimos reinstalar los productos de IBM Informix y dejar a un lado el ILS. Así lo hicimos y Jorge Rodríguez y yo comenzamos las pruebas de compilación de todas las aplicaciones.

Por cierto, afortunadamente al platicar con el personal de Soporte Técnico de IBM me di cuenta que el runtime de RDS no me iba a servir para la aplicación legacy porque el runtime tiene que tener la misma versión que el compilador de RDS con el que se generó la aplicación. Obviamente no es el caso así que mejor abandonamos esta alternativa de integración.

Fue en la etapa de pruebas de compilación fue cuando nos dimos cuenta que las rutinas que teníamos en lenguaje C no funcionaban como deberían. ¿Ahora? Pues a tratar de convertir ese código de C a 4GL. Lo mínimo se pudo cambiar y se dejó para después las demás funciones (sin haber revisado si eran importantes y necesarias o no). Seguimos con la compilación de programas 4GL y comenzamos a tener mensajes de error a la hora de hacer la vinculación (linking) de los archivos objeto. Para esto ya estabamos trabajando el 20 de noviembre que fue el día marcado como el día del traspaso de todo para aprovechar que era un día festivo y que la universidad no tiene actividades así como tener el domingo para cualquier eventualidad.

Investigué en Google porqué era que me marcaba error de que hacía falta un archivo el cual efectivamente no existía en el equipo. Fue cuando nos dimos cuenta que HP-UX posee un compilador de lenguaje C pero que dicho compilador es muy, muy básico y además no es compatible con el estándar ANSI sino que es una variante del lenguaje C llamado HP C. ¡Por eso no funcionaba 4GL! Porque 4GL ocupa un compilador de ANSI C.

Siguiendo mis pesquisas en Google resultó que vi que HP si tiene un compilador de ANSI C pero lamentablemente me di cuenta que este producto tiene un costo. De hecho la HP 9000 viene con una serie de CDs entre los cuales se encuentran 5 discos etiquetados como discos de aplicaciones los cuales tienen software adicional que puede llegar a se de utilidad. Algunos de estos productos son gratuitos, otros no. Y en el disco 3 viene el compilador que ocupábamos pero requiere de una licencia especial para poderse instalar y utilizar. Por supuesto, la licencia tiene costo.

En fin, tratamos de contactar a gente de HP para conseguir una copia aunque fuera de evaluación y resultó que no conseguimos gran cosa porque prácticamente no encontramos a nadie. Incluso conseguí un codeword pirata  pero no funcionaba para el disco que tenía ya que difería en el número de parte. Rayos.

Como había leído en Internet que también uno puede optar por usar cualquier compilador de ANSI C, decidí buscar en HP.com si existía forma de instalar el GCC ya que este compilador de C/C++ es gratuito. Efectivamente hay un instalador para el GCC para HP-UX y vi como hacer que 4GL usara el GCC. Lo malo es que tampoco funcionó ya que el GCC compila a 32 bits y como los productos de Informix son a 64 bits al momento de querer vincular los archivos de las bibliotecas de IBM Informix con el programa compilado con GCC nos daba un error el programa ya que no se pueden mezclar archivos de 32 bits con las de 64 bits en un solo ejecutable. Terminamos rindiéndonos y postergando el cambio para después de resolver este inconveniente.

Después de varios días de buscar la mejor forma de solucionar este problema pudimos conseguir el compilador (legalmente, claro). Para esto ya había movido muchas cosas y probado tantas que decidí reinstalar de nuevo el equipo.

Segunda instalación

Para la segunda instalación ya sabía de que se trataba y ya tenía todo a la mano. Reinstalé rápido, instalamos el compilador de ANSI C de HP y todo lo que ocupabamos. Sin embargo para esta instalación no instalé el IBM RDS runtime ni el ILS quedando la lista de productos de IBM Informix así:

  1. IBM Informix 4GL Runtime 7.32.FC2
  2. IBM Informix Development 7.32.FC2
  3. IBM Informix Dynamic Server 9.4 9.40.FC4
  4. IBM Informix Client SDK 2.81.FC2

Ya con la instalación nueva y que comprobamos que con el compilador de ANSI C de HP podíamos compilar y utilizar 4GL entonces programamos cambiar el equipo en otro fin de semana. En este fin de semana nos topamos con cambios en la forma en que se debe de usar los programas de ESQL/C que tenemos y tuvimos que hacer ajustes así como nos topamos con detalles del cambio de 32 bits a 64 bits. Por fin viví en carne propia (o más bien vi como lo vivieron Jorge y sus programadores) el cambio de una plataforma a otra. La verdad el cambio de 16 a 32 bits no me tocó de forma que me afectara.

Post-migración (o bienvenidos usuarios al nuevo equipo)

Como no queríamos migrar todas las cuentas de forma transparente y que se traspasaran muchas cuentas de usuario que ni se usan, lo que hicimos fue solicitar por correo electrónico que varios usuarios llenaran sus datos en una página Web. Esto nos ayuda a fijar un precedente y una cultura del uso de las computadoras y de las páginas Web porque increíblemente muchos usuarios que sólo usan correo electrónico se registraban siendo que a ellos nos les afecta el cambio de estos equipos. Así también muchos ni leyeron el mensaje, otros llenaron mal el formato y la mayoría ni se molestó en llenarlo (ya sea porque no comprendieron el mensaje o porque borraron o no leyeron el mensaje que les enviamos).

Además de pendientes que quedaron referente a la migración y de los detalles que salieron porque no nos dimos cuenta a tiempo, teníamos que lidiar con crear nuevas cuentas de usuarios que no sabían ni que onda.

Lo bueno es que ahorita ya todo esto esta normalizado.

Resumen

La instalación de HP-UX es fácil y te permite tener el control que tu quieras tener. La instalación de IBM Informix 4GL es la de siempre mientras que la de IBM IDS esta mejorada. El soporte técnico de los fabricantes son una buena opción y si llegan a ayudar, sin embargo NUNCA se debe creer que podrán resolverte el problema rápido o fácilmente. En ocasiones yo mismo dí con la solución antes de que ellos me devolvieran la llamada (como el soporte a chunks de más de 2 GB en IBM IDS).

Veremos como nos va el siguiente año con los HP Netserver TC4100 que se van o dentro de 3 años con el cambio de la HP 9000 que acabamos de poner en producción.

Por último

Quiero agradecer enormemente a Jorge Rodríguez por su paciencia, confianza y apoyo en esta migración. La verdad es que no esperaba que me dejara trabajar de la forma en que me dejó y me confiara tanto la resolución de los problemas que nos encontramos así como el ajustar el equipo a como yo quería.

Adicionalmente muchas gracias a Armando Cortés, Christian Bonner y Cuco Martínez por apoyarnos con esta migración (y por jugar Xbox en lo que uno trabajaba ), a Mauricio por confiar en nosotros y apoyarnos, a Miguel Anaya por el apoyo moral .

Espero no haber omitido a alguien.

Actualización: Como bien me comenta Mauricio, se me olvidó incluir a Óscar Martínez de Susoc Guadalajara. La verdad es que nos ayudó mucho en la parte de conseguir el compilador de ANSI C. Un agradecimiento y una disculpa por la omisión.

Similar Posts

  1. Halo 2
  2. Linux (y Google) Al Rescate
  3. Buscando al Rey del Web

Comments

  • W.O.L.F. on on 12.14.2004 at 11:17 PM

    W.O.L.F. avatar

    Oye,



    En loas agradecimientos te Falto Oscar Martínez :)

  • Javier Cortez on on 3.15.2005 at 5:22 AM

    Javier Cortez avatar

    me gustaria saber si tienes la memoria tecnica en archivo ya que me interesa tengo algo parecido que hacer en la universidad nacional pero con un proyecto mas pequeño, si fuese posible te doy mi direccion de correo electronico personal es jcotez69sly@hotmail.com, sin mas muchas gracias.

  • Mario G. Contreras Arriaga on on 3.15.2005 at 4:53 PM

    Mario G. Contreras Arriaga avatar

    Javier,



    Gracias por leer mi post.



    No, no tenemos un documento técnico que explique todo lo que hicimos. Ahora, cada migración es diferente en muchos aspectos.



    Si tienes alguna duda o te atoras con algo en su migración no dudes en preguntarme. Con gusto trataré de ayudarte en lo que pueda.


Comments are closed

Options:

Size

Colors