miércoles, 8 de abril de 2009

Alfresco y OpenOffice

El gestor documental Alfresco nació con la vocación de ser un referente tecnológico en el mundo de los gestores documentales y ser el estandarte de una nueva generación de productos open source para la empresa actual. Con este objetivo, el equipo de desarrollo de Alfresco centró sus esfuerzos en conseguir una implementación puntera del repositorio y aprovechó un conjunto de tecnologías open source ya existentes, probadas y de gran aceptación para acabar de construir el producto que es hoy en día.

Una gran ventaja de este enfoque es que la responsabilidad de ciertas acciones que realiza Alfresco recae en software bien probado y que no se ha "reinventado la rueda" para hacer algo que ya hacía un producto consolidado en el mercado. La arquitectura de Alfresco es lo suficientemente abierta y flexible como para delegar estas tareas en aplicaciones de terceros como puedan ser ImageMagik u OpenOffice.

La parte negativa de esto es que cuando falla alguna de las tareas ejecutadas por aplicaciones externas, cuesta saber si el error está en Alfresco o en la aplicación. Recientemente, nos hemos encontrado con un caso de este tipo que implicaba OpenOffice.

En una instalación de Alfresco de uno de nuestros clientes, tienen una regla en un espacio que hace la conversión a PDF de determinados tipos de ficheros. Esta regla acostumbraba a ir bien hasta cierto momento en el que dejaba de funcionar y cesaba la conversión a PDF. Había que reiniciar la aplicación para que la regla volviera a funcionar y siempre acababa por fallar.

Después de muchas pruebas, Bea, compañera de IN2, encontró la causa del problema y la solución. La conversión a PDF dejaba de funcionar porque OpenOffice se quedaba sin memoria para ejecutar la transformación. La solución a este problema está en modificar la configuración inicial de OpenOffice para aumentar el máximo de memoria caché permitida.

Este parámetro de ha de definir en el fichero Common.xcu de OpenOffice, que se suele encontrar en /Data/settings/user/registry/data/org/openoffice/Office. Para definir la memoria que se permite usar hay que añadir el siguiente bloque antes del final del fichero:

<oor:component-data xmlns:oor="...>

<node oor:name="Cache">

<node oor:name="GraphicManager">

<prop oor:name="ObjectCacheSize" oor:type="xs:int">

<value>20971520</value>

</prop>

<prop oor:name="TotalCacheSize" oor:type="xs:int">

<value>134217728</value>

</prop>

</node>

</node>

</oor:component-data>


Con estos valores hay suficiente para tratar la mayoría de las transformaciones.

No hay comentarios: