Hi, I am new to ActiveMQ and I am trying to write a basic publisher and listener.
I have used several code formats and can always send the initial message to the listener without any issue but no matter what I try, I can not get a response. The response from the listener does not fail, but it is never received by my publisher. When I check the ActiveMQ queues I can see what looks like the temp queue with a pending message but for some reason my comsumer.receive always timesout. Any help would be appreciated. My pulbisher code is: //Create the Connection var connectionFactory = new ConnectionFactory(ListenerAddress); using (var connection = connectionFactory.CreateConnection()) { using (var session = connection.CreateSession(AcknowledgementMode.ClientAcknowledge)) { //var queue = session.CreateTemporaryQueue(); //using (var consumer = session.CreateConsumer(queue)) //{ IDestination destination = SessionUtil.GetDestination(session, QueueName); ITemporaryQueue replyTo = session.CreateTemporaryQueue(); using (IMessageConsumer consumer = session.CreateConsumer(destination)) using (IMessageProducer producer = session.CreateProducer(destination)) { IMessage request = session.CreateTextMessage(MessageText); request.NMSReplyTo = replyTo; producer.Send(request); request = consumer.Receive(TimeSpan.FromMilliseconds(8000)); using (IMessageProducer responder = session.CreateProducer(request.NMSReplyTo)) { IMessage response = session.CreateTextMessage("RESPONSE"); responder.Send(response); } } using (IMessageConsumer consumer = session.CreateConsumer(replyTo)) { ITextMessage response = consumer.Receive(TimeSpan.FromMilliseconds(3000)) as ITextMessage; } } } _myExceptionHandler.HandleException(ExceptionLevels.ExceptionLevel.Debug, "Message sent successfully"); return true; } My Listener code is: public void OnMessage(IMessage message) { try { // Found a new message event Message = message as ITextMessage; // Process the received message here // Forward the message to the Observers PublishMesssage(Message.Text); // Lets process the response using (session = connection.CreateSession()) { // We are replying to the queue stored in NMSReplyTo // We will echo the same message back to the sender IDestination destination = message.NMSReplyTo; if (destination != null) { ITextMessage response = session.CreateTextMessage(Message.Text); response.NMSCorrelationID = message.NMSCorrelationID; using (IMessageProducer responder = session.CreateProducer(destination)) { IMessage response2 = session.CreateTextMessage("RESPONSE"); responder.Send(response2); } } Message = null; Semaphore.Set(); } } catch (Exception ex) { _myExceptionHandler.HandleException(ExceptionLevels.ExceptionLevel.Error, ex); } } thanks Dave -- View this message in context: http://activemq.2283324.n4.nabble.com/No-response-being-received-consumer-Receive-always-timeout-tp3653090p3653090.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.