On Fri, Sep 28, 2007 at 10:39:37PM +0000, David Holroyd wrote:
> On Wed, Sep 26, 2007 at 11:11:30PM +0000, David Holroyd wrote:
> > I tried to adapt the NMS example code for MSMQ, but it seems to just
> > hangs trying to get the message back from MSMQ.  Under Computer
> > Management, I can see that a public queue gets created, but I've not
> > seen any messages listed there yet.
> 
> So it looks like I have problems because the MSMQ stuff just isn't
> finished?
> 
> I'll try to add some of the missing pieces.

Please see

  https://issues.apache.org/activemq/browse/AMQNET-69

for some alterations that get me a bit further.  Here's a somewhat
working test program:


namespace Test {

        using System;
        using NMS;
        using System.IO;

        public class Bridge {

                public static void Main(string[] args) {

                        IConnectionFactory factory = new 
MSMQ.ConnectionFactory();
                        using (IConnection connection = 
factory.CreateConnection())
                        {
                            Console.WriteLine("Created a connection!");
                            
                            ISession session = connection.CreateSession();
                            
                            IDestination destination = 
session.GetQueue(".\\BAR");
                            Console.WriteLine("Using destination: " + 
destination);
                            
                            // lets create a consumer and producer
                            IMessageConsumer consumer = 
session.CreateConsumer(destination);
                            
                            IMessageProducer producer = 
session.CreateProducer(destination);
                            producer.Persistent = true;
                            
                            // lets send a message
                            MemoryStream reqBuf = new MemoryStream();
                            StreamWriter writer = new StreamWriter(reqBuf);
                            writer.Write("Hello World!");
                            writer.Flush();
                            IBytesMessage request = 
session.CreateBytesMessage(reqBuf.ToArray());
// commented out due to "Identifier is not in the incorrect format."
//                          request.NMSCorrelationID = "abc";
// commented out due to "Object reference not set to an instance of an object.",
//                          request.Properties["NMSXGroupID"] =
//                          "cheese";
//                          request.Properties["myHeader"] = "James";

                            
                            producer.Send(request);
                            Console.WriteLine("msg sent");
                            
                            // lets consume a message
                            IBytesMessage message = 
(IBytesMessage)consumer.Receive();
                            if (message == null)
                            {
                                Console.WriteLine("No message received!");
                            }
                            else
                            {
                                Console.WriteLine("Received message with ID:   
" + message.NMSMessageId);
                                MemoryStream buf = new 
MemoryStream(message.Content);
                                StreamReader reader = new StreamReader(buf);
                                Console.WriteLine("Received message with text: 
" + reader.ReadToEnd());
                            }
                        }

                }
        }
}

-- 
http://david.holroyd.me.uk/

Reply via email to