Ejemplo n.º 1
0
        public IServiceBus Start()
        {
            if (Started)
            {
                throw new ApplicationException(ESBResources.ServiceBusInstanceAlreadyStarted);
            }

            GuardAgainstInvalidConfiguration();

            // cannot be in startup pipeline as some modules may need to observe the startup pipeline
            foreach (var module in Configuration.Modules)
            {
                module.Initialize(this);
            }

            var startupPipeline = new StartupPipeline(this);

            Events.OnPipelineCreated(this, new PipelineEventArgs(startupPipeline));

            startupPipeline.Execute();

            _inboxThreadPool           = startupPipeline.State.Get <IProcessorThreadPool>("InboxThreadPool");
            _controlThreadPool         = startupPipeline.State.Get <IProcessorThreadPool>("ControlInboxThreadPool");
            _outboxThreadPool          = startupPipeline.State.Get <IProcessorThreadPool>("OutboxThreadPool");
            _deferredMessageThreadPool = startupPipeline.State.Get <IProcessorThreadPool>("DeferredMessageThreadPool");

            _started = true;

            return(this);
        }
Ejemplo n.º 2
0
        public IServiceBus Start()
        {
            if (Started)
            {
                throw new ApplicationException(Resources.ServiceBusInstanceAlreadyStarted);
            }

            ConfigurationInvariant();

            var startupPipeline = _pipelineFactory.GetPipeline <StartupPipeline>();

            Started = true; // required for using ServiceBus in OnStarted event

            try
            {
                startupPipeline.Execute();

                _inboxThreadPool           = startupPipeline.State.Get <IProcessorThreadPool>("InboxThreadPool");
                _controlThreadPool         = startupPipeline.State.Get <IProcessorThreadPool>("ControlInboxThreadPool");
                _outboxThreadPool          = startupPipeline.State.Get <IProcessorThreadPool>("OutboxThreadPool");
                _deferredMessageThreadPool = startupPipeline.State.Get <IProcessorThreadPool>("DeferredMessageThreadPool");
            }
            catch
            {
                Started = false;
                throw;
            }

            return(this);
        }
Ejemplo n.º 3
0
        public IServiceBus Start()
        {
            if (Started)
            {
                throw new ApplicationException(ESBResources.ServiceBusInstanceAlreadyStarted);
            }

            GuardAgainstInvalidConfiguration();

            foreach (var module in Configuration.Modules)
            {
                module.Initialize(this);
            }

            var startupPipeline = new StartupPipeline(this);

            Events.OnPipelineCreated(this, new PipelineEventArgs(startupPipeline));

            startupPipeline.Execute();

            inboxThreadPool   = startupPipeline.State.Get <IProcessorThreadPool>("InboxThreadPool");
            controlThreadPool = startupPipeline.State.Get <IProcessorThreadPool>("ControlInboxThreadPool");
            outboxThreadPool  = startupPipeline.State.Get <IProcessorThreadPool>("OutboxThreadPool");

            started = true;

            return(this);
        }
Ejemplo n.º 4
0
        public IEventProcessor Start()
        {
            if (Started)
            {
                return(this);
            }

            foreach (var projectionAggregation in _projectionAggregations.Values)
            {
                projectionAggregation.AddEventTypes();
            }

            _cancellationTokenSource = new CancellationTokenSource();
            _cancellationToken       = _cancellationTokenSource.Token;

            _processorThreadPool =
                new ProcessorThreadPool(
                    "ControlInboxProcessor",
                    _configuration.ProjectionThreadCount,
                    new ProjectionProcessorFactory(_configuration, _pipelineFactory, this)).Start();

            _sequenceNumberTailThread.Start();

            _started = true;

            return(this);
        }
Ejemplo n.º 5
0
        public IEventProcessor Start()
        {
            if (Started)
            {
                return(this);
            }

            _processorThreadPool =
                new ProcessorThreadPool(
                    "ControlInboxProcessor",
                    _configuration.ProjectionThreadCount,
                    new ProjectionProcessorFactory(_configuration, _pipelineFactory, this)).Start();

            _started = true;

            _sequenceNumberTailThread.Start();

            return(this);
        }
Ejemplo n.º 6
0
        public IServiceBus Start()
        {
            if (Started)
            {
                throw new ApplicationException(ESBResources.ServiceBusInstanceAlreadyStarted);
            }

            GuardAgainstInvalidConfiguration();

            foreach (var module in Configuration.Modules)
            {
                module.Initialize(this);
            }

            var startupPipeline = new StartupPipeline(this);

            Events.OnPipelineCreated(this, new PipelineEventArgs(startupPipeline));

            startupPipeline.Execute();

            inboxThreadPool = startupPipeline.State.Get<IProcessorThreadPool>("InboxThreadPool");
            controlThreadPool = startupPipeline.State.Get<IProcessorThreadPool>("ControlInboxThreadPool");
            outboxThreadPool = startupPipeline.State.Get<IProcessorThreadPool>("OutboxThreadPool");
            deferredMessageThreadPool = startupPipeline.State.Get<IProcessorThreadPool>("DeferredMessageThreadPool");

            started = true;

            return this;
        }