Compartir a través de


Extensión de mensajes de gran tamaño de Message Queue Server de BizTalk

La versión nativa de Message Queue Server no puede procesar un mensaje cuyo cuerpo exceda los 4megabytes (MB). Sin embargo, Microsoft BizTalk Server incluye un complemento para la puesta en cola de mensajes nativos que permite procesar mensajes de más de 4 MB. Este complemento se entrega como el archivo Mqrtlarge.dll y expone las interfaces de programación de aplicaciones MQSendLargeMessage y MQReceiveLargeMessage (API) y el modelo COM análogo. Estas funciones se implementan como API estándar de puesta en cola de mensajes, MQSendMessage y MQReceiveMessage respectivamente.

Para participar en intercambios de mensajes de gran tamaño, el equipo de Message Queue Server debe tener instalado el archivo Mqrtlarge.dll, y la aplicación Message Queue Server debe utilizar las interfaces de API de complemento. De lo contrario, se fragmentarán los mensajes completos.

Ubicación en SDK

<Ruta de> instalación\SDK\ Mqrtlarge.dll

Inventario de archivos

En la siguiente tabla se indica el archivo que emplea esta utilidad y se describe su finalidad.

Archivos Descripción
Mqrtlarge.dll Una biblioteca de vínculos dinámicos win32 que expone MQSendLargeMessage y MQReceiveLargeMessage.

Los archivos de encabezado se encuentran en el <directorio Ruta> de instalación\SDK\Include. Nota: Debe instalar BizTalk Server en una versión de 64 bits de Windows para acceder a la versión de 64 bits de Mqrtlarge.dll.

Usar esta utilidad

Utilice el procedimiento siguiente para ejecutar el archivo Mqrtlarge.dll.

Para utilizar el archivo Mqrtlarge.dll

  1. Nota

    En el caso de una solución MSMQ sin BizTalk Server, el MQRTLarge.dll puede seguir funcionando correctamente. Sin embargo, esta no es una configuración recomendada que Microsoft admite y los resultados inesperados pueden producirse si se usan fuera del entorno de BizTalk Server.

    Agregue el archivo Mqrtlarge.dll al equipo que no cuente con una instalación de BizTalk Server. Message Queue Server utiliza el archivo Mqrtlarge.dll para enviar mensajes a BizTalk Server o recibirlos desde éste.

  2. Para tener acceso a las API del archivo Mqrtlarge.dll, agregue una referencia al archivo Mqrtlarge.dll en las aplicaciones que envían mensajes a otros equipos o los reciben de éstos para el extremo de Message Queue Server de BizTalk.

    Comentarios:

    Los mensajes de gran tamaño se envían a las colas estándar de Message Queue Server de BizTalk (también conocido como MSMQ). Sólo debería utilizar las API para mensajes de gran tamaño en dichas colas, aunque no es obligatorio.

    Todavía puede usar MQSendMessage para enviar mensajes a una cola a la que envió mensajes grandes. Del mismo modo, puede usar MQReceiveMessage para recibir mensajes de estas colas, aunque no se recomienda porque puede afectar al rendimiento de la API MQReceiveLargeMessage .

    Para fines de recuperación, se recomienda usar DEAD_LETTER registro en diario.

    Fragmentación

    Generalmente, un mensaje de gran tamaño se fragmentará en diversos mensajes, cada uno con un tamaño inferior a 4 MB. Resulta importante saber que sólo se fragmenta el cuerpo. Las demás propiedades se envían con cada uno de los fragmentos.

    El número de fragmentos se define según el tamaño del mensaje y del tamaño de los fragmentos. El tamaño de los fragmentos puede establecerse automáticamente mediante el archivo Mqrtlarge.dll o la parte correspondiente de Message Queue Server de BizTalk. Las aplicaciones también pueden especificar explícitamente el tamaño de los fragmentos.

    Tenga en cuenta que la extensión de mensajes de gran tamaño requiere la extensión del mensaje mediante la adición de datos internos adicionales de un tamaño constante.

    PROPID_M_EXTENSION

    Puede usar las propiedades PROPID_M_EXTENSION/PROPID_M_EXTENSION_LEN para firmar el mensaje. La firma se compone de 40 bytes (B). En la tabla siguiente se muestran los fragmentos de la firma.

Descripción Size
Identificador único global (GUID) que indica que este mensaje se envió mediante MQSendLargeMessage 16 B
GUID del mensaje: identificador de mensaje único por gran tamaño que es común a todas las partes del mensaje 16 B
Tamaño total mensaje de gran tamaño 4 B
Número de pieza 2 B
Número de partes del mensaje 2 B

La decisión de usar PROPID_M_EXTENSION tiene una implicación adicional. El puente MSMQ-MQSeries de Microsoft Host Integration Server utiliza esta propiedad para pasar una estructura que contiene propiedades que no están asignadas directamente entre mensajes de MQSeries y de Message Queue Server. Las aplicaciones que envían mensajes desde y hacia MQSeries, explícita o implícitamente, utilizan esta estructura. Message Queue Server puede generar confirmaciones cuando se ha recibido un mensaje desde una cola mediante una aplicación de recepción. Las confirmaciones se envían a una cola especificada por la aplicación de envío. En el caso de los mensajes de gran tamaño, esta confirmación se envía únicamente para la última parte del mensaje.

Consulte también

Utilidades del SDK