Beispiel #1
0
        public override void Initialize()
        {
            NServiceBus.Configure.Component <CorrelationIdMutatorForBackwardsCompatibilityWithV3>(DependencyLifecycle.InstancePerCall);
            NServiceBus.Configure.Component <MsmqUnitOfWork>(DependencyLifecycle.SingleInstance);
            NServiceBus.Configure.Component <MsmqDequeueStrategy>(DependencyLifecycle.InstancePerCall)
            .ConfigureProperty(p => p.PurgeOnStartup, ConfigurePurging.PurgeRequested);

            var cfg = NServiceBus.Configure.GetConfigSection <MsmqMessageQueueConfig>();

            var settings = new MsmqSettings();

            if (cfg != null)
            {
                settings.UseJournalQueue    = cfg.UseJournalQueue;
                settings.UseDeadLetterQueue = cfg.UseDeadLetterQueue;

                Logger.Warn(Message);
            }
            else
            {
                var connectionString = SettingsHolder.Get <string>("NServiceBus.Transport.ConnectionString");

                if (connectionString != null)
                {
                    settings = new MsmqConnectionStringBuilder(connectionString).RetrieveSettings();
                }
            }

            NServiceBus.Configure.Component <MsmqMessageSender>(DependencyLifecycle.InstancePerCall)
            .ConfigureProperty(t => t.Settings, settings);

            NServiceBus.Configure.Component <MsmqQueueCreator>(DependencyLifecycle.InstancePerCall)
            .ConfigureProperty(t => t.Settings, settings);
        }
        /// <summary>
        /// Initializes a new instance of <see cref="ConfigureTransport"/>.
        /// </summary>
        protected override void Configure(FeatureConfigurationContext context, string connectionString)
        {
            new CheckMachineNameForComplianceWithDtcLimitation()
            .Check();
            context.Container.ConfigureComponent<CorrelationIdMutatorForBackwardsCompatibilityWithV3>(DependencyLifecycle.InstancePerCall);
            context.Container.ConfigureComponent<MsmqUnitOfWork>(DependencyLifecycle.SingleInstance);
            context.Container.ConfigureComponent<MsmqDequeueStrategy>(DependencyLifecycle.InstancePerCall);

            var cfg = context.Settings.GetConfigSection<MsmqMessageQueueConfig>();

            var settings = new MsmqSettings();
            if (cfg != null)
            {
                settings.UseJournalQueue = cfg.UseJournalQueue;
                settings.UseDeadLetterQueue = cfg.UseDeadLetterQueue;

                Logger.Warn(Message);
            }
            else
            {
                if (connectionString != null)
                {
                    settings = new MsmqConnectionStringBuilder(connectionString).RetrieveSettings();
                }
            }

            context.Container.ConfigureComponent<MsmqMessageSender>(DependencyLifecycle.InstancePerCall)
                .ConfigureProperty(t => t.Settings, settings)
                .ConfigureProperty(t => t.SuppressDistributedTransactions, context.Settings.Get<bool>("Transactions.SuppressDistributedTransactions"));

            context.Container.ConfigureComponent<MsmqQueueCreator>(DependencyLifecycle.InstancePerCall)
                .ConfigureProperty(t => t.Settings, settings);
        }
Beispiel #3
0
        /// <summary>
        /// Initializes a new instance of <see cref="ConfigureTransport"/>.
        /// </summary>
        protected override void Configure(FeatureConfigurationContext context, string connectionString)
        {
            new CheckMachineNameForComplianceWithDtcLimitation()
            .Check();
            context.Container.ConfigureComponent <CorrelationIdMutatorForBackwardsCompatibilityWithV3>(DependencyLifecycle.InstancePerCall);
            context.Container.ConfigureComponent <MsmqUnitOfWork>(DependencyLifecycle.SingleInstance);
            context.Container.ConfigureComponent <MsmqDequeueStrategy>(DependencyLifecycle.InstancePerCall);

            var cfg = context.Settings.GetConfigSection <MsmqMessageQueueConfig>();

            var settings = new MsmqSettings();

            if (cfg != null)
            {
                settings.UseJournalQueue    = cfg.UseJournalQueue;
                settings.UseDeadLetterQueue = cfg.UseDeadLetterQueue;

                Logger.Warn(Message);
            }
            else
            {
                if (connectionString != null)
                {
                    settings = new MsmqConnectionStringBuilder(connectionString).RetrieveSettings();
                }
            }

            context.Container.ConfigureComponent <MsmqMessageSender>(DependencyLifecycle.InstancePerCall)
            .ConfigureProperty(t => t.Settings, settings)
            .ConfigureProperty(t => t.SuppressDistributedTransactions, context.Settings.Get <bool>("Transactions.SuppressDistributedTransactions"));

            context.Container.ConfigureComponent <MsmqQueueCreator>(DependencyLifecycle.InstancePerCall)
            .ConfigureProperty(t => t.Settings, settings);
        }
        public void Should_correctly_parse_full_connection_string_with_false()
        {
            const string connectionString = "deadLetter=false;journal=false;cacheSendConnection=false;useTransactionalQueues=false;timeToReachQueue=00:00:30";
            var          parser           = new MsmqConnectionStringBuilder(connectionString);
            var          settings         = parser.RetrieveSettings();

            Assert.AreEqual(false, settings.UseDeadLetterQueue);
            Assert.AreEqual(false, settings.UseJournalQueue);
            Assert.AreEqual(false, settings.UseConnectionCache);
            Assert.AreEqual(false, settings.UseTransactionalQueues);
            Assert.AreEqual(TimeSpan.FromSeconds(30), settings.TimeToReachQueue);
        }
        public void Should_correctly_parse_full_connection_string()
        {
            const string connectionString = "deadLetter=true;journal=true;cacheSendConnection=true;useTransactionalQueues=true;timeToReachQueue=00:00:30";
            var parser = new MsmqConnectionStringBuilder(connectionString);
            var settings = parser.RetrieveSettings();

            Assert.AreEqual(true, settings.UseDeadLetterQueue);
            Assert.AreEqual(true, settings.UseJournalQueue);
            Assert.AreEqual(true, settings.UseConnectionCache);
            Assert.AreEqual(true, settings.UseTransactionalQueues);
            Assert.AreEqual(TimeSpan.FromSeconds(30), settings.TimeToReachQueue);
        }