コード例 #1
0
        public void TestMethod1()
        {
            //Use a single queue
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            _startableBus = Configure.With()
               .DefaultBuilder()
               .RijndaelEncryptionService()
               .UseTransport<Msmq>()
               .UnicastBus()
               .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            /**
              * State sent to Saga
              * ***/
            SendCommand command = new SendCommand();
            command.RequestId = new Guid("8b265223-dc9e-4789-a6df-69d19f644ad7");
            command.state = MyMessages.MessageParts.StateCodes.SentMySaga;

            _bus = _startableBus.Start();

            _bus.Send(command);
        }
コード例 #2
0
ファイル: App.xaml.cs プロジェクト: wettsten/EpiFlow
        private void StartBus()
        {
            try
            {
                var myDocumentStore = new DocumentStore { ConnectionStringName = "EpiFlowDB" };

                var busConfiguration = new BusConfiguration();
                busConfiguration.EndpointName("EpiFlow.Messages");
                busConfiguration.UseContainer<StructureMapBuilder>(c => c.ExistingContainer(_container));
                busConfiguration.UseSerialization<JsonSerializer>();
                busConfiguration.UsePersistence<RavenDBPersistence>()
                    .UseDocumentStoreForSubscriptions(myDocumentStore)
                    .UseDocumentStoreForSagas(myDocumentStore)
                    .UseDocumentStoreForTimeouts(myDocumentStore);
                busConfiguration.UseTransport<RabbitMQTransport>();
                busConfiguration.DefineCriticalErrorAction(OnCriticalError);
                busConfiguration.Transactions().DisableDistributedTransactions();

                if (Environment.UserInteractive && Debugger.IsAttached)
                {
                    busConfiguration.EnableInstallers();
                }
                _bus = Bus.Create(busConfiguration);
                _bus.Start();
            }
            catch (Exception exception)
            {
                OnCriticalError("Failed to start the bus.", exception);
            }
        }
コード例 #3
0
 public static void SendMessages(IStartableBus bus)
 {
     var startNew = Stopwatch.StartNew();
     while (startNew.ElapsedMilliseconds < 10000)
     {
         bus.SendLocal(PersonCreater.Create());
     }
     Console.WriteLine(PersonHandler.count);
 }
コード例 #4
0
ファイル: EndpointRunner.cs プロジェクト: afyles/NServiceBus
        public Result Initialize(RunDescriptor run, EndpointBehaviour endpointBehaviour, IDictionary<Type, string> routingTable, string endpointName)
        {
            try
            {
                behaviour = endpointBehaviour;
                scenarioContext = run.ScenarioContext;
                configuration = ((IEndpointConfigurationFactory)Activator.CreateInstance(endpointBehaviour.EndpointBuilderType)).Get();
                configuration.EndpointName = endpointName;

                if (!string.IsNullOrEmpty(configuration.CustomMachineName))
                {
                    NServiceBus.Support.RuntimeEnvironment.MachineNameAction = () => configuration.CustomMachineName;
                }

                //apply custom config settings
                endpointBehaviour.CustomConfig.ForEach(customAction => customAction(config));
                config = configuration.GetConfiguration(run, routingTable);

                if (scenarioContext != null)
                {
                    config.Configurer.RegisterSingleton(scenarioContext.GetType(), scenarioContext);
                    scenarioContext.ContextPropertyChanged += scenarioContext_ContextPropertyChanged;
                }

                bus = config.CreateBus();

                Configure.Instance.ForInstallationOn<Windows>().Install();

                Task.Factory.StartNew(() =>
                    {
                        while (!stopped)
                        {
                            contextChanged.WaitOne(TimeSpan.FromSeconds(5)); //we spin around each 5 s since the callback mechanism seems to be shaky

                            lock (behaviour)
                            {

                                foreach (var when in behaviour.Whens)
                                {
                                    if (executedWhens.Contains(when.Id))
                                        continue;

                                    if(when.ExecuteAction(scenarioContext, bus))
                                        executedWhens.Add(when.Id);
                                }
                            }
                        }
                    });

                return Result.Success();
            }
            catch (Exception ex)
            {
                Logger.Error("Failed to initalize endpoint " + endpointName, ex);
                return Result.Failure(ex);
            }
        }
コード例 #5
0
        public bool Start(HostControl hostControl)
        {
            Log.Info("Starting bridge service...");
            _bus = (IStartableBus) BusFactory.Create();
            _bus.Start();

            Log.Info("Bridge service started.");

            return true;
        }
        protected override void DoSetUp()
        {
            adapter = new BuiltinContainerAdapter();
            stuffToDispose.Add(adapter);

            startableBus = Configure.With(adapter)
                                    .Transport(t => t.UseRabbitMq(ConnectionString, "test-autodelete.input", "error")
                                                     .ManageSubscriptions()
                                                     .AutoDeleteInputQueue())
                                    .CreateBus();
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: ramonsmits/supportcode
        private static void InitBus()
        {
            _startableBus = Configure.With()
                 .DefaultBuilder()
                 .UnicastBus()
                 .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();
        }
コード例 #8
0
        public bool Stop(HostControl hostControl)
        {
            Log.Info("Stopping bridge service...");

            if (_bus != null)
            {
                _bus.Dispose();
                _bus = null;
            }

            Log.Info("Bridge service stopped.");
            return true;
        }
コード例 #9
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.UoWWithChildContainers");

        #region ContainerConfiguration
        Container container = new Container(x =>
        {
            x.For <IDocumentStore>().Use(new DocumentStore
            {
                Url             = "http://localhost:32076",
                DefaultDatabase = "Samples.UoWWithChildContainers"
            }
                                         .Initialize());
            x.For <IDocumentSession>().Use(c => c.GetInstance <IDocumentStore>().OpenSession());
        });

        busConfiguration.UseContainer <StructureMapBuilder>(c => c.ExistingContainer(container));
        #endregion

        #region PipelineRegistration
        busConfiguration.Pipeline.Register <RavenUnitOfWork.Registration>();
        #endregion

        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.EnableInstallers();

        int orderNumber = 1;

        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();

            Console.Out.WriteLine("Press any key to send a message. Press `q` to quit");

            Console.Out.WriteLine("After storing a few orders you can open a browser and view them at http://localhost:32076/studio/index.html#databases/documents?collection=Orders&database=Samples.UoWWithChildContainers");

            while (Console.ReadKey().ToString() != "q")
            {
                bus.SendLocal(new PlaceOrder
                {
                    OrderNumber = string.Format("Order-{0}", orderNumber),
                    OrderValue  = 100
                });

                orderNumber++;
            }
        }
    }
コード例 #10
0
// ReSharper disable RedundantNameQualifier
    public void ConfigureSelfHosted()
    {
        #region saga-configure-self-hosted
        Feature.Enable <Sagas>();
        Configure.Serialization.Xml();
        IStartableBus bus = NServiceBus.Configure.With()
                            .DefaultBuilder()
                            .UseTransport <Msmq>()
                            .UnicastBus()
                            .RavenSagaPersister()
                            .CreateBus();

        #endregion
    }
コード例 #11
0
        public void Simple()
        {
            #region saga-configure

            Configure configure = Configure.With();
            configure.DefaultBuilder();
            configure.MsmqTransport();
            configure.Sagas();
            configure.UnicastBus();
            configure.RavenSagaPersister();
            IStartableBus bus = configure.CreateBus();

            #endregion
        }
コード例 #12
0
        public StaticHeaders()
        {
            Configure configure = Configure.With();

            #region header-static-endpoint

            using (IStartableBus startableBus = configure.UnicastBus().CreateBus())
            {
                IDictionary <string, string> outgoingHeaders = ((IBus)startableBus).OutgoingHeaders;
                outgoingHeaders.Add("AllOutgoing", "ValueAllOutgoing");

                #endregion
            }
        }
コード例 #13
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        public static void Bootstrap()
        {
            _startableBus = Configure.With()
                 .DefineEndpointName("Plexis.Sample.WebService.Input")
                 .Log4Net()
                 .DefaultBuilder()
                 .XmlSerializer("http://plexissample.com")
                 .MsmqTransport()
                 .UnicastBus()
                 .CreateBus();
            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();
        }
コード例 #14
0
        public void Simple()
        {
            #region saga-configure

            Feature.Enable <Sagas>();
            Configure configure = Configure.With();
            configure.DefaultBuilder();
            configure.UseTransport <Msmq>();
            configure.UnicastBus();
            configure.RavenSagaPersister();
            IStartableBus bus = configure.CreateBus();

            #endregion
        }
コード例 #15
0
        void StartEndpoint()
        {
            #region 5to6-endpoint-start
            BusConfiguration busConfiguration = new BusConfiguration();
            //configure the bus

            //Start the endpoint
            IStartableBus startable = Bus.Create(busConfiguration);
            IBus          endpoint  = startable.Start();

            //Shut down the endpoint
            endpoint.Dispose();
            #endregion
        }
コード例 #16
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.Encryption.Endpoint2");
        busConfiguration.RijndaelEncryptionService();
        busConfiguration.UsePersistence <InMemoryPersistence>();
        IStartableBus startableBus = Bus.Create(busConfiguration);

        using (startableBus.Start())
        {
            Console.WriteLine("Press any key to exit");
            Console.ReadLine();
        }
    }
コード例 #17
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            BusConfiguration busConfiguration = new BusConfiguration();
            var container = UnityConfig.GetConfiguredContainer();

            container.RegisterType(typeof(IHandleMessages <>));
            container.RegisterType(typeof(ICommand));
            busConfiguration.UseContainer <UnityBuilder>();
            busConfiguration.UseContainer <UnityBuilder>(c => c.UseExistingContainer(container));
            busConfiguration.UsePersistence <InMemoryPersistence>();
            startableBus = NServiceBus.Bus.Create(busConfiguration);
            bus          = startableBus.Start();
        }
コード例 #18
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Sample.PipelineStream.Sender");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UsePersistence <InMemoryPersistence>();
        #region configure-stream-storage
        busConfiguration.SetStreamStorageLocation("..\\..\\..\\storage");
        #endregion
        busConfiguration.EnableInstallers();
        bus = Bus.Create(busConfiguration);
        bus.Start();
        Run();
    }
コード例 #19
0
ファイル: Program.cs プロジェクト: yuxuac/docs.particular.net
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.MessageBodyEncryption.Endpoint2");
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.RegisterMessageEncryptor();
        IStartableBus startableBus = Bus.Create(busConfiguration);

        using (startableBus.Start())
        {
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #20
0
ファイル: Program.cs プロジェクト: jakobt/docs.particular.net
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("StepByStep.Ordering.Client");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence <InMemoryPersistence>();

        using (IStartableBus startableBus = Bus.Create(busConfiguration))
        {
            var bus = startableBus.Start();
            SendOrder(bus);
        }
    }
コード例 #21
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Sample.DataBus.Sender");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UseDataBus <FileShareDataBus>().BasePath(BasePath);
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Run(bus);
        }
    }
コード例 #22
0
        void EndpointConfiguration(BusConfiguration busConfiguration)
        {
            #region EnableDisableFeatures
            // enable delayed delivery feature since SLR relies on it
            busConfiguration.EnableFeature <DelayedDeliveryFeature>();

            // this is not required if the feature uses EnableByDefault()
            busConfiguration.EnableFeature <SecondLevelRetries>();

            // we can disable features we won't use
            busConfiguration.DisableFeature <Sagas>();

            IStartableBus bus = Bus.Create(busConfiguration);
            #endregion
        }
コード例 #23
0
 static void Main()
 {
     Console.Title = "Samples.Serialization.Xml";
     #region config
     Configure configure = Configure.With();
     configure.Log4Net();
     configure.DefineEndpointName("Samples.Serialization.Xml");
     configure.DefaultBuilder();
     // this is optional since Xml is the default serializer
     configure.XmlSerializer();
     // register the mutator so the the message on the wire is written
     configure.Configurer
     .ConfigureComponent <MessageBodyWriter>(DependencyLifecycle.InstancePerCall);
     #endregion
     configure.MsmqTransport();
     configure.InMemorySagaPersister();
     configure.RunTimeoutManagerWithInMemoryPersistence();
     configure.InMemorySubscriptionStorage();
     using (IStartableBus startableBus = configure.UnicastBus().CreateBus())
     {
         IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install());
         #region message
         CreateOrder message = new CreateOrder
         {
             OrderId    = 9,
             Date       = DateTime.Now,
             CustomerId = 12,
             OrderItems = new List <OrderItem>
             {
                 new OrderItem
                 {
                     ItemId   = 6,
                     Quantity = 2
                 },
                 new OrderItem
                 {
                     ItemId   = 5,
                     Quantity = 4
                 },
             }
         };
         bus.SendLocal(message);
         #endregion
         Console.WriteLine("Order Sent");
         Console.WriteLine("Press any key to exit");
         Console.ReadKey();
     }
 }
コード例 #24
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        private void ConfigureStartableBus()
        {
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            startableBus = Configure.With()
                .DefaultBuilder()
                .DefiningMessagesAs(t => t.Namespace == "Messages")
                .UseTransport<Msmq>()
                .PurgeOnStartup(true)
                .UnicastBus()
                .RunHandlersUnderIncomingPrincipal(false)
                .RijndaelEncryptionService()
                .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();
        }
コード例 #25
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Sample.DataBus.Receiver");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UseDataBus <FileShareDataBus>().BasePath(BasePath);
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("\r\nPress enter key to stop program\r\n");
            Console.Read();
        }
    }
コード例 #26
0
ファイル: Program.cs プロジェクト: jakobt/docs.particular.net
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.Gateway.RemoteSite");
        busConfiguration.EnableInstallers();
        busConfiguration.EnableFeature <Gateway>();
        busConfiguration.UsePersistence <InMemoryPersistence>();

        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("\r\nPress any key to stop program\r\n");
            Console.ReadKey();
        }
    }
コード例 #27
0
    static void Main()
    {
        LogManager.Use <DefaultFactory>().Level(LogLevel.Info);
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.PubSub.MyPublisher");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        IStartableBus startableBus = Bus.Create(busConfiguration);

        using (IBus bus = startableBus.Start())
        {
            Start(bus);
        }
    }
コード例 #28
0
ファイル: Program.cs プロジェクト: jakobt/docs.particular.net
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("StepByStep.Ordering.Server");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence <InMemoryPersistence>();

        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("To exit press 'Ctrl + C'");
            Console.ReadLine();
        }
    }
コード例 #29
0
    static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Sample.PipelineStream.Receiver");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.SetStreamStorageLocation("..\\..\\..\\storage");
        busConfiguration.EnableInstallers();
        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("\r\nPress enter key to stop program\r\n");
            Console.Read();
        }
    }
コード例 #30
0
ファイル: Program.cs プロジェクト: jakobt/docs.particular.net
    private static void Main()
    {
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.CustomChecks.Monitor3rdParty");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence <InMemoryPersistence>();

        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("\r\nPress any key to stop program\r\n");
            Console.ReadKey();
        }
    }
コード例 #31
0
        void Callbacks()
        {
            #region sqlserver-config-callbacks 2

            BusConfiguration busConfiguration = new BusConfiguration();
            IStartableBus    bus      = Bus.Create(busConfiguration);
            ICallback        callback = bus.Send(new Request());
            callback.Register(ProcessResponse);
            #endregion

            #region sqlserver-config-callbacks-reply 2

            bus.Return(42);

            #endregion
        }
コード例 #32
0
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            if(_configure == null)
               _configure = Configure.WithWeb()
                  .DefaultBuilder()
                  .Log4Net(new AzureAppender())
                  .AzureConfigurationSource()
                  .AzureMessageQueue()
                  .JsonSerializer()
                  .UnicastBus()
                  .LoadMessageHandlers()
                  .IsTransactional(true)
                  .CreateBus();

               Bus = StartBus.Value;
        }
コード例 #33
0
ファイル: Global.asax.cs プロジェクト: Bishbulb/NServiceBus
        protected void Application_Start(object sender, EventArgs e)
        {
            Orders = new List <MyMessages.Order>();

            _configure = Configure.WithWeb()
                         .DefaultBuilder()
                         //.Log4Net(new AzureAppender())
                         .AzureConfigurationSource()
                         .AppFabricMessageQueue()
                         .JsonSerializer()
                         .UnicastBus()
                         .LoadMessageHandlers()
                         .IsTransactional(true)
                         .CreateBus()
            ;
        }
コード例 #34
0
ファイル: Global.asax.cs プロジェクト: remcoros/NServiceBus
        protected void Application_Start(object sender, EventArgs e)
        {
            Orders = new List<MyMessages.Order>();

            _configure = Configure.WithWeb()
                .DefaultBuilder()
                .Log4Net(new AzureAppender())
                .AzureConfigurationSource()
                .AzureMessageQueue()
                .XmlSerializer()
                .UnicastBus()
                .LoadMessageHandlers()
                .IsTransactional(true)
                .CreateBus()
                ;
        }
コード例 #35
0
    static void Main()
    {
        BusConfiguration configuration = new BusConfiguration();

        configuration.EndpointName("Samples.Mvc.Endpoint");
        configuration.UseSerialization <JsonSerializer>();
        configuration.UsePersistence <InMemoryPersistence>();
        configuration.EnableInstallers();

        using (IStartableBus bus = Bus.Create(configuration))
        {
            bus.Start();
            Console.WriteLine("To exit, press Ctrl + C");
            Console.ReadLine();
        }
    }
コード例 #36
0
    static void Main()
    {
        Console.Title = "Samples.Gateway.Headquarters";
        Configure configure = Configure.With();

        configure.Log4Net();
        configure.DefineEndpointName("Samples.Gateway.Headquarters");
        configure.DefaultBuilder();
        configure.RunGatewayWithInMemoryPersistence();
        configure.UseInMemoryGatewayDeduplication();
        configure.InMemorySagaPersister();
        configure.UseInMemoryTimeoutPersister();
        configure.InMemorySubscriptionStorage();
        configure.UseTransport <Msmq>();

        using (IStartableBus startableBus = configure.UnicastBus().CreateBus())
        {
            IBus bus = startableBus
                       .Start(() => configure.ForInstallationOn <Windows>().Install());
            Console.WriteLine("Press 'Enter' to send a message to RemoteSite which will reply.");
            Console.WriteLine("Press any other key to exit");

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey();
                Console.WriteLine();

                if (key.Key != ConsoleKey.Enter)
                {
                    return;
                }
                string[] siteKeys =
                {
                    "RemoteSite"
                };
                PriceUpdated priceUpdated = new PriceUpdated
                {
                    ProductId = 2,
                    NewPrice  = 100.0,
                    ValidFrom = DateTime.Today,
                };
                bus.SendToSites(siteKeys, priceUpdated);

                Console.WriteLine("Message sent, check the output in RemoteSite");
            }
        }
    }
コード例 #37
0
    static void Main()
    {
        Console.Title = "Samples.Encryption.Endpoint1";
        Configure.Serialization.Json();
        Configure configure = Configure.With();

        configure.Log4Net();
        configure.DefineEndpointName("Samples.Encryption.Endpoint1");
        configure.DefaultBuilder();
        #region enableEncryption
        configure.RijndaelEncryptionService();
        #endregion
        configure.UseTransport <Msmq>();
        configure.InMemorySagaPersister();
        configure.UseInMemoryTimeoutPersister();
        configure.InMemorySubscriptionStorage();
        using (IStartableBus startableBus = configure.UnicastBus().CreateBus())
        {
            IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install());

            MessageWithSecretData message = new MessageWithSecretData
            {
                Secret      = "betcha can't guess my secret",
                SubProperty = new MySecretSubProperty
                {
                    Secret = "My sub secret"
                },
                CreditCards = new List <CreditCardDetails>
                {
                    new CreditCardDetails
                    {
                        ValidTo = DateTime.UtcNow.AddYears(1),
                        Number  = "312312312312312"
                    },
                    new CreditCardDetails
                    {
                        ValidTo = DateTime.UtcNow.AddYears(2),
                        Number  = "543645546546456"
                    }
                }
            };
            bus.Send("Samples.Encryption.Endpoint2", message);

            Console.WriteLine("MessageWithSecretData sent. Press any key to exit");
            Console.ReadKey();
        }
    }
コード例 #38
0
    static void Main()
    {
        Console.Title = "Samples.Callbacks.Sender";
        Configure configure = Configure.With();

        configure.Log4Net();
        configure.DefineEndpointName("Samples.Callbacks.Sender");
        configure.DefaultBuilder();
        configure.MsmqTransport();
        configure.InMemorySagaPersister();
        configure.UseInMemoryTimeoutPersister();
        configure.RunTimeoutManagerWithInMemoryPersistence();
        configure.InMemorySubscriptionStorage();
        configure.JsonSerializer();
        using (IStartableBus startableBus = configure.UnicastBus().CreateBus())
        {
            IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install());

            Console.WriteLine("Press 'E' to send a message with an enum return");
            Console.WriteLine("Press 'I' to send a message with an int return");
            Console.WriteLine("Press 'O' to send a message with an object return");
            Console.WriteLine("Press any other key to exit");

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey();
                Console.WriteLine();

                if (key.Key == ConsoleKey.E)
                {
                    SendEnumMessage(bus);
                    continue;
                }
                if (key.Key == ConsoleKey.I)
                {
                    SendIntMessage(bus);
                    continue;
                }
                if (key.Key == ConsoleKey.O)
                {
                    SendObjectMessage(bus);
                    continue;
                }
                return;
            }
        }
    }
コード例 #39
0
        void StartEndpoint()
        {
            #region 5to6-endpoint-start-stop
            BusConfiguration busConfiguration = new BusConfiguration();

            // Custom code before start
            IStartableBus startable = Bus.Create(busConfiguration);
            IBus          endpoint  = startable.Start();
            // Custom code after start

            // Block the process

            // Custom code before stop
            endpoint.Dispose();
            // Custom code after stop
            #endregion
        }
コード例 #40
0
        public Bootstrapper(ServiceBase host = null, HostArguments hostArguments = null, Configure configure = null)
        {
            // .NET default limit is 10. RavenDB in conjunction with transports that use HTTP exceeds that limit.
            ServicePointManager.DefaultConnectionLimit = Settings.HttpDefaultConnectionLimit;

            Settings.ServiceName = DetermineServiceName(host, hostArguments);
            ConfigureLogging();
            var containerBuilder = new ContainerBuilder();
            Container = containerBuilder.Build();

            // Disable Auditing for the service control endpoint
            Configure.Features.Disable<Audit>();
            Configure.Features.Enable<Sagas>();
            Feature.Disable<AutoSubscribe>();
            Feature.Disable<SecondLevelRetries>();

            Configure.Serialization.Json();
            Configure.Transactions.Advanced(t => t.DisableDistributedTransactions().DoNotWrapHandlersExecutionInATransactionScope());

            Feature.EnableByDefault<StorageDrivenPublisher>();
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            var transportType = DetermineTransportType();

            if (configure == null)
            {
                configure = Configure
                    .With(AllAssemblies.Except("ServiceControl.Plugin"));
            }

            bus = configure
                .DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t) || IsExternalContract(t))
                .DefineEndpointName(Settings.ServiceName)
                .AutofacBuilder(Container)
                .UseTransport(transportType)
                .MessageForwardingInCaseOfFault()
                .DefineCriticalErrorAction((s, exception) =>
                {
                    if (host != null)
                    {
                        host.Stop();
                    }
                })
                .UnicastBus()
                .CreateBus();
        }
コード例 #41
0
    static void Main()
    {
        LogManager.Use <DefaultFactory>().Level(LogLevel.Info);
        BusConfiguration busConfiguration = new BusConfiguration();

        busConfiguration.EndpointName("Samples.PubSub.Subscriber1");
        busConfiguration.UseSerialization <JsonSerializer>();
        busConfiguration.UsePersistence <InMemoryPersistence>();
        busConfiguration.EnableInstallers();
        IStartableBus startableBus = Bus.Create(busConfiguration);

        using (startableBus.Start())
        {
            Console.WriteLine("To exit, Ctrl + C");
            Console.ReadLine();
        }
    }
コード例 #42
0
    static void Main()
    {
        #region msmqsubscriber-config
        BusConfiguration busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("MsmqSubscriber");
        busConfiguration.EnableInstallers();
        busConfiguration.UsePersistence <NHibernatePersistence>()
        .ConnectionString(@"Data Source=.\SQLEXPRESS;Initial Catalog=PersistenceForMsmqTransport;Integrated Security=True");

        #endregion
        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
            Console.WriteLine("\r\nPress any key to stop program\r\n");
            Console.ReadKey();
        }
    }
コード例 #43
0
    public MinimumConfiguration()
    {
        #region MinimumConfiguration

        BusConfiguration busConfiguration = new BusConfiguration();

        #endregion MinimumConfiguration

        #region BusDotCreate

        using (IStartableBus bus = Bus.Create(busConfiguration))
        {
            bus.Start();
        }

        #endregion BusDotCreate
    }
コード例 #44
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        protected void Application_Start()
        {
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            _startableBus = Configure.With()
                .DefaultBuilder()
                .UseTransport<Msmq>()
                .UnicastBus()
                .RunGateway() //this line configures the gateway
                 .FileShareDataBus(".\\databus")
                .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();

            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
コード例 #45
0
        protected void Application_Start()
        {
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            _startableBus = Configure.With()
               .DefaultBuilder()
               .RijndaelEncryptionService()
               .UseTransport<Msmq>()
               .UnicastBus()
               .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();

            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
コード例 #46
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

            _startableBus = Configure.With()
                .DefaultBuilder()
                .ForMvc() // no need for this...
                .MsmqTransport()
                .UnicastBus()
                .RunGateway() //this line configures the gateway
                .FileShareDataBus(".\\databus")
                .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();
        }
コード例 #47
0
        protected void Application_Start()
        {
            startableBus = Configure.With()
                .DefaultBuilder()
                .Log4Net(new DebugAppender {Threshold = Level.Warn})
                .UseTransport<Msmq>()
                .PurgeOnStartup(true)
                .UnicastBus()
                .RunHandlersUnderIncomingPrincipal(false)
                .RijndaelEncryptionService()
                .UseNHibernateTimeoutPersister()
                .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            bus = startableBus.Start();

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
コード例 #48
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        protected void Application_Start()
        {
            //NSB
            _startableBus = Configure.With()
                .StructureMapBuilder()
                .RavenPersistence("RavenDB")
                .UseTransport<ActiveMQ>()
                .DefineEndpointName("IS.Argus.Core.Web")
                .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith("Command"))
                .DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith("Event"))
                .DefiningMessagesAs(t => t.Namespace == "Messages")
                .UnicastBus()
                .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();

            _bus = _startableBus.Start();

            AreaRegistration.RegisterAllAreas();

            DependencyResolver.SetResolver(new StructureMapDependencyResolver(ObjectFactory.Container)); // for MVC

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            GlobalHost.DependencyResolver = new StructureMapSignalRDependencyResolver(ObjectFactory.Container); // for signalR
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ObjectFactory.Container.Configure(x =>
            {
                x.For<IControllerActivator>().Use<StructureMapControllerActivator>();
                x.For<IFilterProvider>().Use<StructureMapFilterProvider>();
                x.SetAllProperties(p => p.OfType<IAsyncDocumentSession>());
                x.Scan(scan =>
                {
                    scan.LookForRegistries();
                    scan.Assembly("ProblemTest");
                });
            });
        }
コード例 #49
0
        protected void Application_Start()
        {
            var config = new BusConfiguration();
            config.Conventions()
                    .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("VideoStore") && t.Namespace.EndsWith("Commands"))
                    .DefiningEventsAs(t => t.Namespace != null && t.Namespace.StartsWith("VideoStore") && t.Namespace.EndsWith("Events"))
                    .DefiningMessagesAs(t => t.Namespace != null && t.Namespace.StartsWith("VideoStore") && t.Namespace.EndsWith("RequestResponse"))
                    .DefiningEncryptedPropertiesAs(p => p.Name.StartsWith("Encrypted"));
            config.UseTransport<AzureStorageQueueTransport>();
            config.UsePersistence<InMemoryPersistence>();
            config.PurgeOnStartup(true);
            config.RijndaelEncryptionService();
            config.EnableInstallers();


            startableBus = NServiceBus.Bus.Create(config);
            bus = startableBus.Start();

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
コード例 #50
0
        public Bootstrapper(ServiceBase host = null)
        {
            ConfigureLogging();

            var containerBuilder = new ContainerBuilder();

            Container = containerBuilder.Build();
            
            // Disable Auditing for the service control endpoint
            Configure.Features.Disable<Audit>();
            Configure.Features.Enable<Sagas>();
            Feature.Disable<AutoSubscribe>();
            Feature.Disable<SecondLevelRetries>();

            Configure.Serialization.Json();
            Configure.Transactions.Advanced(t => t.DisableDistributedTransactions());

            Feature.EnableByDefault<StorageDrivenPublisher>();
            Configure.ScaleOut(s => s.UseSingleBrokerQueue());

            var transportType = Type.GetType(Settings.TransportType);
            bus = Configure
                .With(AllAssemblies.Except("ServiceControl.Plugin"))
                .DefineEndpointName("Particular.ServiceControl")
                .AutofacBuilder(Container)
                .UseTransport(transportType)
                .MessageForwardingInCaseOfFault()
                .DefineCriticalErrorAction((s, exception) =>
                {
                    if (host != null)
                    {
                        host.Stop();
                    }
                })
                .UnicastBus()
                .CreateBus();
        }
コード例 #51
0
ファイル: Program.cs プロジェクト: ryanrdl/SagaTimeoutSample
        private static void Main(string[] args)
        {
            using (_bus = BusFactory.GetBus())
            using (_waitHandle = new AutoResetEvent(false))
            {
                var subscriberThread = new Thread(_ => Subscribe(_bus, _waitHandle))
                {
                    IsBackground = false,
                    Name = "Subscriber",
                };
                subscriberThread.Start(_waitHandle);

                var publisherThread = new Thread(_ => Publish(_bus))
                {
                    IsBackground = false,
                    Name = "Publisher"
                };
                publisherThread.Start();
                publisherThread.Join();

                _waitHandle.Set();
                subscriberThread.Join();
            }
        }
コード例 #52
0
        public Result Initialize(RunDescriptor run, EndpointBehavior endpointBehavior,
            IDictionary<Type, string> routingTable, string endpointName)
        {
            try
            {
                behavior = endpointBehavior;
                scenarioContext = run.ScenarioContext;
                configuration =
                    ((IEndpointConfigurationFactory) Activator.CreateInstance(endpointBehavior.EndpointBuilderType))
                        .Get();
                configuration.EndpointName = endpointName;

                if (!string.IsNullOrEmpty(configuration.CustomMachineName))
                {
                    RuntimeEnvironment.MachineNameAction = () => configuration.CustomMachineName;
                }

                //apply custom config settings
                endpointBehavior.CustomConfig.ForEach(customAction => customAction(config));
                config = configuration.GetConfiguration(run, routingTable);

                if (scenarioContext != null)
                {
                    config.Configurer.RegisterSingleton(scenarioContext.GetType(), scenarioContext);
                    scenarioContext.ContextPropertyChanged += scenarioContext_ContextPropertyChanged;
                }

                bus = config.CreateBus();

                Configure.Instance.ForInstallationOn<Windows>().Install();

                stopToken = stopSource.Token;

                if (behavior.Whens.Count == 0)
                {
                    executeWhens = Task.FromResult(0);
                }
                else
                {
                    executeWhens = Task.Factory.StartNew(async () =>
                    {
                        var executedWhens = new List<Guid>();

                        while (!stopToken.IsCancellationRequested)
                        {
                            if (executedWhens.Count == behavior.Whens.Count)
                            {
                                break;
                            }

                            //we spin around each 5s since the callback mechanism seems to be shaky
                            await contextChanged.WaitAsync(TimeSpan.FromSeconds(5), stopToken);

                            if (stopToken.IsCancellationRequested)
                                break;

                            foreach (var when in behavior.Whens)
                            {
                                if (executedWhens.Contains(when.Id))
                                {
                                    continue;
                                }

                                if (when.ExecuteAction(scenarioContext, bus))
                                {
                                    executedWhens.Add(when.Id);
                                }
                            }
                        }
                    }, stopToken).Unwrap();
                }

                return Result.Success();
            }
            catch (Exception ex)
            {
                Logger.Error("Failed to initialize endpoint " + endpointName, ex);
                return Result.Failure(ex);
            }
        }
コード例 #53
0
ファイル: EndpointRunner.cs プロジェクト: xqfgbc/NServiceBus
        public Result Initialize(RunDescriptor run, EndpointBehavior endpointBehavior,
            IDictionary<Type, string> routingTable, string endpointName)
        {
            try
            {
                runDescriptor = run;
                behavior = endpointBehavior;
                scenarioContext = run.ScenarioContext;
                configuration =
                    ((IEndpointConfigurationFactory)Activator.CreateInstance(endpointBehavior.EndpointBuilderType))
                        .Get();
                configuration.EndpointName = endpointName;

                if (!string.IsNullOrEmpty(configuration.CustomMachineName))
                {
                    RuntimeEnvironment.MachineNameAction = () => configuration.CustomMachineName;
                }

                //apply custom config settings
                var busConfiguration = configuration.GetConfiguration(run, routingTable);

                scenarioContext.ContextPropertyChanged += scenarioContext_ContextPropertyChanged;

                endpointBehavior.CustomConfig.ForEach(customAction => customAction(busConfiguration));

                if (configuration.SendOnly)
                {
                    sendOnlyBus = Bus.CreateSendOnly(busConfiguration);
                }
                else
                {
                    bus = Bus.Create(busConfiguration);
                    var transportDefinition = ((UnicastBus)bus).Settings.Get<TransportDefinition>();

                    scenarioContext.HasNativePubSubSupport = transportDefinition.HasNativePubSubSupport;
                }


                executeWhens = Task.Factory.StartNew(() =>
                {
                    while (!stopped)
                    {
                        //we spin around each 5s since the callback mechanism seems to be shaky
                        contextChanged.Wait(TimeSpan.FromSeconds(5));

                        lock (behavior)
                        {
                            foreach (var when in behavior.Whens)
                            {
                                if (executedWhens.Contains(when.Id))
                                {
                                    continue;
                                }

                                if (when.ExecuteAction(scenarioContext, bus))
                                {
                                    executedWhens.Add(when.Id);
                                }
                            }
                        }
                    }
                });

                return Result.Success();
            }
            catch (Exception ex)
            {
                Logger.Error("Failed to initialize endpoint " + endpointName, ex);
                return Result.Failure(ex);
            }
        }
コード例 #54
0
 NsbBus Add(IStartableBus bus)
 {
   var nsbBus = new NsbBus(bus);
   _all.Add(nsbBus);
   return nsbBus;
 }
コード例 #55
0
ファイル: Program.cs プロジェクト: ryanrdl/SagaTimeoutSample
        private static void Subscribe(IStartableBus bus, WaitHandle waitHandle)
        {
            try
            {
                bus.Start();

                //Console.WriteLine("Waiting for messages.");
                waitHandle.WaitOne();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Unhandled ex: {0}", ex);
            }
        }
コード例 #56
0
ファイル: Global.asax.cs プロジェクト: ramonsmits/supportcode
        private void ConfigureStartableBusXP()
        {
            Configure.Transactions.Enable();
            Configure.Serialization.Json();
            Configure.Features.Disable<Sagas>();
            Feature.Disable<XmlSerialization>();

            startableBus = Configure.With(
               AllAssemblies.Matching("Messages.dll").And("Handlers.dll"))
               // .DefineEndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"])
               .DefaultBuilder()
               .DefiningMessagesAs(t => t.Namespace == "Messages")
               .RavenSubscriptionStorage()
               .UseTransport<Msmq>()
               .PurgeOnStartup(false)
               .UnicastBus()
               .RunHandlersUnderIncomingPrincipal(false)
               .CreateBus();

            Configure.Instance.ForInstallationOn<Windows>().Install();
        }
コード例 #57
0
 private static void StartBus(BusConfiguration busConfiguration)
 {
     bus = Bus.Create(busConfiguration);
     bus.Start();
 }
コード例 #58
0
ファイル: NsbBus.cs プロジェクト: machine/machine.mta
 public NsbBus(IStartableBus startableBus)
 {
   _startableBus = startableBus;
 }