Pregunta

He leído esta artículo

Y todavía no entendía la noción de cómo funciona temas en MQ. En JMS Sé que se puede publicar un mensaje en un tema, y ??con el fin de recibir un mensaje de ella primero tiene que suscribirse a él (con el nombre de la suscripción en la recepción de fase).

¿Cómo es el trabajo en MQ? Quiero escribir un escenario simple de (como en JMS):

  • 1. Publicar a un tema
  • 2. Recibir de un tema - que se producirá un error (que no estoy suscrito aún)
  • 3. Suscribirse
  • 4. Recibir - nada para recibir desde que suscribí después de la publican
  • 5. Publicar
  • 6. Recibir - éxito

    Un código de ejemplo (NET) sería útil

    Guy

  • ¿Fue útil?

    Solución

    ¿Has mirado en el código de ejemplo incluido? En una instalación por defecto reside en:
    C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samples

    El programa MQPubSubSample.cs ilustra tanto las suscripciones duraderas y no duraderos para el código administrado y no administrado. En cada caso primeras suscribe, a continuación, publica pero se puede modificar fácilmente para su caso de uso de publicación / suscripción / recibir / publicar / recibir como se describe en la pregunta. (Usted no será capaz de recibir de un tema para el cual aún no se ha suscrito, sin embargo.)

    Aquí está una de las secciones del código de ejemplo:

      // Managed/nondurable
      string topicName = DEFAULT_TOPIC_STRING;
      string topicObject = null;
      int openOptionsForGet = MQC.MQSO_CREATE | MQC.MQSO_FAIL_IF_QUIESCING | MQC.MQSO_MANAGED | MQC.MQSO_NON_DURABLE;
      int destType = MQC.MQOT_TOPIC;
    
      try
      { 
        destForGet = mqQMgr.AccessTopic(topicName, topicObject, MQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, openOptionsForGet);
    
        messageForPut = new MQMessage();
        messageForPut.WriteString(DEFAULT_MESSAGE_DATA);
    
        mqQMgr.Put(destType, topicObject, null, topicName, messageForPut);
    
        messageForGet = new MQMessage();
    
        destForGet.Get(messageForGet);
    
        string messageDataFromGet = messageForGet.ReadLine();
    
        if(!DEFAULT_MESSAGE_DATA.Equals(messageDataFromGet))
          Console.WriteLine("Incorrect Message Received.");
    
        destForGet.Close();
      }
      catch(MQException mqE)
      {
        Console.WriteLine("MQException caught. " + mqE.ToString());
      }
    

    Sus referencias interrogación JMS como un ejemplo. Tenga en cuenta que usted tiene la opción de usar IBM XMS - Extensible Message Service Client para .NET. implementos XMS la API JMS sobre .Net con WMQ, WMB O fue como el transporte para que pueda usar el código de JMS con muy pocas modificaciones. El Mensaje Servicio de cliente para .Net 2.0.0 manual de describe la oferta :


    Message Service Client para .NET
    Mensaje de servicio de cliente para .NET proporciona una interfaz de programación de aplicaciones (API) llamados XMS que tiene el mismo conjunto de interfaces como la API de Java Message Service (JMS). Mensaje de servicio de cliente para .NET contiene una implementación totalmente gestionada de XMS, que puede ser utilizado por cualquier lenguaje compatible con .NET. soportes XMS:

    • mensajería estilo de punto a punto
    • publicación / suscripción de mensajería de estilo
    • entrega de mensajes síncrona
    • entrega de mensajes asíncrona

    Una aplicación XMS puede intercambiar mensajes con los siguientes tipos de aplicación:

    • Una aplicación XMS
    • aplicación A WebSphere MQ JMS
    • Una aplicación nativa de WebSphere MQ
    • A JMS aplicación que está usando el proveedor de mensajería por omisión de WebSphere

    Una aplicación XMS puede conectarse y utilizar los recursos de cualquiera de los siguientes servidores de mensajería:

    • Una WebSphere MQ gestor de colas -. La aplicación puede conectarse ya sea en la modalidad de enlaces o de cliente
    • Un bus de integración de servicios de WebSphere -. La aplicación puede utilizar una conexión directa TCP / IP, o puede utilizar HTTP a través de TCP / IP
    • Un corredor de WebSphere Event Broker o WebSphere Message Broker - Los mensajes son transportados entre la aplicación y el corredor usando WebSphere MQ transporte en tiempo real y, dependiendo de la configuración, los mensajes pueden ser entregados a la aplicación utilizando WebSphere MQ Multicast Transporte.

    Al conectarse a un gestor de colas de WebSphere MQ, una aplicación XMS puede utilizar WebSphere MQ empresa de transporte para comunicarse con un agente de WebSphere Event Broker o WebSphere Message Broker. Alternativamente, una aplicación XMS puede utilizar un WebSphere MQ publicación / suscripción corredor.


    Si desea explorar más a fondo, la muestra XMS reside el código en subdirectorios por debajo de las muestras .Net nativos referimos anteriormente. Las muestras se describen en la Uso de la sección del manual Aplicaciones de ejemplo XMS.

    El apoyo está integrado en .Net WMQ como de v7. Si se carece de las muestras a continuación, la instalación de cliente WMQ está de vuelta nivel o incompletamente instalado. La última WMQ Client v7.0 para Windows se puede descargar como SupportPac MQC7 .

    El soporte XMS se entrega como SupportPac IA9H .

    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top