WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Cómo varios nodos de archivo comparten el acceso a archivos del mismo directorio

WebSphere Message Broker controla el acceso a los archivos para que sólo un nodo de archivo a la vez pueda leer o grabar en un archivo.

Cuando un flujo de mensajes utiliza el nodo FileInput o FileOutput, pueden haber instancias (hebras) adicionales asociadas con el flujo de mensajes, o puede que nodos de archivo de otros flujos de mensajes en el mismo o en otros otros grupos de ejecución hagan referencia a archivos del mismo directorio. WebSphere Message Broker controla la forma en que varios procesos leen y escriben en archivos; para ello, mueve los archivos al directorio mqsitransitin durante el proceso, y los bloquea mientras se están procesando. El directorio mqsitransitin es un subdirectorio del directorio de entrada especificado en el nodo FileInput.

Si está utilizando el nodo FileInput y elige incluir subdirectorios, se crea un directorio mqsitransitin puesto que es necesario en todos los sitios que hay un archivo que procesar.

El intermediario bloquea los archivos que están siendo leídos por el nodo FileInput o grabados por el nodo FileOutput, para impedir que otros grupos de ejecución lean o cambien los archivos mientras se están procesando. El intermediario desbloquea el archivo:
Nota: El nodo FTEInput no utiliza ningún directorio de tránsito. Cada grupo de ejecución tiene su propio agente de WebSphere MQ File Transfer Edition, y un nodo sólo procesa archivos enviados al agente para el que se despliega el nodo. El grupo de ejecución garantiza que sólo un nodo del grupo de ejecución procese cada archivo.

Lectura de un archivo

Cuando el nodo FileInput lee un archivo, primero mueve el archivo a directorio mqsitransitin, donde permanece durante el proceso. Se añade un prefijo (que contiene el UUID del grupo de ejecución) al nombre de archivo para indicar qué grupo de ejecución está procesando el archivo. Mientras el archivo se encuentra en este directorio, ningún otro grupo de ejecución puede acceder al mismo. El intermediario mantiene un subdirectorio lock en el directorio mqsitransitin para garantizar que sólo accede a los archivos del directorio de entrada un grupo de ejecución a la vez.

Si varios flujos de mensajes o instancias de un grupo de ejecución leen del mismo directorio de entrada, sólo se asigna una instancia de un flujo de mensajes para leerlo. Esta instancia procesa en serie cada registro del archivo. Otras instancias del flujo de mensajes, u otros flujos de mensajes, pueden procesar simultáneamente otros archivos, cuyos nombres coincidan con el patrón especificado en la propiedad Nombre de archivo o patrón del nodo.

Mientras se procesa un archivo, el sistema de archivos se utiliza para bloquear el archivo. Como resultado, se impide que otros programas (incluidos otros grupos de ejecución) lean, graben o supriman el archivo mientras está siendo procesado por los nodos de archivo.

Mientras un nodo FileInput lee un archivo, el archivo permanece en el directorio mqsitransitin hasta que su proceso ha finalizado por completo (o hasta que se produce un error irrecuperable). Si el archivo se va a conservar, se almacena en un subdirectorio del directorio mqsitransitin.

Una vez que el archivo se ha procesado, se pasa del directorio mqsitransitin al directorio de entrada. No obstante, si el grupo de ejecución se detiene de forma inesperada mientras el archivo se encuentra en el directorio mqsitransitin, es posible restaurar manualmente el archivo de entrada en el directorio de entrada; para ello, debe eliminar el prefijo de UUID del grupo de ejecución del nombre del archivo y luego mover el archivo al directorio de entrada. El archivo de entrada se procesa luego en el siguiente nodo FileInput que explora el directorio.

Si utiliza un servidor NFS, y tiene nodos de Archivo en grupos de ejecución diferentes que acceden al mismo directorio en el servidor NFS, asegúrese de utilizar NFS versión 4 para dar soporte al bloqueo de archivos correctamente.

Grabación de un archivo

Los archivos que se crean y graban por un nodo FileOutput se colocan en el directorio de salida cuando han terminado. Mientras se añaden registros a un archivo, éste se mantiene en el subdirectorio mqsitransit.

Cada registro se graba mediante una única instancia de flujo de mensajes. Todas las instancias del flujo de mensajes que se configuran para grabar registros en un archivo específico pueden añadir registros a ese archivo. Dado que las instancias se pueden ejecutar en cualquier orden, es posible que los registros que graban estén intercalados, por lo que la secuencia de registros puede verse alterada. Si necesita mantener la secuencia de registros en el archivo de salida, asegúrese de que sólo una instancia del nodo FileOutput utilice el archivo. Para asegurar que sólo una instancia del nodo FileOutput utilice el archivo, configure el flujo de mensajes que contiene el nodo para que utilice la agrupación de instancias adicionales con cero instancias, y asegúrese de que otros flujos de mensajes no graben en el mismo archivo.

Mientras se procesa un archivo, el sistema de archivos se utiliza para bloquear el archivo. Como resultado, se impide que otros programas (incluidos otros grupos de ejecución) lean, graben o supriman el archivo mientras está siendo procesado por los nodos de archivo. Este bloqueo se mantiene durante un breve periodo de tiempo después de que un nodo FileOutput grabe en un archivo sin terminarlo, dejándolo en el directorio de tránsito. Si los flujos de mensajes que están en el mismo grupo de ejecución utilizan el mismo archivo de salida y se ejecutan lo bastante rápido, el intermediario no libera el bloqueo antes de que se termine el archivo. Sin embargo, si los flujos de mensajes tienen intervalos más largos entre ellos, el intermediario libera el bloqueo y otro proceso o grupo de ejecución puede adquirir un bloqueo sobre el archivo. Para evitar esta situación, asegúrese de que los grupos de ejecución no compartan directorios de salida.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:44


Tema de conceptoTema de concepto | Versión 8.0.0.5 | ac55400_