public void Run()
        {
            if (!Configure.Instance.DistributorConfiguredToRunOnThisEndpoint())
                return;

            var dataTransport = new TransactionalTransport
            {
                NumberOfWorkerThreads = NumberOfWorkerThreads,
                IsTransactional = true,
                MessageReceiver = new MsmqMessageReceiver(),
                MaxRetries = 5,
                FailureManager = Builder.Build(MessageFailureManager.GetType()) as IManageMessageFailures
            };

            distributor = new Unicast.Distributor.Distributor
            {
                MessageBusTransport = dataTransport,
                MessageSender = new MsmqMessageSender(),
                WorkerManager = WorkerAvailabilityManager,
                DataTransportInputQueue = InputQueue
            };

            LicenseConfig.CheckForLicenseLimitationOnNumberOfWorkerNodes();

            distributor.Start();
        }
Beispiel #2
0
        public void Init()
        {
            var numberOfThreads = int.Parse(ConfigurationManager.AppSettings["NumberOfWorkerThreads"]);
            var maxRetries = int.Parse(ConfigurationManager.AppSettings["MaxRetries"]);
            var remoteServer = ConfigurationManager.AppSettings["RemoteServer"];

            var externalTransport = new TransactionalTransport
              {
                  NumberOfWorkerThreads = numberOfThreads,
                  MaxRetries = maxRetries,
                  IsTransactional = true,
                  MessageReceiver = new MsmqMessageReceiver()
              };

            var internalTransport = new TransactionalTransport
            {
                NumberOfWorkerThreads = numberOfThreads,
                MaxRetries = maxRetries,
                IsTransactional = true,
                MessageReceiver = new MsmqMessageReceiver()
            };

            var configure = Configure.With().DefaultBuilder();

            configure.Configurer.ConfigureComponent<MsmqSubscriptionStorage>(DependencyLifecycle.SingleInstance)
                .ConfigureProperty(x => x.Queue, "NServiceBus_Proxy_Subscriptions");

            configure.Configurer.ConfigureComponent<MsmqProxyDataStorage>(DependencyLifecycle.SingleInstance)
                .ConfigureProperty(x => x.StorageQueue, "NServiceBus_Proxy_Storage");

            configure.Configurer.ConfigureComponent<Proxy>(DependencyLifecycle.SingleInstance)
                .ConfigureProperty(x => x.RemoteServer, Address.Parse(remoteServer));
            Logger.Info("Proxy configured for remoteserver: " +  remoteServer);

            var proxy = configure.Builder.Build<Proxy>();
            proxy.ExternalTransport = externalTransport;
            proxy.ExternalMessageSender = new MsmqMessageSender();
            proxy.InternalTransport = internalTransport;
            proxy.InternalMessageSender = new MsmqMessageSender();

            var internalQueue = ConfigurationManager.AppSettings["InternalQueue"];
            if (string.IsNullOrEmpty(internalQueue))
                throw new Exception("Required configuration entry 'InternalQueue' is missing.");

            proxy.InternalAddress = Address.Parse(internalQueue);

            var externalQueue = ConfigurationManager.AppSettings["ExternalQueue"];
            if (string.IsNullOrEmpty(externalQueue))
                throw new Exception("Required configuration entry 'ExternalQueue' is missing.");

            proxy.ExternalAddress = Address.Parse(externalQueue);

            proxy.Start();

            Logger.Info("Proxy successfully started");
        }
        public void Init()
        {
            var numberOfThreads = int.Parse(ConfigurationManager.AppSettings["NumberOfWorkerThreads"]);
            var maxRetries = int.Parse(ConfigurationManager.AppSettings["MaxRetries"]);
            var remoteServer = ConfigurationManager.AppSettings["RemoteServer"];

            var externalTransport = new TransactionalTransport
              {
                  NumberOfWorkerThreads = numberOfThreads,
                  MaxRetries = maxRetries,
                  IsTransactional = true,
                  MessageReceiver = new MsmqMessageReceiver()
              };

            var internalTransport = new TransactionalTransport
            {
                NumberOfWorkerThreads = numberOfThreads,
                MaxRetries = maxRetries,
                IsTransactional = true,
                MessageReceiver = new MsmqMessageReceiver()
            };

            var configure = Configure.With().DefaultBuilder();

            configure.Configurer.ConfigureComponent<MsmqSubscriptionStorage>(ComponentCallModelEnum.Singleton)
                .ConfigureProperty(x => x.Queue, "NServiceBus_Proxy_Subscriptions");

            configure.Configurer.ConfigureComponent<MsmqProxyDataStorage>(ComponentCallModelEnum.Singleton)
                .ConfigureProperty(x => x.StorageQueue, "NServiceBus_Proxy_Storage");

            configure.Configurer.ConfigureComponent<Proxy>(ComponentCallModelEnum.Singleton)
                .ConfigureProperty(x => x.RemoteServer, remoteServer);
            Logger.Info("Proxy configured for remoteserver: " +  remoteServer);

            var proxy = configure.Builder.Build<Proxy>();
            proxy.ExternalTransport = externalTransport;
            proxy.ExternalMessageSender = new MsmqMessageSender();
            proxy.InternalTransport = internalTransport;
            proxy.InternalMessageSender = new MsmqMessageSender();

            proxy.InternalAddress = ConfigurationManager.AppSettings["InternalQueue"];
            proxy.ExternalAddress = ConfigurationManager.AppSettings["ExternalQueue"];

            proxy.Start();

            Logger.Info("Proxy successfully started");
        }
        public void Init()
        {
            var dataTransport = new TransactionalTransport
                                    {
                                        NumberOfWorkerThreads = NumberOfWorkerThreads,
                                        IsTransactional = true,
                                        MessageReceiver = new MsmqMessageReceiver()
                                    };

            distributor = new Unicast.Distributor.Distributor
                              {
                                  MessageBusTransport = dataTransport,
                                  MessageSender = new MsmqMessageSender(),
                                  WorkerManager = WorkerAvailabilityManager,
                                  DataTransportInputQueue = InputQueue
                              };
        }
Beispiel #5
0
        public ITransport GetTransport(EventHandler<TransportMessageReceivedEventArgs> onTransportMessageReceived)
        {
            var transport = new TransactionalTransport
            {
                MessageReceiver = new MsmqMessageReceiver(),
                IsTransactional = true,
                NumberOfWorkerThreads = 1,
                MaxRetries = 5,
                FailureManager = new FaultManager
                {
                    ErrorQueue = errorQueue
                }
            };

            transport.TransportMessageReceived += onTransportMessageReceived;

            return transport;
        }
        public void Init()
        {
            var dataTransport = new TransactionalTransport
                                    {
                                        NumberOfWorkerThreads = NumberOfWorkerThreads,
                                        IsTransactional = true,
                                        MessageReceiver = new MsmqMessageReceiver()
                                    };

            distributor = new Unicast.Distributor.Distributor
                              {
                                  MessageBusTransport = dataTransport,
                                  MessageSender = new MsmqMessageSender(),
                                  WorkerManager = WorkerAvailabilityManager,
                                  DataTransportInputQueue = InputQueue
                              };

            var bus = Configure.Instance.Builder.Build<IStartableBus>();
            bus.Started += (x, y) => distributor.Start();
        }
        public void Run()
        {
            if (!Configure.Instance.DistributorConfiguredToRunOnThisEndpoint())
                return;

            var dataTransport = new TransactionalTransport
            {
                NumberOfWorkerThreads = NumberOfWorkerThreads,
                IsTransactional = true,
                MessageReceiver = new MsmqMessageReceiver()
            };

            distributor = new Unicast.Distributor.Distributor
            {
                MessageBusTransport = dataTransport,
                MessageSender = new MsmqMessageSender(),
                WorkerManager = WorkerAvailabilityManager,
                DataTransportInputQueue = InputQueue
            };

            distributor.Start();
        }
        public void Run()
        {
            if (!DistributorSetup.DistributorShouldRunOnThisEndpoint())
                return;

            var dataTransport = new TransactionalTransport
            {
                NumberOfWorkerThreads = NumberOfWorkerThreads,
                IsTransactional = true,
                MessageReceiver = new MsmqMessageReceiver()
            };

            distributor = new Unicast.Distributor.Distributor
            {
                MessageBusTransport = dataTransport,
                MessageSender = new MsmqMessageSender(),
                WorkerManager = WorkerAvailabilityManager,
                DataTransportInputQueue = InputQueue
            };

            var bus = Configure.Instance.Builder.Build<IStartableBus>();
            bus.Started += (obj, ev) => distributor.Start();
        }