Domanda

Ho letto questo articolo

E ancora non ha capito il concetto di come argomenti lavora a MQ. In JMS So che è possibile pubblicare un messaggio su un argomento, e al fine di ricevere un messaggio da esso è necessario prima abbonarsi (utilizzando il nome di sottoscrizione nella fase di ricezione).

Come è lavorare in MQ? Voglio scrivere un semplice scenario di (come in JMS):

  • 1. Pubblica ad un argomento
  • 2. ricevere da un argomento - che avrà esito negativo (non sto abbonato ancora)
  • 3. Iscriviti
  • 4. Ricezione - niente da ricevere perché ho sottoscritto dopo il pubblicano
  • 5. Pubblica
  • 6. Ricezione - successo

    Un codice di esempio (NET) sarebbe utile

    Guy

  • È stato utile?

    Soluzione

    Hai guardato il codice di esempio incluso? In un'installazione predefinita risiede a:
    C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samples

    Il programma MQPubSubSample.cs illustra entrambe le sottoscrizioni durevoli e non durevoli per il codice gestito e non gestito. In ogni caso si sottoscrive prima, quindi pubblica, ma è possibile modificare facilmente al vostro caso d'uso di pubblicazione / sottoscrizione / ricezione / pubblicare / ricezione come descritto nella domanda. (Non sarà in grado di ricevere da un argomento a cui non avete ancora sottoscritto, però.)

    Ecco una delle sezioni del codice di esempio:

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

    I tuoi riferimenti domanda JMS come esempio. Si prega di essere consapevole del fatto che si ha la possibilità di utilizzare IBM XMS - Extensible Message Service Client per .Net. implementa XMS JMS API sopra NET con WMQ, WMB o è stato come il trasporto in modo da poter utilizzare il codice JMS con molto poco modifica. Il Message Service Client per .Net 2.0.0 manuale descrive l'offerta :


    Message Service Client per .NET
    Message Service Client per .NET fornisce un Application Programming Interface (API) chiamate XMS che ha lo stesso insieme di interfacce come l'API Java Message Service (JMS). Message Service Client per .NET contiene un'implementazione completamente gestita di XMS, che può essere utilizzato da qualsiasi linguaggio compatibile con .NET. supporti XMS:

    • point-to-point di messaggistica stile
    • publish / subscribe messaging stile
    • la consegna dei messaggi sincrono
    • Asynchronous consegna dei messaggi

    Un applicazione XMS può scambiare messaggi con i seguenti tipi di applicazioni:

    • Un applicazione XMS
    • Un'applicazione WebSphere MQ JMS
    • Un'applicazione nativa WebSphere MQ
    • Un JMS applicazione che sta utilizzando il provider WebSphere messaggistica predefinito

    Un applicazione XMS può connettersi e utilizzare le risorse di, uno qualsiasi dei server di messaggistica seguenti:

    • Un WebSphere MQ gestore code -. L'applicazione può connettersi in modalità binding o client
    • Un WebSphere bus di integrazione del servizio -. L'applicazione può utilizzare una connessione diretta TCP / IP, oppure può utilizzare HTTP su TCP / IP
    • Un broker di WebSphere Broker corsa o WebSphere Message Broker - I messaggi vengono trasportati tra l'applicazione e il broker utilizzando WebSphere MQ Real-Time Transport e, a seconda della configurazione, i messaggi possono essere consegnati alla applicazione utilizzando WebSphere MQ Multicast Transport.

    Per la connessione a un gestore code WebSphere MQ, un'applicazione XMS può utilizzare WebSphere MQ impresa di trasporto per comunicare con un broker di WebSphere Broker corsa o WebSphere Message Broker. In alternativa, un'applicazione XMS può utilizzare un WebSphere MQ publish / subscribe broker.


    Se si desidera esplorare ulteriormente, il campione XMS risiede codice in sottodirectory di sotto dei campioni Net nativi di cui in precedenza. I campioni sono descritte nel Uso della sezione del manuale applicazioni di esempio XMS.

    Il supporto Net è integrata in WMQ come di V7. Se vi manca i campioni allora la vostra installazione client WMQ è tornato a livello o non completamente installato. L'ultima v7.0 WMQ client per Windows è scaricabile come SupportPac MQC7 .

    Il supporto XMS viene fornito come SupportPac IA9H .

    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top