protected void RunTestDurableConsumer(string topicName, AcknowledgementMode ackMode)
{
SendDurableMessage(topicName);
SendDurableMessage(topicName);
using(IConnection connection = CreateConnection(TEST_CLIENT_AND_CONSUMER_ID))
{
connection.Start();
using(ISession session = connection.CreateSession(ackMode))
{
ITopic topic = SessionUtil.GetTopic(session, topicName);
using(IMessageConsumer consumer = session.CreateDurableConsumer(topic, TEST_CLIENT_AND_CONSUMER_ID, null, false))
{
IMessage msg = consumer.Receive(receiveTimeout);
Assert.IsNotNull(msg, "Did not receive first durable message.");
msg.Acknowledge();
msg = consumer.Receive(receiveTimeout);
Assert.IsNotNull(msg, "Did not receive second durable message.");
msg.Acknowledge();
if(AcknowledgementMode.Transactional == ackMode)
{
session.Commit();
}
}
}
}
}