[
https://issues.apache.org/jira/browse/AMQNET-775?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vidyadhar Parulekar updated AMQNET-775:
---------------------------------------
Description:
Versions used:
Artemis : apache-artemis-2.22.0
Apache.NMS : 1.8.0
Apache.NMS.Activemq : 1.8.0
Following is the code,
using Apache.NMS;
using Apache.NMS.Util;
using NUnit.Framework;
using System.Collections;
[Test]
public void DataMatchActiveMQTest()
{
using (IConnection connection =
GetConnection("activemq:tcp://localhost:61616"))
using (session =
connection.CreateSession(AcknowledgementMode.IndividualAcknowledge))
{
IDestination destinationDlq =
SessionUtil.GetDestination(session, "queue://DLQ");
IDestination destination = SessionUtil.GetDestination(session,
"queue://ArtimesTest");
// Create a consumer and producer
using (IMessageConsumer consumerDlq =
session.CreateConsumer(destinationDlq))
using (IMessageConsumer consumer =
session.CreateConsumer(destination))
using (IMessageProducer producer =
session.CreateProducer(destination))
{
// Start the connection so that messages will be processed.
connection.Start();
producer.DeliveryMode = MsgDeliveryMode.Persistent;
producer.RequestTimeout = receiveTimeout;
consumer.Listener += new MessageListener(OnMessage);
consumerDlq.Listener += new
MessageListener(ConsumerDlq_Listener);
//consumerDlq.Receive();
// Send a message
IObjectMessage request =
session.CreateObjectMessage(GetData());
//session.CreateTextMessage("TextMessage");
session.CreateObjectMessage(GetData());
producer.Send(request);
//Wait for the message
semaphore.WaitOne((int)receiveTimeout.TotalMilliseconds,
true);
}
private void ConsumerDlq_Listener(IMessage message)
{
//message.OriginalDestination is null here. neither we are able to get it
through any other properties
}
private static IConnection GetConnection(string uri)
{
Uri connecturi = new Uri(uri);
Console.WriteLine("About to connect to " + connecturi);
// NOTE: ensure the nmsprovider-activemq.config file exists in the
executable folder.
IConnectionFactory factory = new NMSConnectionFactory (connecturi);
IConnection connection = factory.CreateConnection();
return connection;
}
This was working in the earlier versions of ActiveMq. We are not able to replay
messages using code at a later stageas we are not getting the Original Queue
and address
> NMS library with activemq is missing OriginalDestination when message
> retrieved from DLQ
> ----------------------------------------------------------------------------------------
>
> Key: AMQNET-775
> URL: https://issues.apache.org/jira/browse/AMQNET-775
> Project: ActiveMQ .Net
> Issue Type: Bug
> Reporter: Vidyadhar Parulekar
> Priority: Major
>
> Versions used:
> Artemis : apache-artemis-2.22.0
> Apache.NMS : 1.8.0
> Apache.NMS.Activemq : 1.8.0
> Following is the code,
> using Apache.NMS;
> using Apache.NMS.Util;
> using NUnit.Framework;
> using System.Collections;
> [Test]
> public void DataMatchActiveMQTest()
> {
> using (IConnection connection =
> GetConnection("activemq:tcp://localhost:61616"))
> using (session =
> connection.CreateSession(AcknowledgementMode.IndividualAcknowledge))
> {
>
> IDestination destinationDlq =
> SessionUtil.GetDestination(session, "queue://DLQ");
> IDestination destination =
> SessionUtil.GetDestination(session, "queue://ArtimesTest");
> // Create a consumer and producer
> using (IMessageConsumer consumerDlq =
> session.CreateConsumer(destinationDlq))
> using (IMessageConsumer consumer =
> session.CreateConsumer(destination))
> using (IMessageProducer producer =
> session.CreateProducer(destination))
> {
>
> // Start the connection so that messages will be
> processed.
> connection.Start();
> producer.DeliveryMode = MsgDeliveryMode.Persistent;
> producer.RequestTimeout = receiveTimeout;
> consumer.Listener += new MessageListener(OnMessage);
> consumerDlq.Listener += new
> MessageListener(ConsumerDlq_Listener);
>
> //consumerDlq.Receive();
> // Send a message
> IObjectMessage request =
> session.CreateObjectMessage(GetData());
> //session.CreateTextMessage("TextMessage");
> session.CreateObjectMessage(GetData());
> producer.Send(request);
> //Wait for the message
> semaphore.WaitOne((int)receiveTimeout.TotalMilliseconds,
> true);
> }
>
> private void ConsumerDlq_Listener(IMessage message)
> {
> //message.OriginalDestination is null here. neither we are able to get it
> through any other properties
> }
> private static IConnection GetConnection(string uri)
> {
> Uri connecturi = new Uri(uri);
> Console.WriteLine("About to connect to " + connecturi);
> // NOTE: ensure the nmsprovider-activemq.config file exists in
> the executable folder.
> IConnectionFactory factory = new NMSConnectionFactory
> (connecturi);
> IConnection connection = factory.CreateConnection();
> return connection;
> }
> This was working in the earlier versions of ActiveMq. We are not able to
> replay messages using code at a later stageas we are not getting the Original
> Queue and address
--
This message was sent by Atlassian Jira
(v8.20.7#820007)