jueves, 29 de marzo de 2007

Ubuntu Dapper Linux y Progress 8 y 9

Un coctel explosivo se podría denominar a esta convinación jajaja. pero no es así. Resulta que tube que toparme con la migración de un par de servidores que se encontraban en Red Hat 7.3 y de paso porrazo cambiar algunas versiones de progress 8 a 9.

Si bien saben Ubuntu Linux esta basado en Debian, por lo que oficialmente Progress no daba soporte ya que solo "funciona" en Red Hat (por lo menos así me habian dicho).

Bien la cosa no fue tan complicada al final pero si junto con un amigo renegamos (más el que yo) bastante para lograr que todo funcionara bien y así fue.

La primera vez que fui evangelizado con Ubuntu fue con un Hoary, ahi no hubo demasiados problemas ya que fue en una arquitectura x86, por lo que con solo copiar la carpeta dlc al /usr/dlc y salio andando.

Cuando salio Breezy, empezaron los problemas ya que había muchos cambios y Progress 8 se negaba a funcionar porque no andaba la libreria libcwait.so y cuando la hacias andar te reclamaba un error con la GLIB 2.0.

Este problema más tarde también lo tube en Dapper pero ambos problemas se corrijen usando un parche para pasar el progress a la versión Progress 8.3e y borrando o renombrando (todavia no se bien porque) la carpeta /lib/tls.

El problema más grabe con Progress fue cuando quise instalar Progress 9 con una arquitectura x86_64. El sistema operativo fue Ubuntu Dapper 64 bit.

Aquí los problemas fueron varios.

El primer problema es que Progress 9 usa JAVA para todo lo que sea conexiones JDBC y ODBC, por eso si por ejemplo quieren conectar Progress con PHP mediante ODBC, van a tener que hacerlo andar si o si :D.

Para conseguir el Java solo tienen que hacer un:

# sudo apt-get install sun-java5-*

Luego hay que incluir las carpetas de libreria dentro del ld.so.conf ( si no esta el archivo hay que crearlo a pata)

# sudo vi /etc/ld.so.conf
/usr/dlc/lib
/usr/dlc/odbc/lib
Otra cosa a tener en cuenta es que no siempre el PATH al java esta bien apuntado y por ahi según la distro de Linux este en lugares distintos, por lo que no vendria mal chequear el archiv /usr/dlc/bin/sql_env en donde estan todas las variables de entorno que usa Progress. Este archivo tiene un inmenso CASE que segun la plataforma (uname) carga los parámetros correspondientes.

Un caso seria si usan las librerías compatibles con JAVA ia32-sun-java5


El siguiente paso es reconfigurar el linkeo de librerias


# sudo ldconfig

Puede ser que hasta este momento, siga sin funcionar correctamente, bueno es solo fijarse con el ldd que libreria esta faltando haciendo un ldd a todos los archivos que estan en /usr/dlc/odbc/lib y fijarse que no halla ninguna falla. (por ahi conviene usar el ldd -r)


LINKEO CORRECTO DE LIBRERIAS

I386
-rw-r--r-- 1 root root 1292301 2005-11-19 16:25 libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 40 2006-11-07 15:43 libstdc++-libc6.1-1.so.2 -> /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 31 2006-11-09 18:28 libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 18 2006-10-27 16:38 libstdc++.so.6 -> libstdc++.so.6.0.7
-rw-r--r-- 1 root root 849556 2006-04-20 19:19 libstdc++.so.6.0.7


AMD64
-rw-r--r-- 1 root root 1292301 Nov 9 11:54 libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 38 Nov 9 12:09 libstdc++-libc6.1-1.so.2 -> /lib32/libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 31 Nov 9 15:36 libstdc++-libc6.2-2.so.3 -> libstdc++-3-libc6.2-2-2.10.0.so
lrwxrwxrwx 1 root root 18 Nov 9 15:48 libstdc++.so.6 -> libstdc++.so.6.0.7
-rw-r--r-- 1 root root 849556 Nov 9 15:42 libstdc++.so.6.0.7

COMO CONSEGUIR LA libstdc++-3-libc6.2-2-2.10.0.so

# sudo apt-get install libstdc++2.10-glibc2.2


Para finalizar prueben lanzar una base y conectarse con el SQL Explorer (sqlexp)

Si esto funciona quiere decir que todo esta bien instalado

miércoles, 28 de marzo de 2007

Demaciadas emociones

Si por esas casualidades tienen un Progress 8 para windows van a tener un archivo que más de una vez le va a salvar la vida que es el x:\dlc\prohelp\techeng.hlp (taria bueno un man para linux de este archivo)

Gracias a este pequeñin pude aprender casi todo lo que hoy se de Progress y aplicarlo.

Uno de los principales miedos que a uno le inculcan cuando usa Progress (por lo menos a mi me paso) es tener mucho cuidado con los archivos de extension LK .

Veamos: Cada base de datos que uno crea en Progress (estoy pasando por alto un montón de cosas que supongo que ya lo saben sino no estarían en el blog), se compone de varios archivos
los archivos:

MIBASE.bi (Before Image)
MIBASE.db (La base de datos en sí)
MIBASE.lg (Un archivo de log)
MIBASE.lk (Indica que la base de datos esta en uso por algun proceso cuando ese proceso finaliza el archivo desaparece)
MIBASE.lic (si alguien sabe que es seria un buenisimo aporte al blog!)

Bien si por esas casualidades de la vida estamos usando Progress nos vamos a topar con un inconveniente que es que el archivo .db no puede superar los 2GB. En el caso de que suceda hay que hacer un proceso que se denomina conversión a Multi-volumen.

Esto es agarrar el archivo .db y hacerle un split :D jajajaja , no fuera de broma ..
Lo que hace en teoria progress es generarte n archivos .db y ponerte un pedacito de la base en cada uno segun lo definas en un archivo al que daras el nombre de MIBASE.st.

los archivos del tipo MIBASE.st se refieren a la estructura en la que esta conformada la base de datos.

por lo tanto si creamos una base en formato multi-volumen tendremos varios archivos .d?? se agrega este archivo MIBASE.st y probablemente el archivo .bi se pase a llamar .b1 o similar.

Bueno espero que si algun Progressista esta leyendo el blog pueda contribuir o corregirme si me equivoco. De ultima de eso se trata ;)

Mi Primera Vez

Bueno esta en realidad no es mi primera vez en un blog, pero si la primera vez que se me ocurre hacer algo por la vida (de los demás) ..

Resulta que programe/o desde hace mucho tiempo en Progress y se me ocurrio volcar algunas de las cosas que se en algún lado como para que alguien que se encuentre en las mismas que yo tenga un lugar más para intercambiar info.

No hay demasiadas cosas sobre Progress dando vueltas, y no me extraña ya que en sí es relativamente fácil hacer cosas ya que es un lenguaje 4GL y citando a un amigo es "como hablarle a la PC" ...

En fin uno puede usarlo así "a la bartola" o puede aprender a reutilizar código y tratar de "estandarizar" las cosas dependiendo de como le guste a cada uno programar.

Ultimos comentarios