Operación de un entorno de WebSphere Process Server - Parte 2: Opciones para conservar el tamaño óptimo de una base de datos Business Process Choreographer

La parte 2 de esta serie de artículos le muestra las opciones disponibles para limpiar las instancias completadas de la base de datos Business Process Choreographer y discute los patrones de diseño de aplicación necesarios para lograr que la BPEDB tenga el tamaño óptimo.

Susan Herrmann, Software Engineer, IBM

Susan Herrmann is a Software Engineer at the IBM Research and Development Lab in Boblingen, Germany. She has 10 years of experience in the areas of Business Integration and Business Process Management. She joined the WebSphere Business Process Management Development team in 2004. Since 2006, she is a member of the Business Process Management SWAT team, advising customers on best practices and providing vital support in numerous critical customer situations worldwide. Susan has an Engineering degree in Information Technology and joined IBM in 2001.



Ruth Schilling, Software Engineer, IBM

Ruth Schilling has been a member of the Worldwide WebSphere Technology Practice team at the IBM Research and Development Lab in Boblingen, Germany for two years. She joined the WebSphere Business Process Management Development team of WebSphere Process Server shortly after she started working at IBM Germany in 2000. As a member of the Business Process Management SWAT team, she acquired extensive experience managing many critical situations in customer production environments. In her current technology practice job, she focuses on supporting customers in the daily operation of these environments. Ruth has diplomas in Computer Science and in Chemistry from the University of Karlsruhe.



29-07-2011

Introducción

WebSphere Process Server confía en diversas bases de datos de bacl-end o en diversas tablas de base de datos. Algunas de éstas almacenan datos de negocios relevantes como, por ejemplo, la información de mensaje dentro de la tabla de mediación de registro del Enterprise Service Bus (ESB) o datos de evento de base común en el almacenamiento de datos de Common Event Infrastructure (CEI). Los datos almacenados en las bases de datos de bacl-end de WebSphere Process Server que se usan con mayor asiduidad son la información relacionada con los procesos de negocios y las tareas humanas. Este artículo se concentrará en estos objetos con el objetivo de mantener un entorno estable de WebSphere Process Server.

Las tareas humanas y los procesos de negocios que se ejecutan durante un período de tiempo prolongado persisten en la base de datos Business Process Choreographer (BPC). Esta base de datos tiene la función de conservar todos los datos en desarrollo, como las tareas humanas incompletas y los procesos de negocios incompletos que se ejecutan durante un período de tiempo prolongado. Estas instancias se están ejecutando en la actualidad, al igual que otras instancias que requieren resolución manual, como aquéllas que incluyen actividades en estado de detenidas.

Por otra parte, conservar las instancias completadas en la base de datos Business Process Choreographer (BPEDB) puede ocasionar condiciones operacionales adversas, como graves limitaciones del espacio de disco y una seria disminución del rendimiento. Por lo tanto, las instancias completadas no se deberían conservar en la BPEDB. Además, los datos correspondientes a esta instancia le muestran el estado actual de una instancia. Cualquier herramienta (como, por ejemplo, el BPC Explorer) que tenga acceso a estos datos sólo visualizará una foto de los datos de esta instancia en un momento determinado. Por lo tanto, no se recomienda el uso de la BPEDB para propósitos de auditoría o información.


Patrones de diseño de aplicación que soportan una base de datos BPC de tamaño óptimo

Existen dos opciones para conservar el tamaño óptimo de la BPEDB:

  • Garantizar que todos los elementos completados se eliminen lo antes y lo más rápido posible.
  • Garantizar que el tamaño de los elementos que se encuentran en la base de datos sea lo menor posible.

La segunda opción depende del diseño de la aplicación. Las decisiones de diseño, como el uso de microflujos en vez de procesos que se ejecutan durante un período de tiempo prolongado, el tamaño de los objetos de negocios que usa el proceso de negocios o la cantidad de personas asignadas a una tarea humana afectan el espacio que las instancias de proceso posteriores requieren en la BPEDB. La mayoría de estas decisiones de diseño forman parte de las mejores prácticas generales de WebSphere Process Server y, por lo tanto, no las mencionaremos en este artículo.

Un patrón de diseño que se suele aplicar e impacta sobre el tamaño de la base de datos consiste en introducir una aplicación de “latido” (señal de sincronización periódica para control de funcionamiento) o de “planificación”. Por ejemplo, una aplicación puede llegar a ejecutarse de manera regular para verificar los servicios de bacl-end y determinar la disponibilidad y el tiempo de respuesta.

Existen diversas formas de implementar una aplicación de “latido” o de “planificación”. Una de estas formas consiste en crear un proceso de negocios que se ejecute durante un período de tiempo prolongado que llame a esos servicios de bacl-end en un margen de tiempo definido. Dicho proceso suele heredar una actividad "while"(mientras) o "repeat" (repetición) hasta que la actividad se combina con una actividad "wait" (espera), lo que representa el margen de tiempo que hay que esperar hasta que se ejecuten las próximas llamadas de servicios de bacl-end. Cuando se busca conservar el tamaño óptimo de la BPEDB, no se recomienda el patrón de uso de este proceso de negocios. Existen datos almacenados en la EPEDB correspondientes a cada iteración de un bucle en un proceso de negocios que se ejecuta durante un período de tiempo prolongado. Por ejemplo, datos variables a usar por compensación y recuperación o datos relacionados con estas actividades.

La mayoría de estos datos se borran en la próxima iteración del bucle. Sin embargo, no todo se limpia, ya que algunos datos pueden seguir siendo necesarios para las tareas de procesamiento futuras. Si se ejecuta dicho proceso de "latido" o de "planificación" durante varios meses, los datos relacionados con él en la base de datos crecen cada vez más, lo que puede llegar a ocasionar problemas debido a su tamaño. Si es necesario borrar una instancia del proceso de "latido" o de "planificación" que se ejecuta durante un período de tiempo prolongado, esto puede llegar a fallar si se usa la API de BPC, ya que todo se realiza en una sola transacción. Para mitigar los problemas ocasionados por las grandes transacciones en este caso, realice una de las acciones que se describen a continuación:

  • Use el script deleteCompletedProcessInstances.py. Se usan múltiples transacciones.
  • Incremente la cantidad de archivos de registro de la transacción.

Para evitar este tipo de patrón de crecimiento de datos en la BPEDB en primer lugar, existen dos formas en las que se puede diseñar dicha aplicación de "latido" o de "planificación" de manera diferente:

  1. Diseñe el proceso de negocios de forma tal que la instancia de proceso llame a los servicios bacl-end, espere el margen de tiempo definido en una actividad de espera y, en vez de volver al principio luego de dichas acciones, invoque una nueva instancia de proceso para repetir aquellos pasos antes de terminar. Tenga en cuenta todo lo siguiente:
    1. El proceso a llamar no debe formar parte del ciclo de vida de la instancia de proceso que se origina, lo que significa que la autonomía se debe configurar en “peer” (par) (en vez de en “child” [secundario]).
    2. Los procesos de planificación" o de "latido" se deberían configurar en "auto-delete" (borrado automático).
  2. Use WebSphere Scheduler para ejecutar un proceso de negocios que llame a los servicios bacl-end de manera regular. Un ejemplo de esta opción se describe en Inicio de procesos de WebSphere Process Server de manera regular con el servicio planificador de WebSphere Application Server.

Otro patrón de diseño a considerar para que la BPEDB tenga un tamaño óptimo es el uso de elementos de trabajo de grupo. Use elementos de trabajo de grupo para grupos grandes (criterio de asignación de personas: Grupo) en vez de elementos de trabajo individual para los miembros del grupo (criterio de asignación de personas: Miembros del grupo). Generalmente, esto resulta en un mejor rendimiento de las consultas.


Instancias completadas

Los procesos de negocios, al igual que las tareas humanas, soportan diversas opciones de ciclo de vida. La forma en la que se ejecuta una instancia de proceso de negocios o una instancia de tarea humana, como un par o como un elemento secundario dependiente, determina cómo se la borra luego de que se haya completado su ejecución.

Instancias de proceso completadas

Las instancias de proceso se completan una vez que alcanzan uno de los siguientes estados: finalizada, terminada o error.

Los procesos pueden llamar a otros procesos, a los que se denomina "subprocesos". Estos subprocesos se ejecutan como un par o como un elemento secundario del proceso que los llama. El atributo a nivel del proceso denominado “autonomía” determina si los subprocesos se ejecutan como un par o como un elemento secundario. El ciclo de vida de un proceso par es autónomo del ciclo de vida del proceso que lo llama, mientras que el ciclo de vida de un proceso secundario depende del ciclo de vida del proceso (primario) que lo llama (ver Figura 1).

Figura 1. Operaciones de ciclo de vida de instancias de proceso primarias y secundarias
Operaciones de ciclo de vida de instancias de proceso primarias y secundarias

Por lo tanto, usted no puede borrar procesos secundarios de manera independiente. El proceso secundario se borra automáticamente si se borra el proceso primario. Para mayor información sobre el ciclo de vida de los procesos de negocios, ver Ciclo de vida del proceso.

Instancias de tareas humanas completadas

Las mismas consideraciones que afectan a los procesos de negocios también se aplican a las tareas humanas.

Existen dos tipos de tareas humanas: en línea e independientes. Una tarea humana en línea se define como una actividad de tarea humana dentro de un proceso de negocios. Generalmente, a este tipo de tarea la gestiona el proceso de negocios y se la borra una vez que se borra el proceso de negocios que la tiene incluida. No es posible borrar las tareas humanas en línea de manera independiente. Sin embargo, existe una excepción a esta regla. Las tareas de invocación en línea que se crearon por medio de la API de HTM no se borran cuando se borra el proceso de negocios. En este caso, se debe tomar una medida manual para limpiar dichas instancias. Las tareas humanas independientes suelen tener su propio ciclo de vida.

Desde WebSphere Process Server V6.2, se introdujo la noción de las denominadas tareas humanas independientes secundarias. Esta opción permite que las tareas humanas independientes participen del ciclo de vida del proceso de negocio que las llamas. Si se usa esa opción, dichas tareas humanas independientes se borrarán automáticamente cuando se borre el proceso de negocios primario que las llamó (ver Figura 2).

Figura 2. Operaciones de ciclo de vida de una instancia de proceso primaria con una instancia de tarea humana secundaria
Operaciones de ciclo de vida de una instancia de proceso primaria con una instancia de tarea humana secundaria

Para mayor información sobre el ciclo de vida de las tareas humanas, ver Ciclo de vida de las tareas humanas.


Opciones de limpieza

Luego de que un proceso de negocios o una tarea humana tenga el estado de finalizada, usted la podrá borrar. Existen diversas opciones de borrado.

El borrado automático de instancias de procesos de negocios e instancias de tareas humanas se puede modelar. De esta forma, WebSphere Process Server las borra cuando pasan a tener el estado adecuado.

Si se conservan las instancias por un período de tiempo determinado, por ejemplo, para que los administradores puedan verificar o corregir algo, Human Task Manager le ofrece la opción de borrar las instancias de tarea de manera automática luego de un período de tiempo determinado. Sin embargo, usted debe usar esta opción con mucho cuidado. Como ya lo hemos indicado, generalmente no se conservan las instancias completadas en la BPEDB.

En general, considerando los requisitos de rendimiento, es posible que tenga sentido reemplazar la operación de borrado actual por una instancia en la que la utilización del sistema sea baja. Por ejemplo, si el entorno de WebSphere Process Server se usa en demasía entre las 8 de la mañana y las 5 de la tarde y no se lo usa para nada durante la noche, el borrado de la instancia se puede llevar a cabo durante la noche para así no crear una carga adicional para el sistema durante las horas en las que la carga de trabajo es muy alta. En el caso de este requisito, existen varias opciones. WebSphere Process Server le ofrece scripts y una opción para el borrado programado de las instancias completadas.

Además de estas opciones, usted puede usar el BPC Explorer para borrar instancias individuales. A esta opción se la suele usar para borrar instancias específicas que un administrador examinó personalmente.

WebSphere Process Server le ofrece varias funciones API, que usted puede usar si ninguna de las opciones que se mencionan con anterioridad se ajusta a los requisitos de su entorno específico.

En las siguientes secciones, se explican todas las opciones que hemos mencionado hasta ahora de manera detallada.

Borrado automático de instancias completadas

Existen dos opciones para el borrado automático una vez completada la instancia de proceso. Usted puede borrar un proceso cuando su estado sea "finalizado", "error" o "terminado" o cuando su estado sea "finalizado" exclusivamente.

Desde WebSphere Process Server V6.1, esta última opción de “completado de manera exitosa” es la predeterminada (Figura 3). Sólo se conservan aquellas instancias de proceso que puedan llegar a necesitar atención administrativa adicional (como, por ejemplo, los estados de "error" y "terminado"), mientras que las instancias completadas de manera exitosa se borran automáticamente. Esto es razonable ya que los administradores pueden llegar a querer analizar las fallas de los procesos o incluso reiniciar las instancias de procesos que fallaron.

Figura 3. Configuración de las opciones de borrado automático para procesos de negocios en WebSphere Integration Developer
Configuración de las opciones de borrado automático para procesos de negocios en WebSphere Integration Developer

En el caso de los procesos de negocios que hay que optimizar para mejorar el rendimiento del tiempo de respuesta, es necesario considerar la opción de diferir el borrado de la instancia completada para que se realice durante una franja horaria en la que la utilización del sistema sea baja. Las siguientes secciones le ofrecen mayor información sobre el borrado diferido.

Para el caso de las tareas humanas, existen esencialmente dos escenarios de limpieza predeterminados:

  • De manera predeterminada, las tareas a realizar se borran luego de que hayan devuelto la repuesta al llamador de la tarea. Ésta es la configuración predeterminada para los procesos que se ejecutan durante un período de tiempo prolongado.
  • De manera predeterminada, la persona que inició las tareas de invocación y colaboración es la encargada de borrarlas. Esto significa que se las modela de forma tal que nunca se las borra automáticamente de manera predeterminada.

Usted puede personalizar el comportamiento predeterminado mediante el modelador de tareas humanas, lo que puede ocasionar que algunas tareas humanas se conserven aunque ya no sean necesarias. Además, usted tiene la opción de especificar un valor para la duración determinada hasta que se borra la tarea , que comienza desde el momento en el que la tarea llega a su estado final. Para estas opciones de borrado automático, usted también puede especificar si una tarea sólo se borra automáticamente si se la completa de manera exitosa (Figura 4). Usted puede borrar manualmente las tareas terminadas y las que fallaron.

Figura 4. Configuración de las opciones de borrado automático para tareas humanas en WebSphere Integration Developer
Configuración de las opciones de borrado automático para tareas humanas en WebSphere Integration Developer

Borrado programado de instancias completadas

WebSphere Process Server le brinda el script deleteCompletedProcessInstances.py, que le permite realizar el borrado selectivo de instancias de proceso completadas y sus datos asociados de la BPEDB basándose en ciertos criterios de consulta.

Estos criterios incluyen la selección por:

  • Una plantilla de proceso en particular
  • Un iniciador en particular
  • Una fecha / hora determinada antes de que haya finalizado la instancia
  • Un estado final en particular (como, por ejemplo, "finalizado", "terminado" o "error")

Este script permite la existencia de escenarios como el borrado diferido de instancias. También hay disponible una interfaz MBean que le ofrece estas funciones. Es necesario contar con privilegios de administrador de WebSphere para poder borrar instancias usando esta opción.

La sintaxis para usar este script es la siguiente:

deleteCompletedProcessInstances.py [([-node
                <nodeName>] -server <serverName>) | (-cluster
                <clusterName>)] (-all | -finished | -terminated | -failed )
                [-templateName <templateName> [-validFrom <timestamp>]]
                [-startedBy userID ] [-completedBefore <timestamp>]

Este script solicita el borrado de las instancias de proceso seleccionadas y sus procesos secundarios. Las instancias se borran una detrás de la otra en su propia transacción global. Existen casos en los que no se puede borrar una instancia de proceso dentro de una transacción global si, por ejemplo, se cumplió el tiempo de espera de la transacción antes de que finalice el borrado. En dichos casos, el BPC reaccionará y borrará esas instancias por medio de diversas transacciones globales.

El script devuelve la cantidad de instancias de proceso borradas luego de que finalizó la operación de borrado. Tenga en cuenta que existe un valor de tiempo de espera predeterminado específico para la conexión SOAP entre el cliente wsadmin y el servidor. Una vez que se llega a este valor, se interrumpe la conexión con el servidor, lo que significa que el cliente no se entera de la cantidad de instancias borradas. La operación de borrado en el servidor, sin embargo, no se ve afectada por esto y prosigue normalmente.

Gracias a WebSphere Process Server Version 7, también existe un script disponible para borrar tareas humanas. Este script se llama deleteCompletedTaskInstances.py y le ofrece una funcionalidad similar a la del script para instancias de proceso que acabamos de discutir. Además, ambos scripts de borrado soportan el parámetro nuevo "deletedAfter" que le ofrece una selección mejorada de las instancias que se borrarán. Ahora, usted también puede seleccionar múltiples estados.

Otra forma de borrar instancias consiste en usar el script bpcTemplates.jacl. Este script inicia y detiene plantillas de proceso y desinstala aplicaciones de procesos de negocios y tareas humanas.

En general, la desinstalación de una aplicación que incluye componentes de procesos o de tareas requiere que no existan instancias de procesos o de tareas correspondientes antes de que se realice la desinstalación.

Desde la versión 6.0.2, el script bpcTemplates.jacl le permite desinstalar aplicaciones que incluyen procesos o tareas que todavía tienen instancias mediante la especificación de la opción "force" (forzar). A esta opción sólo se la debe usar como un último recurso. No se recomienda el uso de esta opción.

Todos los scripts descriptos le ofrecen un parámetro "validFrom". Este formato de fecha y hora, que se espera allí en general, es UTC. A veces, no resulta fácil determinar los datos de validFrom en UTC, debido a que la consola administrativa, por ejemplo, le muestra la fecha y hora en el formato de la zona horaria local. Desde la versión V6.2.0.2, el script bpcTemplates.jacl le ofrece un parámetro denominado "list" (lista) que usted puede usar para determinar con gran facilidad la hora UTC para la plantilla de cualquier proceso o tarea de una aplicación.

Borrado programado de instancias completadas

El borrado de instancias de proceso tiende a sobrecargar el sistema de la base de datos. Durante el horario normal de operación del sistema, esto puede llegar a afectar seriamente el rendimiento y disminuir el tiempo de respuesta del sistema. Por lo tanto, si hay tiempos regulares con menos cargas de lo normal en el sistema de WebSphere Process Server (como, por ejemplo, a las 3:00 de la mañana del día domingo), usted puede usar este período de tiempo para borrar las instancias de proceso. Para automatizar esta tarea repetitiva, se introdujo el servicio de limpieza para procesos y tareas humanas en WebSphere Process Server 6.2. La configuración del servicio de limpieza del proceso se encuentra en el panel de configuración de Business Flow Manager en la consola administrativa de WebSphere Process Server.

Por otro lado, el borrado de instancias de tareas durante aquellas horas en las que los volúmenes de operación son muy elevados no afecta seriamente al rendimiento del sistema, ya que los datos de las instancias de tareas humanas son bastante menos que los de los procesos. WebSphere Process Server 6.2 también introdujo un servicio de borrado de tareas, pero la razón para su uso se suele relacionar más con un aspecto funcional que con uno relacionado con el rendimiento. De manera similar que en el caso del servicio de limpieza para procesos, la configuración correspondiente se encuentra en el panel de configuración de Human Task Manager. Cuando la seguridad está activada, se debe especificar CleanupUser (en la versión 6.2) o AdminJobUser (en la versión 7) en la configuración de BPC con un usuario que cumpla la función de administrador del sistema de BPC para ejecutar los servicios de limpieza.

La única otra configuración obligatoria para dichos servicios es la frecuencia, que se debe especificar mediante una expresión similar a una expresión cron. Esto determina cuándo los servicios comienzan a ejecutarse, mientras que la configuración de duración determina el tiempo máximo por el que se ejecuta el servicio luego de que se lo inició. La Figura 5 le muestra las configuraciones correspondientes para un servicio que se ejecuta todas las noches a las 11:00 sin ninguna restricción relativa a su duración (lo que significa que se seguirá ejecutando hasta que finalice todo el trabajo de limpieza).

Figura 5. Panel de configuración del servicio de limpieza
Panel de configuración del servicio de limpieza

La página User Calendar (Calendario de usuario) incluye instrucciones sobre cómo especificar la expresión similar a la expresión cron.

Debido a la gran carga sobre el sistema de la base de datos, no tiene sentido tener varios subprocesos limpiando las instancias de procesos o tareas al mismo tiempo. Además, si dos procesos borran las instancias de procesos o de tareas simultáneamente, esto crea mensajes de error en los registros. Aunque esto no provoca ningún problema funcional en el sistema, hace que el procedimiento de limpieza sea más lento. Esto significa que las configuraciones de frecuencia y duración deberían garantizar que no exista superposición entre el tiempo de finalización de un procedimiento de limpieza y el tiempo de inicio de otro. Por ejemplo, la especificación de una frecuencia de una ejecución de servicio como una vez por hora con una duración de 120 minutos puede provocar todos los problemas que mencionamos con anterioridad.

El parámetro que ejerce la mayor influencia sobre el rendimiento de la limpieza es el tamaño de la parte de la transacción. Esta configuración determina cuántas instancias de proceso se borran dentro de una transacción. El valor predeterminado es 10.

El rendimiento mejora cuando aumenta el tamaño de la parte de la transacción. Sin embargo, tenga en cuenta todo lo que la base de datos puede soportar sin registrar un tiempo de espera de transacción o el fallo total de un registro de transacción. Los procesos que tienen muchas actividades y datos relacionados requieren partes más pequeñas de la transacción. La configuración óptima de este parámetro se debe probar con el proceso más grande que se va a borrar. Una configuración de 20 instancias de proceso por parte se suele poder lograr con gran facilidad. Si el proceso tiene 100 actividades o más, 50 puede llegar a ser demasiado.

Ninguno de los otros parámetros (como, por ejemplo, "borrar anterior a" o "procesar estados finales") afecta el rendimiento del borrado del proceso o la tarea.

La definición de los denominados trabajos de limpieza determina qué instancias de proceso se borran en realidad cuando se ejecuta el servicio de limpieza. Usted puede especificar para cada plantilla de proceso en qué estado final sus procesos se borrarán y el tiempo mínimo que se debe permanecer en este estado antes de que se proceda con el borrado. Se debe definir un trabajo de limpieza por lo menos. De lo contrario, el servicio de limpieza no borrará ningún proceso.

La Figura 6 le muestra la creación de un trabajo de limpieza para la plantilla A, que borrará todas las instancias en el mismo momento que lleguen a su estado final. Si la misma configuración se aplica a varias plantillas, usted puede especificar una lista de nombres de plantillas separados por comas.

Figura 6. Configuración de un trabajo de limpieza
Configuración de un trabajo de limpieza

El número de orden del trabajo determina el orden de ejecución. Si la duración máxima del servicio de limpieza se especifica como demasiado baja, existirá la posibilidad de que los trabajos al final de la lista no se lleguen a ejecutar. La Figura 7 le muestra una lista de trabajos de limpieza. En este caso, todos los procesos de la plantilla A se borrarán antes de que se borre cualquiera de los procesos de las plantillas B o C.

Figura 7. Lista de trabajos de limpieza configurados
Lista de trabajos de limpieza configurados

Borrado usando el BPC Explorer

Es posible que un administrador necesite examinar ciertas instancias de un proceso de negocios, como si se crean las instancias en estado final "error" o si el administrador necesita finalizar ciertas instancias.

Usted puede usar el BPC Explorer para lograr esto. Mientras trabaja con instancias específicas, es posible que surja el requisito de borrar dicha instancia. El BPC Explorer le ofrece a los administradores la opción de borrar instancias dentro de la vista denominada “Process Instances Administered By Me” (Instancias de proceso administradas por mí) (Figura 8) o dentro de la vista denominada “Process Instance Details” (Detalles de la instancia de proceso).

Figura 8. Borrado de instancias de procesos de negocios usando el BPC Explorer
Borrado de instancias de procesos de negocios usando el BPC Explorer

Lo mismo aplica a las instancias de tarea. Además, se pueden definir vistas personalizadas para simplificar la selección de las instancias que se pueden borrar.

El BPC Explorer borra cada instancia de procesos o tareas en su propia transacción.

Borrado usando las funciones provistas de la API

BPC le ofrece funciones para consultar y borrar instancias de procesos y tareas. Estas funciones están disponibles en todos los tipos de API, que es por medio de las API de EJB, JMS, REST o servicios web.

La página BPC Samples (Muestras de BPC) abarca el uso de estas API y, junto con el WebSphere Process Server Information Center, constituye la mejor fuente de información sobre este tema. Ver la sección Recursos para mayor información.

Borrado de datos relacionados

Tanto en el caso de las instancias de proceso como en el de las tareas humanas, datos relacionados se pueden llegar a almacenar en la base de datos BPC o en una base de datos independiente que requiere limpieza. Estos datos pueden incluir todo lo siguiente:

  • Entradas al registro de auditoría
  • Eventos almacenados por la BPC Reporting Function (Función de información de BPC)
  • Consultas de personas

Borrado de entradas al registro de auditoría

Tanto en el caso de las instancias de proceso como en el de las tareas humanas, existe la opción de enviar eventos a tablas específicas del registro de auditoría dentro de la base de datos BPC. Usted puede usar esto para realizar el seguimiento del historial del proceso con propósitos de auditoría e información.

Es necesario que los procesos de negocios y las tareas humanas tengan activado el destino del registro de auditoría para sus eventos para poder usar esta función. Esto se hace en el modelo de proceso o tarea, como se puede observar en la Figura 9.

Figura 9. Activación del registro de auditoría para procesos de negocios en WebSphere Integration Developer
Activación del registro de auditoría para procesos de negocios en WebSphere Integration Developer

Le recomendamos que coloque estas tablas de auditoría en un espacio de tabla independiente y que archive dichos datos de manera regular usando los métodos generales de las bases de datos. Una vez archivados, esas entradas antiguas se eliminan de las tablas del registro de auditoría. Usted puede hacer esto usando el mecanismo común de las bases de datos. En el caso de las entradas de auditoría correspondientes a los procesos de negocios, usted dispone del script deleteAuditLog.py para eliminar las entradas al registro de auditoría de la tabla Business Flow Manager Audit a través de determinados criterios. Este script no es aplicable en el caso de las entradas de auditoría para tareas humanas independientes.

Para mayor información sobre este script, ver Borrado de entradas al registro de auditoría usando scripts administrativos.

Borrado de eventos de función de información

El BPC Explorer le ofrece la opción de visualizar el historial de las instancias de proceso de negocios. Esta función de información se debe configurar de manera independiente y usa los eventos CEI emitidos por las instancias de proceso.

Estos eventos se almacenan en la base de datos de la función de información del BPC Explorer. Para borrar datos de estas tablas (por ejemplo, una vez que las instancias de proceso hayan llegado a sus estados finales, usted puede usar el script observerDeleteProcessInstanceData.py.

Para mayor información sobre este script, ver Borrado de datos de la base de datos de información.

Actualización de los resultados de las consultas de personas y eliminación de los resultados de las consultas de personas que no se usan

De manera similar a los servicios de limpieza para los procesos y las tareas, existe un servicio que actualiza las consultas de personal. Este servicio se usa para asignar tareas humanas a personas específicas. Las consultas de personal resueltas se colocan en el caché de la BPEDB, pero el personal en una compañía se puede modificar.

Por lo tanto, las consultas de personal que se encuentran en el caché pueden vencer. La fecha de vencimiento predeterminada es una hora. Sin embargo, incluso cuando una consulta de personal haya vencido, las consultas de personal que se encuentran en el caché se siguen usando hasta que el servicio de actualización se ejecuta o hasta que se ejecuta el script refreshStaffQuery.py. Este comportamiento difiere del de las versiones anteriores a la versión V6.0.x del producto. La consulta de personal se solía actualizar inmediatamente luego de su vencimiento.

De manera predeterminada, el servicio de actualización de consultas de personal está programado para ejecutarse todos los días a la 1:00 de la mañana. Esta configuración resulta útil para la mayoría de los escenarios de tareas humanas porque 24 horas suele ser la franja de tiempo en la que ocurren los cambios de personal. En algunos casos, la franja de tiempo óptima puede llegar a ser diferente. Sin embargo, la actualización de la base de datos puede consumir una gran cantidad de recursos, dependiendo de la naturaliza de las asignaciones de personal. Todo cambio a la frecuencia de las ejecuciones del servicio crea un equilibrio entre la necesidad de mantener actualizadas las asignaciones de personal y el impacto sobre el rendimiento de la actualización. Los cambios a la frecuencia y a la fecha de vencimiento se hacen desde el panel de Human Task Manager Configuration en la consola de administración.

Los resultados de las consultas se colocan en el caché de la BPEDB. En sólo algunas situaciones, los resultados de las consultas de personas no se borran automáticamente. La limpieza de dichos resultados de las consultas de personas que no se usan puede tener un impacto positivo sobre el rendimiento del sistema. WebSphere Process Server le ofrece el script cleanupUnusedStaffQueryInstances.py para hacer esto.


Conclusión

Este artículo discutió las opciones para borrar instancias de procesos y tareas de la base de datos Business Process Choreographer. Existen dos enfoques generales: el modelado del borrado automático dentro del modelo del proceso o la tarea o el empleo de mecanismos de borrado diferido o programado mediante el uso de acciones administrativas. La opción que usted elija dependerá de los requisitos de tiempo de respuesta para las aplicaciones de WebSphere Process Server y de si existen o no franjas horarias en las que la utilización del sistema es baja y éste está disponible para operaciones de borrado diferido. El borrado de instancias suele estar muy relacionado con las operaciones de archivado. Le daremos más información sobre el archivado en un artículo posterior que forma parte de esta misma serie.

Este artículo forma parte de una serie de artículos sobre las operaciones de WebSphere Process Server. La parte 1 describe las tareas esenciales para la administración del sistema y la operación de un entorno de producción saludable de WebSphere Process Server. Además, también abarca diversos enfoques y herramientas. La parte 3 describe la actualización de la BPEDB a nivel de la base de datos. Otros artículos dentro de esta misma serie de artículos abarcarán temas como las opciones de gestión de la aplicación, monitoreo y reparación o archivado.


Agradecimientos

Los autores desean agradecer a Geoffrey Beers, Thomas Bernhardt, Suresh Bhat, Gabriel Dermler, Erich Fussi, Jonas Grundler, Uma Rao y Andre Weiser por revisar este artículo y contribuir con sus valiosos comentarios.

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere
ArticleID=465402
ArticleTitle=Operación de un entorno de WebSphere Process Server - Parte 2: Opciones para conservar el tamaño óptimo de una base de datos Business Process Choreographer
publish-date=07292011