top of page

Takipi en OSGi - Mi caso de prueba

Llevaba ya tiempo trabajando en un PoC de Takipi y llegaba una prueba de fuego, probar Takipi dentro de OSGi...

-- OSGi --

Para el que no conozca OSGi (aunque no lo creais, en vuestras manos de programador habéis pasado alguna vez sobre él, ya que Eclipse está basado en esta especificación...):

OSGi nos permitirá en una máquina virtual Java poder tener distintos classpath. He empezado duro ¡eh!

Básicamente, se intenta que nuestras aplicaciones estén lo más modularizadas posibles, por ejemplo, imaginaos un coche...el volante podría ser "programado" de manera independiente a las puertas, pero cuando el coche quede totalmente ensamblado, sí que existirá una relación entre ambas piezas, definidas en un "todo" que denominamos coche. De esta forma, cada "pieza", si nos lo llevamos a Java, es un Jar o un conjunto de ellos.

Jugando en nuestro modelo habitual, sólo tenemos un classpath, imagínate que pones dos JARs distintos que hacen de "ruedas" del coche en la misma aplicación...tu coche tiene un problema: ¿qué ruedas utiliza?

Si ahora jugamos dentro de la especificación OSGí, los "coches" que estén dentro de OSGi, podrán configurar qué versión de "ruedas", "puertas", "motor", pudiendo existir varias distintas versiones en ese momento dentro del sistema.

-- Fin OSGi --

Después de una introducción al mundo OSGi, ahora toca explicar cuales fueron las pruebas sobre Takipi, siendo nuestro sistema un contenedor con muchas (decenas) piezas lanzadas en tiempo real: nuestras, de otros equipos, librerías externas, propias de OSGi, etc.

Mi curiosidad estaba en ciertas excepciones que aparecían al arrancar la aplicación OSGi que ya por costumbre se decía "aparecen, no rompen nada, no nos importan". Me moría por saber el porqué de esas trazas, ya que bajaban bastantes niveles hacia abajo en el que finalmente te perdías...

¡¡¡Lancemos Takipi de una vez!!!

- Primer paso: arrancó la aplicación, ningún problema lanzando Takipi en un contenedor tan inmenso.

- Segundo paso: aparece la ya tan acostumbrada excepción en las trazas...

- Tercer paso: ¡bingo! Takipi empieza a procesar la excepción desde la Web (como sabéis, este proceso suele ser algo lento, y más que me esperaba yo al estar dentro de OSGi). No quería apagar ni la aplicación porque pensaba que se podía perder toda la carga...estaba ansioso por saber que estaba pasando.

...pues finalmente dimos con el problema: bajo unos jobs que se lanzaban al principio de arrancar la aplicación, para comprobar el estado de la base de datos, se olvidó modificar el nombre de la tabla a la que se quiere testear, por lo que tiraba al nombre "TEST", algo que no existe en esa base de datos.

El contenido de las variables nos ayudó, sobre el propio código, a descifrar que estaba pasando realmente en la excepción que nos aparecía de manera habitual sin mucha información adicional.

Os animo pues, a que os descarguéis Takipi https://www.takipi.com y probéis su servicio y herramientas que son muy útiles para la detección de Excepciones.


¡Bienvenidos a mi blog!

Mi nombre es Paco Benítez.

En este blog hablaré acerca de mi experiencia con Takipi

Sígueme en
  • LinkedIn Social Icon
bottom of page