No, la base de WebSphere MQ no transfiere directamente los archivos. La semántica para mover archivos incluye cosas tales como nombres de archivos, rutas de directorio, conversión de nombres en diferentes tipos de sistemas de archivos (es decir, un archivo de árbol UNIX contra un conjunto de datos particionado z/OS). Messaging usa semántica específica para colas y temas, y estos son drásticamente diferentes de los de los archivos.
En consecuencia, la base WMQ no intenta realizar la semántica de archivos como parte de su funcionalidad principal. El WebSphere MQ File Transfer Edition y IBM Sterling Connect:Direct proporcionan esa funcionalidad. En el caso de FTE, la transferencia de archivos gestionados se crea de forma nativa en la parte superior de WebSphere MQ.
Muchas personas han escrito anteriormente soluciones para mover archivos usando mensajería, ya sea WebSphere MQ u otro proveedor de transporte. Resulta que hacerlo de una manera robusta es una tarea no trivial. Éstos son algunos de los problemas:
- Si hace que cada archivo sea un solo mensaje, los tamaños de los mensajes varían considerablemente. Es muy difícil sintonizar el motor de mensajería para que funcione simultáneamente con mensajes muy grandes y muy pequeños.
- Si divide los archivos en fragmentos, puede ajustar el tamaño del fragmento para obtener un rendimiento de mensajería óptimo, pero ahora debe ocuparse de la conservación de la secuencia y reenviar los mensajes que faltan.
- El problema general de agregar, reemplazar o cambiar el nombre de un archivo de destino con el mismo nombre.
- El problema general de cómo hacer que el archivo esté disponible en el destino de forma transaccional. No quiere que el destinatario agarre la mitad de un archivo.
- Integridad del archivo (FTE comprueba el archivo para asegurarse de que no se modifique en tránsito).
Estos son algunos ejemplos de los problemas para hacerlo de forma general. Sin embargo, si todo lo que necesita es una solución punto por punto de una sola vez, eche un vistazo a SupportPac MA01, el programa Q. Tomará archivos y colocará una línea a la vez en un mensaje o hará que el archivo completo sea un solo mensaje. También se puede usar como una tubería, por lo que es posible tener dos instancias de Q en las que uno canaliza mensajes a una cola y el otro los recupera.
El título de la publicación pregunta si WMQ puede transferir archivos, pero el cuerpo menciona WMQ File Transfer Edition. No está claro a qué se refiere. ¿Puedes aclarar? ¿Estás tratando de escribir código para poner archivos en mensajes? ¿O está intentando conducir transferencias FTE desde el código? –
Lo siento por ser engañoso. No tengo WMQ File Transfer Edition, solo quiero escribir código para poner archivos en mensajes. Ahora uso FileStream para leer el contenido del archivo como una cadena, luego pongo la cadena en un mensaje. ¿De alguna manera mejor? ¡Gracias! –