Question

Je lis cette article

Et encore ne comprenait pas la notion de la façon dont les sujets de travaux dans MQ. Dans JMS, je sais que vous pouvez publier un message sur un sujet, et afin de recevoir un message de celui-ci, vous devez d'abord de vous abonner à (en utilisant le nom de l'abonnement à la phase de réception).

Comment est-il travailler dans MQ? Je veux écrire un scénario simple (comme dans JMS):

  • 1. Publier sur un sujet
  • 2. Recevoir à partir d'un sujet - qui échouera (je ne suis pas encore abonné)
  • 3. Inscrivez-vous
  • 4. Recevoir - rien à recevoir car je me suis inscrit après Publish
  • 5. Publish
  • 6. Recevoir - succès

    Un exemple de code (.NET) serait utile

    Guy

        
  • Était-ce utile?

    La solution

    Avez-vous regardé le code échantillon inclus? Dans une installation par défaut il se trouve à l'adresse:
    C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samples

    Le programme MQPubSubSample.cs illustre à la fois les abonnements durables et non durables pour le code managé et non géré. Dans chaque cas, il s'y abonne, publie alors, mais vous pouvez facilement modifier à votre cas d'utilisation de la publication / abonnement / recevoir / publier / recevoir comme décrit dans la question. (Vous ne serez pas en mesure de recevoir d'un sujet auquel vous n'êtes pas encore inscrit, cependant.)

    Voici une des sections du code exemple:

      // 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());
      }
    

    Vos références question JMS à titre d'exemple. S'il vous plaît être conscient que vous avez la possibilité d'utiliser IBM XMS - Message Service client extensible pour .Net. XMS implémente l'API JMS sur .Net avec WMQ, WMB ou WAS comme le transport de sorte que vous pouvez utiliser le code JMS avec très peu de modifications. message service à la clientèle pour .Net 2.0.0 manuel décrit l'offre :


    Message service à la clientèle pour .NET Un service de messagerie client pour .NET fournit une application interface de programmation (API) appelée XMS qui a le même ensemble d'interfaces que l'API Java Message Service (JMS). Un service de messagerie client pour .NET contient une implémentation entièrement gérée de XMS, qui peut être utilisé par tout langage compatible .NET. supports XMS:

    • le style point à point messagerie
    • publish / subscribe messagerie de style
    • Livraison de messages synchrone
    • Livraison asynchrone des messages

    Application Un XMS peut échanger des messages avec les types d'application suivants:

    • Application Un XMS
    • Une application JMS WebSphere MQ
    • Une application native WebSphere MQ
    • Une application JMS qui utilise le fournisseur de messagerie par défaut WebSphere

    Une demande XMS peut se connecter et utiliser les ressources, l'un des serveurs de messagerie suivants:

    • Un gestionnaire de files d'attente WebSphere MQ -. L'application peut se connecter dans les deux fixations ou mode client
    • Un bus d'intégration de services WebSphere -. L'application peut utiliser une connexion TCP / IP directe, ou il peut utiliser le protocole HTTP via TCP / IP
    • Un courtier de WebSphere Event Broker ou WebSphere Message Broker - Les messages sont transportés entre l'application et le courtier en utilisant WebSphere MQ Transport en temps réel et, en fonction de la configuration, les messages peuvent être livrés à l'application à l'aide de WebSphere MQ Multicast Transport.

    En se connectant à un gestionnaire de files d'attente WebSphere MQ, une application XMS peut utiliser WebSphere MQ Enterprise Transport pour communiquer avec un courtier de WebSphere Event Broker ou WebSphere Message Broker. Vous pouvez également, une application XMS peut utiliser un WebSphere MQ publish / subscribe courtier.


    Si vous souhaitez explorer plus loin, l'échantillon XMS le code dans les sous-répertoires ci-dessous réside les échantillons natifs .Net mentionnés plus haut. Les échantillons sont décrits dans la section Utilisation de la XMS la section exemples d'application du manuel.

    Le support Net est intégré dans WMQ comme des v7. Si vous manquez les échantillons alors votre installation client WMQ est de retour niveau ou incomplètement installé. La dernière version 7.0 WMQ Client pour Windows est téléchargeable comme SupportPac MQC7 .

    Le support XMS est livré en SupportPac IA9H .

    Licencié sous: CC-BY-SA avec attribution
    Non affilié à StackOverflow
    scroll top