Usage(Configure configure) { #region EndpointNameCode // To customize the endpoint name via code using the DefineEndpointName method, // it is important to call it first, right after the With() configuration entry point. configure.DefineEndpointName("MyEndpoint"); #endregion }
public void ConfigureBus(Configure config, string endpointName, IWindsorContainer container) { config.DefineEndpointName(endpointName); config.CastleWindsorBuilder(container); //config.UseNHibernateTimeoutPersister(); config.UseNHibernateSubscriptionPersister(); config.DisableTimeoutManager(); config.DefiningCommandsAs(t => t.GetInterfaces().Contains(typeof(Contracts.ICommand))); config.DefiningEventsAs(t => t.GetInterfaces().Contains(typeof(Contracts.IEvent))); config.SetEndpointSLA(TimeSpan.FromSeconds(600)); config.UnicastBus(); }
protected virtual void ConfigureNServiceBus(Configure configuration, IWindsorContainer container) { Func<string> connectionStringFactory = GetConnectionStringFactory("NServiceBus.Persistence"); configuration .DefineEndpointName("Ddd.Template.Domain") .CastleWindsorBuilder(container) .JsonSerializer() .MsmqTransport() .IsTransactional(true) .PurgeOnStartup(false) .RavenPersistence(connectionStringFactory, "Ddd.Template.NServiceBus.domain") .RunTimeoutManager() .UseRavenTimeoutPersister() .RavenSubscriptionStorage() .UnicastBus() .CreateBus() .Start(); }
private void ConfigureNServiceBus(Configure configuration, IWindsorContainer container) { Func<string> connectionStringFactory = GetConnectionStringFactory("NServiceBus.Persistence"); var nServiceBusDbName = ConfigurationManager.AppSettings["NServiceBus.Persistence.RavenDbName"]; configuration .DefineEndpointName("Ddd.Template.Denormalizer") .CastleWindsorBuilder(container) .RavenPersistence(connectionStringFactory, nServiceBusDbName) .RunTimeoutManager() .UseRavenTimeoutPersister() .JsonSerializer() .MsmqTransport() .IsTransactional(true) .PurgeOnStartup(false) .UnicastBus() .CreateBus() .Start(); }
static void Main() { Configure.Serialization.Json(); #region ContainerConfiguration Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.StructureMap"); Container container = new Container(x => x.For <MyService>().Use(new MyService())); configure.StructureMapBuilder(container); #endregion configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); IBus bus = configure.UnicastBus() .CreateBus() .Start(() => Configure.Instance.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("\r\nPress any key to stop program\r\n"); Console.ReadKey(); }
static void Main() { Configure configure = Configure.With(); configure.DefineEndpointName("Samples.Unobtrusive.Client"); configure.Log4Net(); configure.DefaultBuilder(); configure.ApplyCustomConventions(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); configure.RijndaelEncryptionService(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus .Start(() => configure.ForInstallationOn <Windows>().Install()); CommandSender.Start(bus); } }
static void Main() { Configure.Serialization.Json(); #region ConfigureLogging Configure configure = Configure.With(); //Configures a ConsoleAppender with a threshold of Debug configure.Log4Net(); configure.DefineEndpointName("Samples.Logging.Default"); #endregion configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport<Msmq>(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn<Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Console.Title = "Samples.MessageDurability.Sender"; Configure.Serialization.Json(); #region non-transactional Configure.Transactions.Disable(); #endregion Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.MessageDurability.Sender"); configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); bus.Send("Samples.MessageDurability.Receiver", new MyMessage()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { #region ContainerConfiguration Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.StructureMap"); Container container = new Container(x => x.For <MyService>().Use(new MyService())); configure.StructureMapBuilder(container); #endregion configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Configure.Serialization.Json(); #region server Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.Scaleout.Server"); configure.DefaultBuilder(); configure.RunMSMQDistributor(withWorker: false); #endregion configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Configure.Serialization.Json(); Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.MessageMutators"); configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); #region ComponentRegistartion configure.Configurer.ConfigureComponent <ValidationMessageMutator>(DependencyLifecycle.InstancePerCall); configure.Configurer.ConfigureComponent <TransportMessageCompressionMutator>(DependencyLifecycle.InstancePerCall); #endregion using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Runner.Run(bus); } }
static void Main() { Configure.Serialization.Json(); Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Sample.PipelineStream.Sender"); configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); #region configure-stream-storage configure.SetStreamStorageLocation("..\\..\\..\\storage"); #endregion using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { var bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Run(bus); } }
static void Main() { Console.Title = "Samples.FaultTolerance.Server"; Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.FaultTolerance.Server"); configure.DefaultBuilder(); // To disable second level retries(SLR), uncomment the following line. SLR is enabled by default. //configure.DisableSecondLevelRetries(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus .Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Configure.Serialization.Json(); Configure configure = Configure.With(); #region ConfigureAppender configure.Log4Net <MyConsoleAppender>(appender => { appender.Color = ConsoleColor.Green; }); #endregion configure.DefineEndpointName("Samples.Log4Net.Appender"); configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("\r\nPress any key to stop program\r\n"); Console.ReadKey(); } }
static void Main() { Console.Title = "Samples.RabbitMQ.Simple"; Configure.Serialization.Json(); #region ConfigureRabbit Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.RabbitMQ.Simple"); configure.DefaultBuilder(); configure.UseTransport <NServiceBus.RabbitMQ>(() => "host=localhost"); #endregion configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.FaultTolerance.Client"); configure.DefaultBuilder(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus .Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press enter to send a message"); Console.WriteLine("Press any key to exit"); while (true) { ConsoleKeyInfo key = Console.ReadKey(); if (key.Key != ConsoleKey.Enter) { return; } Guid id = Guid.NewGuid(); bus.Send("Samples.FaultTolerance.Server", new MyMessage { Id = id }); Console.WriteLine("Sent a new message with id: {0}", id.ToString("N")); } } }
static void Main() { Console.Title = "Samples.ErrorHandling.WithoutSLR"; #region DisableSLR Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.ErrorHandling.WithoutSLR"); configure.DefaultBuilder(); configure.DisableSecondLevelRetries(); #endregion configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus .Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press enter to send a message that will throw an exception."); Console.WriteLine("Press any key to exit"); while (true) { ConsoleKeyInfo key = Console.ReadKey(); if (key.Key != ConsoleKey.Enter) { return; } MyMessage m = new MyMessage { Id = Guid.NewGuid() }; bus.SendLocal(m); } } }
static void Main() { Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.Versioning.V2Publisher"); configure.DefaultBuilder(); configure.JsonSerializer(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press enter to publish a message"); Console.WriteLine("Press any key to exit"); while (true) { ConsoleKeyInfo key = Console.ReadKey(); Console.WriteLine(); if (key.Key != ConsoleKey.Enter) { return; } bus.Publish <V2.Messages.ISomethingHappened>(sh => { sh.SomeData = 1; sh.MoreInfo = "It's a secret."; }); Console.WriteLine("Published event."); } } }
static void Main() { Console.Title = "Samples.StartupShutdown"; #region Program Logger.WriteLine("Starting configuration"); Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.StartupShutdown"); configure.DefaultBuilder(); configure.MsmqTransport(); Logger.WriteLine("Calling Configure.UnicastBus"); ConfigUnicastBus unicastBus = configure.UnicastBus(); Logger.WriteLine("Calling ConfigUnicastBus.CreateBus"); using (IStartableBus startableBus = unicastBus.CreateBus()) { Logger.WriteLine("Calling IStartableBus.Start"); IBus bus = startableBus .Start(() => { Logger.WriteLine("Calling ForInstallationOn.Install"); configure.ForInstallationOn <Windows>().Install(); }); //simulate some activity Thread.Sleep(500); Logger.WriteLine("Bus is processing messages"); Logger.WriteLine("Calling IStartableBus.Dispose"); } Logger.WriteLine("Finished"); #endregion Console.WriteLine("Press any key to exit"); Console.ReadKey(); }
static void Main() { Console.Title = "Samples.UsernameHeader.Endpoint2"; Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.UsernameHeader.Endpoint2"); configure.DefaultBuilder(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.RunTimeoutManagerWithInMemoryPersistence(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); #region manipulate-principal ConfigUnicastBus unicastBus = configure.UnicastBus(); unicastBus.ImpersonateSender(true); using (IStartableBus startableBus = unicastBus.CreateBus()) { #endregion startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
static void Main() { Configure.Serialization.Json(); #region ContainerConfiguration Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.Spring"); GenericApplicationContext applicationContext = new GenericApplicationContext(); applicationContext.ObjectFactory.RegisterSingleton("MyService", new MyService()); configure.SpringFrameworkBuilder(applicationContext); #endregion configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); IBus bus = configure.UnicastBus() .CreateBus() .Start(() => Configure.Instance.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("\r\nPress any key to stop program\r\n"); Console.ReadKey(); }
static void Main() { #region self-hosting Configure configure = Configure.With(); configure.DefineEndpointName("Samples.SelfHosting"); configure.Log4Net(); configure.DefaultBuilder(); configure.Sagas(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); IBus bus = configure.UnicastBus() .CreateBus() .Start(() => Configure.Instance.ForInstallationOn <Windows>().Install()); #endregion Console.WriteLine("\r\nBus created and configured; press any key to stop program\r\n"); Console.ReadKey(); }
static void Main() { #region startbus Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.OwinPassThrough"); configure.DefaultBuilder(); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); using (StartOwinHost(bus)) { Console.WriteLine("Press any key to exit"); Console.ReadKey(); } } #endregion }
static void Main() { Console.Title = "Samples.Scaleout.Worker1"; #region Workerstartup Configure configure = Configure.With(); configure.Log4Net(); configure.DefineEndpointName("Samples.Scaleout.Worker1"); configure.DefaultBuilder(); configure.EnlistWithDistributor(); #endregion Address.InitializeLocalAddress("Samples.Scaleout.Worker1"); configure.MsmqTransport(); configure.InMemorySagaPersister(); configure.InMemorySubscriptionStorage(); configure.JsonSerializer(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); Console.WriteLine("Press any key to exit"); Console.ReadKey(); } }
protected override void OnStart(string[] args) { #region logging PatternLayout layout = new PatternLayout { ConversionPattern = "%d %-5p %c - %m%n" }; layout.ActivateOptions(); ConsoleAppender appender = new ConsoleAppender { Layout = layout, Threshold = Level.Info }; appender.ActivateOptions(); BasicConfigurator.Configure(appender); SetLoggingLibrary.Log4Net(); #endregion #region create-config Configure configure = Configure.With(); #endregion #region endpoint-name configure.DefineEndpointName("Samples.FirstEndpoint"); #endregion #region container ContainerBuilder builder = new ContainerBuilder(); //configure your custom services //builder.RegisterInstance(new MyService()); IContainer container = builder.Build(); configure.AutofacBuilder(container); #endregion #region serialization Configure.Serialization.Json(); #endregion #region transport configure.UseTransport <Msmq>(); #endregion #region sagas Configure.Features.Enable <Sagas>(); #endregion #region persistence configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); #endregion #region critical-errors Configure.Instance.DefineCriticalErrorAction((errorMessage, exception) => { // Log the critical error logger.Fatal(string.Format("CRITICAL: {0}", errorMessage), exception); // Kill the process on a critical error Environment.FailFast(string.Format("The following critical error was encountered by NServiceBus:\n{0}\nNServiceBus is shutting down.", errorMessage), exception); }); #endregion #region start-bus bus = configure.UnicastBus() .CreateBus() .Start(() => configure.ForInstallationOn <Windows>().Install()); #endregion }
static void Main() { #region ConfigureLog4Net PatternLayout layout = new PatternLayout { ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n" }; layout.ActivateOptions(); ColoredConsoleAppender consoleAppender = new ColoredConsoleAppender { Threshold = Level.Info, Layout = layout }; // Note that no consoleAppender.ActivateOptions(); is required since NSB 4 does this internally RollingFileAppender fileAppender = new RollingFileAppender { DatePattern = "yyyy-MM-dd'.txt'", RollingStyle = RollingFileAppender.RollingMode.Composite, MaxFileSize = 10 * 1024 * 1024, MaxSizeRollBackups = 10, LockingModel = new FileAppender.MinimalLock(), StaticLogFileName = false, File = @"nsblog2", Layout = layout, AppendToFile = true, Threshold = Level.Info, }; // Note that no fileAppender.ActivateOptions(); is required since NSB 4 does this internally BasicConfigurator.Configure(fileAppender, consoleAppender); #endregion Configure.Serialization.Json(); #region UseConfig Configure configure = Configure.With(); configure.DefineEndpointName("Samples.Logging.Log4NetCustom"); //Pass the appenders to NServiceBus configure.Log4Net(consoleAppender); configure.Log4Net(fileAppender); #endregion configure.DefaultBuilder(); configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); configure.UseTransport <Msmq>(); using (IStartableBus startableBus = configure.UnicastBus().CreateBus()) { IBus bus = startableBus.Start(() => configure.ForInstallationOn <Windows>().Install()); bus.SendLocal(new MyMessage()); Console.WriteLine("\r\nPress any key to stop program\r\n"); Console.ReadKey(); } }
protected override void OnStart(string[] args) { #region logging PatternLayout layout = new PatternLayout { ConversionPattern = "%d %-5p %c - %m%n" }; layout.ActivateOptions(); ConsoleAppender appender = new ConsoleAppender { Layout = layout, Threshold = Level.Info }; appender.ActivateOptions(); BasicConfigurator.Configure(appender); SetLoggingLibrary.Log4Net(); #endregion #region create-config Configure configure = Configure.With(); configure.DefineEndpointName("Samples.FirstEndpoint"); #endregion #region container ContainerBuilder builder = new ContainerBuilder(); //configure custom services //builder.RegisterInstance(new MyService()); IContainer container = builder.Build(); configure.AutofacBuilder(container); #endregion #region serialization configure.JsonSerializer(); #endregion #region transport configure.MsmqTransport(); #endregion #region sagas configure.Sagas(); #endregion #region persistence configure.InMemorySagaPersister(); configure.UseInMemoryTimeoutPersister(); configure.InMemorySubscriptionStorage(); #endregion #region critical-errors Configure.Instance.DefineCriticalErrorAction(() => { //Write log entry in version 3 since this is not done by default. logger.Fatal("CRITICAL Error"); // Kill the process on a critical error string output = "Critical error was encountered by NServiceBus:\nNServiceBus is shutting down."; Environment.FailFast(output); }); #endregion #region start-bus bus = configure.UnicastBus() .CreateBus() .Start(() => configure.ForInstallationOn <Windows>().Install()); #endregion bus.SendLocal(new MyMessage()); }