public void CopyExistingMessageOntoDifferentQueue_ThisProofsThatMessageDoesNotHaveSessionAfinity()
 {
     using (var producer = new XmsProducerProvider(false))
     {
         producer.SendTestMessage(destination);
     }
     IBM.XMS.IMessage message;
     using (var consumer = new XmsConsumerProvider(false))
     {
         message = consumer.GetConsumer(destination).ReceiveNoWait();
     }
     using (var producer = new XmsProducerProvider(false))
     {
         producer.GetProducer(Target.Error).Send(message);
     }
 }
        private void CreateTestMessagesUsingConcurencyWithDtc(int count)
        {
            var stop = Stopwatch.StartNew();
            using (var provider = new XmsProducerProvider(true))
            {
                var taskFactory = new TaskFactory();

                var tasks = new List<Task>();
                foreach (var i in Enumerable.Range(0, count))
                {
                    var task = taskFactory.StartNew(
                        () =>
                            {
                                using(var scope = new TransactionScope(TransactionScopeOption.Required))
                                {
                                    var producer = provider.GetProducer(destination);
                                    var msg = producer.CreateTextMessage();
                                    msg.Text = "Hello XMS message." + DateTime.Now;
                                    producer.Send(msg);
                                    scope.Complete();
                                }
                            });
                    tasks.Add(task);
                }
                Task.WaitAll(tasks.ToArray());

                var faulted = tasks.Where(x => x.IsFaulted).ToList();

                Assert.That(faulted.Count, Is.EqualTo(0));
            }
            Console.WriteLine("CreateTestMessagesUsingConcurencyWithDtc {0} messages in {1}", count, stop.Elapsed);
        }