Utilice el nodo FileOutput para grabar mensajes en archivos.
Puede grabar uno o más mensajes de transacciones de flujos de mensajes en un archivo en el sistema de archivos del intermediario. Cada mensaje, cuando se graba en el archivo, se convierte en una secuencia de bytes denominada registro. Los registros se acumulan hasta que se desencadena un proceso que completa el archivo y lo coloca en el directorio de salida especificado o en un directorio del servidor o SFTP remoto. Las propiedades del nodo especifican cómo se acumulan los registros en los archivos y dónde se colocan los archivos cuando terminan.
El nodo FileOutput se encuentra en la bandeja Archivo de la paleta y está representado en el entorno de trabajo por el siguiente icono:
El nodo FileOutput graba archivos como una secuencia de uno o más registros. Cada registro se genera a partir de un solo mensaje recibido en el terminal In (de entrada) del nodo.
Para cada mensaje recibido, tanto en el terminal In (de entrada) como en el terminal Finish File, puede modificar el directorio de salida y el nombre de archivo que se deben grabar (o finalizar) por el uso de elementos del mensaje. En el nodo, puede especificar estos elementos, que, de forma predeterminada, identifican elementos en el entorno local, en el separador de propiedades de Solicitud.
El nodo FileOutput utiliza subdirectorios del directorio de salida para almacenar archivos durante el proceso y después del mismo. Todos estos subdirectorios empiezan con el prefijo mqsi e incluir los subdirectorios llamados mqsitransit (el directorio de tránsito) y mqsiarchive (el directorio de archivado). Los registros no se acumulan directamente en un archivo del directorio de salida aunque sí se acumulan en un archivo del directorio de tránsito. Los archivos se mueven del directorio de tránsito al directorio de salida cuando se completa el archivo. Si se ha de mover un archivo al directorio de salida con el mismo nombre que un archivo que ya está allí, puede elegir entre suprimir el archivo del directorio de salida, moverlo al directorio de archivado (mqsiarchive) o renombrarlo antes de moverlos al directorio de archivado.
Puede especificar que el nodo FileOutput transfiera archivos a un servidor FTP o SFTP remoto como parte del proceso de archivos. Si el archivo se transfiere satisfactoriamente, puede suprimirse del sistema de archivos local o, de forma opcional, retenerse para que se lleve a cabo de la forma habitual el resto del proceso de archivos. El servidor se identifica por la propiedad Servidor remoto y puerto en el nodo. Alternativamente, puede alterar temporalmente la propiedad de nodo estableciendo un valor en el entorno local. También puede utilizar el entorno local para especificar que se ejecuten mandatos antes o después de que finalice una transferencia FTP o SFTP. Para obtener más información, consulte Alteraciones temporales del entorno local para el servidor remoto en el nodo FileOutput.
Durante la operación de transferencia de archivos, FileOutput crea el archivo de destino. Sin embargo, el archivo de destino es legible antes de que se complete la transferencia de archivos. Por lo tanto, asegúrese de que las aplicaciones remotas no lean el archivo hasta que se haya completado la transferencia de archivos.
Cuando se graban varios registros, no se lleva a cabo el proceso de archivos hasta que se recibe un mensaje en el terminal Finish File del nodo. Cualquier mensaje recibido en el terminal Finish File hace que el archivo se mueva del directorio de tránsito al directorio de salida especificado o a un directorio FTP o SFTP remoto.
No es un error si el proceso de archivos se inicia cuando no hay ningún archivo en el directorio de tránsito.
Si establece la propiedad Definición de registro en El registro es Archivo completo en el separador Registros y elementos, se hará caso omiso de los mensajes recibidos en el proceso Finish File porque ya se habrá procesado el archivo.
Para cada mensaje recibido en el terminal In (de entrada) y después que el nodo lo haya procesado correctamente, se propaga una copia al terminal Out (de salida) para procesarla posteriormente si el terminal está conectado.
Para cada mensaje recibido en el terminal Finish File y después que el nodo lo haya procesado satisfactoriamente, se propaga una copia al terminal End of Data para su posterior proceso si el terminal está conectado.
Nombre de elemento | Tipo de datos de elemento | Descripción |
---|---|---|
Directorio | CHARACTER | La vía de acceso absoluta del directorio de salida en el formato utilizado por el sistema de archivos del intermediario. Por ejemplo, en sistemas Windows la vía de acceso del directorio empieza por el prefijo de letra de unidad (como C:). |
Name | CHARACTER | Nombre del archivo de salida. |
Action | CHARACTER | Los valores posibles son:
|
Timestamp | CHARACTER | La fecha y la hora, en formato de serie de caracteres, en las que el nodo a empezado a procesar este archivo. Este valor se añade como prefijo a los nombres de archivos que se archivan si establece la propiedad Acción si el archivo existe en Indicación de fecha y hora, Archivar, Sustituir archivo existente y Añadir a archivo existente en el separador Básicas. |
Es posible que varios flujos de mensajes graben en el mismo archivo, lo que puede ocurrir cuando hay instancias adicionales del flujo, o cuando varios flujos contienen nodos FileOutput. El nodo FileOutput permite que una sola instancia, dentro de un grupo de ejecución y entre grupos de ejecución, grabe en un archivo a la vez. Mientras se está grabando un registro, todas las demás instancias del grupo de ejecución deben esperar. El orden en el que las instancias obtienen acceso no está definido.
Cuando finalice el archivo, la primera instancia en obtener acceso lleva a cabo el proceso y las otras instancias no encontrarán el archivo. El elemento Action del árbol de mensaje de LocalEnvironment.WrittenDestination.File se establece en Finish para todas las instancias que no pueden descubrir el archivo en el directorio de tránsito.
Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
Username: NombreUsuarioHostDestinoFtp@NombreUsuarioProxy@NombreHostFtpDestino
Password: ContraseñaUsuarioFtpDestino@ContraseñaUsuarioProxy
Otros proxies podrían necesitar distintas codificaciones o puede que requieran una configuración externa o tal vez no pueda utilizarlos con los nodos de archivo.Una vez ha puesto una instancia del nodo FileOutput en un flujo de mensajes, debe configurarlo (para obtener más información, consulte Configurar un nodo de flujo de mensajes). Las propiedades del nodo se muestran en la vista Propiedades. Todas las propiedades obligatorias para las que debe especificar un valor (las propiedades que no tienen un valor predeterminado definido) están marcadas con un asterisco en esta vista.
Los terminales de nodo FileOutput se describen en la siguiente tabla.
Terminal | Descripción |
---|---|
In (de entrada) | El terminal de entrada que acepta un mensaje para que lo procese el nodo. |
Finish File | El terminal de entrada que acepta un mensaje que desencadena el proceso final de un archivo. |
Out (de salida) | El mensaje recibido en el terminal In (de entrada) se propaga a este terminal si el registro se graba satisfactoriamente. El mensaje permanece igual, excepto por la información de estado en el Entorno local. |
End of Data (fin de datos) | El mensaje recibido en el terminal Finish File se propaga a este terminal si el archivo ha procesado satisfactoriamente. |
Failure (de anomalías) | El terminal de salida al que se direcciona el mensaje si se detecta una anomalía al transferir el mensaje a la cola de salida. |
Las tablas siguientes describen las propiedades de nodo que el usuario puede establecer en un separador especificado. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | FileOutput | El nombre del nodo. |
Descripción corta | No | No | Una descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Directorio | No | Sí | Ninguno | Especifique el directorio de salida en el que el
nodo FileOutput coloca sus
archivos. Especifique el directorio como una vía de acceso de directorio
relativa o absoluta. Si la vía de acceso de directorio es relativa, se
basa en el directorio especificado en la variable de entorno
MQSI_FILENODES_ROOT_DIRECTORY. Por ejemplo:
Puede alterar temporalmente la vía de acceso del directorio de salida que se va a utilizar estableciendo valores en el mensaje actual. Para obtener más información, consulte las propiedades del separador Solicitud. |
outputDirectory |
Nombre de archivo o patrón | No | Sí | Ninguno | Especifique un patrón de nombre de archivo. Esta
propiedad define el nombre del archivo que crea el nodo FileOutput. El
valor es un nombre de archivo específico o una secuencia de caracteres
(patrón) que coincide con un nombre de archivo. En este campo de
propiedad sólo se permiten patrones con un solo carácter comodín (el
asterisco, *). El nombre de archivo que se debe utilizar se determina de
la forma siguiente:
Los nombres de archivo se pasan al sistema de archivos al que tiene acceso el intermediario y deben seguir los convenios de estos sistemas de archivos. Por ejemplo, los nombres de archivo en sistemas Windows no son sensibles a las mayúsculas y minúsculas; mientras que en sistemas UNIX lo son. |
outputFilename |
Modalidad para grabar en el archivo | Sí | No | Almacenar provisionalmente en el directorio de tránsito | Especifique si el archivo se debe almacenar o grabar directamente. Seleccione una
de las opciones siguientes:
|
|
Acción si el archivo exista | Sí | No | Sustituir archivo existente | Especifique cómo se va a procesar el archivo
cuando se complete. Seleccione una
de las opciones siguientes:
|
|
Sustituir archivos archivadores duplicados | Sí | No | No seleccionado | Marque el recuadro de selección
Sustituir archivos archivadores duplicados para
especificar que, en los casos en que se especifique Archivar y
sustituir archivo existente o Añadir
indicación de fecha y hora, archivar y sustituir archivo existente en
Acción si el archivo
existe, los archivos movidos al directorio de archivado sustituyan a los archivos
que ya existen allí con el mismo nombre. De forma predeterminada, este recuadro de selección está deseleccionado. Si este recuadro de selección no está marcado y si ya hay un archivo en el directorio de archivado con el mismo nombre que un archivo que se va a mover allí, se genera una excepción y el archivo nuevo permanece en el directorio de tránsito. |
Las propiedades de solicitud del nodo FileOutput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Ubicación de datos | Sí | No | $Body | Especifique la ubicación de datos de entrada, que es
la ubicación en el árbol de mensajes de entrada que contiene el registro
que se va a grabar en el archivo de salida. El valor predeterminado es
$Body, que significa todo el
cuerpo del mensaje ($InputRoot.Body). Cuando
especifique esta propiedad y los datos del árbol de mensajes al que
identifica pertenezcan a un analizador controlado por modelos como,
por ejemplo, el analizador MRM o el analizador XMLNSC, tenga en cuenta los
factores siguientes.
|
|
Solicitar ubicación de propiedad de directorio | Sí | Sí | $LocalEnvironment/Destino/Archivo/Directorio | Especifique la ubicación del valor para alterar temporalmente la propiedad Directorio en el separador Básicas. Si no especifica una ubicación, el valor predeterminado es $LocalEnvironment/Destination/File/Directory. Si especifica una ubicación pero el elemento está vacío o falta, se utiliza la propiedad Directorio. El elemento tiene un tipo de datos CHARACTER y es una vía de acceso de directorio absoluta o relativa. Utilice el carácter separador de vía de acceso ('/' o '\') según el sistema de archivos en el que se ejecute el intermediario. Los caracteres separadores de vía de acceso finales se ignoran. Las vías de acceso de directorio relativas se basan en el valor de la variable de entorno MQSI_FILENODES_ROOT_DIRECTORY. | requestDirectoryLocation |
Solicitar ubicación de propiedad de nombre de archivo | Sí | Sí | $LocalEnvironment/Destino/Archivo/Nombre | Especifique la ubicación del valor para alterar temporalmente la propiedad Nombre de archivo o patrón en el separador Básicas. El elemento tiene un tipo de datos CHARACTER y es un nombre de archivo explícito. No se produce ninguna sustitución de comodín para este valor. Si la propiedad no está en el entorno local cuando el mensaje llega al terminal In (de entrada) o Finish File (finalización de archivo) del nodo, entonces el valor predeterminado debe utilizar la propiedad Nombre de archivo o patrón en el separador Básicas. | requestNameLocation |
Las propiedades de Registros y elementos del nodo FileOutput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Definición de registro | Sí | No | El registro es Archivo completo | Especifique cómo se colocan los
registros en el archivo de salida. Seleccione una
de las opciones siguientes:
|
Longitud | Sí | No | 80 | Especifique la longitud (en bytes) de los registros cuando se especifique El registro tiene Datos de longitud fija en Definición de registro. Los registros que tienen una longitud superior a este valor hacen que se genere una excepción. Este valor debe estar en el rango de 1 byte a 104857600 bytes (100 MB). El valor predeterminado es 80 bytes. |
Byte de relleno | Sí | No | X'20' | Cuando se especifica El registro tiene Datos de longitud fija en Definición de registro, utilice la propiedad Byte de relleno para especificar el byte que se debe utilizar al rellenar registros hasta la longitud especificada si dichos registros tienen una longitud más corta que la especificada. Especifique este valor como dos dígitos hexadecimales. El valor predeterminado es X'20'. |
Delimitador | Sí | No | Fin de línea del sistema del intermediario | Especifique el delimitador que se
debe utilizar si especifica El registro tiene Datos
delimitados en Definición de registro.
Seleccione una
de las opciones siguientes:
|
Delimitador personalizado | No | No | Ninguno | Especifique la secuencia de bytes de delimitador que se debe utilizar para delimitar registros cuando se especifica Delimitador personalizado en la propiedad Delimitador. Especifique este valor como una serie de número par de dígitos hexadecimales. El valor predeterminado es X'0A' y la longitud máxima de la serie es 16 bytes. |
Tipo de delimitador | Sí | No | Posfijo | Si establece la propiedad
Definición de registro en
El registro tiene Datos delimitados,
utilice Tipo de delimitador para
especificar cómo va a separar los registros el delimitador. Seleccione una
de las opciones siguientes:
|
Las propiedades de validación del nodo FileOutput están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | No | Sí | Heredar | Especifique si tiene lugar la validación. Los valores válidos son:
|
validateMaster |
Acción para anomalía | No | No | Excepción | Especifica lo que sucede si falla la validación. Sólo
puede establecer esta propiedad si establece
Validar en
Contenido o
Contenido y valor. Los valores válidos son:
|
Las propiedades FTP del nodo FileOutput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Transferencia remota | No | Sí | Borrado | Para transferir archivos a un servidor FTP o SFTP, seleccione Transferencia remota y, a continuación, establezca las demás propiedades de esta tabla. | fileFtp |
Protocolo de transferencia | No | Sí | FTP | Esta propiedad especifica el protocolo que se debe utilizar para la transferencia remota. Los valores válidos son:
|
remoteTransferType |
Servidor remoto y puerto | No | Sí | Ninguno | Esta propiedad puede tener cualquiera de estos valores:
Especifique
la dirección IP y el número de puerto del servidor FTP o SFTP que se
debe utilizar, empleando la sintaxis siguiente:
Si está utilizando FTP y no especifica ningún número de puerto, se supone que se trata del puerto 21. Si está utilizando SFTP y no especifica ningún número de puerto, se supone que se trata del número de puerto 22. Sin
embargo, si se ha definido un servicio configurable FtpServer, puede especificar el nombre del servicio
configurable en este campo. Si se especifica un nombre de servicio configurable, se podrán alterar temporalmente las propiedades (alguna o todas) de la transferencia remota en el separador FTP mediante el servicio configurable.
Para obtener información sobre cómo interactúan una definición de servicio
configurable FtpServer y las propiedades de este separador, consulte
Servicio configurable FtpServer.
Puede alterar temporalmente esta propiedad estableciendo la ubicación del servidor en el entorno local. Para obtener más detalles, consulte Alteraciones temporales del entorno local para el servidor remoto en el nodo FileOutput. |
fileFtpServer |
Identidad de seguridad | No | Sí | Ninguno | Especifique el nombre de una identidad de seguridad que se haya definido utilizando el mandato mqsisetdbparms. El identificador de usuario y la contraseña que se deben utilizar para iniciar la sesión en el servidor FTP o SFTP se obtienen de esta definición. El nombre de la definición debe tener el prefijo ftp::. El valor de esta propiedad se altera temporalmente mediante el valor de la propiedad securityIdentity del servicio configurable de FtpServer, si se ha establecido. | fileFtpUser |
Directorio de servidor | No | Sí | "." | Especifique el directorio en el servidor FTP o SFTP al que se van a transferir los archivos. El valor predeterminado es . (un punto), que indica el directorio predeterminado después del inicio de sesión. Si especifica una vía de acceso relativa, el directorio se basará en el directorio predeterminado después del inicio de sesión FTP o SFTP. Asegúrese de que la sintaxis de la vía de acceso se ajuste a los estándares de sistemas de archivos del servidor FTP o SFTP. El valor de esta propiedad se altera temporalmente mediante el valor de la propiedad remoteDirectory del servicio FtpServer configurable, si se ha establecido. | fileFtpDirectory |
Modalidad de transferencia | No | Sí | Binaria | Especifique cómo se transfieren los archivos. Si el
contenido del archivo no se transforma, seleccione Binaria.
Si el archivo se transmite como ASCII, seleccione
ASCII. El valor de esta
propiedad se altera temporalmente mediante el valor de la propiedad
transferMode del servicio configurable FtpServer, si se ha establecido. Esta propiedad es válida solamente cuando se selecciona FTP como protocolo para la transferencia remota. Si ha especificado SFTP como protocolo, se hace caso omiso de la propiedad Modalidad de transferencia y se utiliza codificación Binaria. |
|
Acción si el archivo remoto existe | No | No | Sustituir archivo | Especifique si debe crearse el archivo o añadirse a
un archivo existente. Seleccione una
de las opciones siguientes:
|
|
Retener archivo local después de transferencia | No | No | Borrado | Para retener una copia local del archivo una vez completado el proceso de transferencia de archivos, seleccione el recuadro Retener archivo local después de transferencia. Si este recuadro está seleccionado, las copias locales se procesan una vez completada la transferencia, al igual que otros archivos de salida, tal como se especifica en el separador Básicas. Si el recuadro no está seleccionado, los archivos transferidos satisfactoriamente no se retienen localmente. |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sucesos | No | No | Ninguno | Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y
Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles. Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado. |