in src/Transactions/Program.cs [26:75]
static void Main(string[] args)
{
Console.WriteLine("NMS-AMQP Transactions Example");
var connectionFactory = new NmsConnectionFactory("admin", "admin", "amqp://127.0.0.1:5672");
var connection = connectionFactory.CreateConnection();
connection.ClientId = "TransactionsExampleSender";
var session = connection.CreateSession(AcknowledgementMode.Transactional);
var queue = session.GetQueue("TransactionQueue");
var producer = session.CreateProducer(queue);
for (int i = 1; i <= 5; i++)
{
ITextMessage message = producer.CreateTextMessage($"Message {i}");
producer.Send(message);
Console.WriteLine("Sent message " + i);
}
session.Rollback();
Console.WriteLine("Rollback");
for (int i = 6; i <= 10; i++)
{
ITextMessage message = producer.CreateTextMessage($"Message {i}");
producer.Send(message);
Console.WriteLine("Sent message " + i);
}
session.Commit();
var consumer = session.CreateConsumer(queue);
connection.Start();
for (int i = 0; i < 5; i++)
{
var message = consumer.Receive() as ITextMessage;
Console.WriteLine("Message " + message.Text + " received");
}
Console.ReadKey();
producer.Close();
session.Close();
connection.Close();
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}