private void RegisterRhinoQueuesTransport(AbstractRhinoServiceBusConfiguration c, IBusContainerBuilder b, IServiceLocator l) { var busConfig = c.ConfigurationSection.Bus; var queueManagerConfiguration = new QueueManagerConfiguration(); b.RegisterSingleton<ISubscriptionStorage>(() => (ISubscriptionStorage)new PhtSubscriptionStorage( busConfig.SubscriptionPath, l.Resolve<IMessageSerializer>(), l.Resolve<IReflection>())); b.RegisterSingleton<ITransport>(() => (ITransport)new RhinoQueuesTransport( c.Endpoint, l.Resolve<IEndpointRouter>(), l.Resolve<IMessageSerializer>(), c.ThreadCount, busConfig.QueuePath, c.IsolationLevel, c.NumberOfRetries, busConfig.EnablePerformanceCounters, l.Resolve<IMessageBuilder<MessagePayload>>(), queueManagerConfiguration)); b.RegisterSingleton<IMessageBuilder<MessagePayload>>(() => (IMessageBuilder<MessagePayload>)new RhinoQueuesMessageBuilder( l.Resolve<IMessageSerializer>(), l.Resolve<IServiceLocator>())); b.RegisterSingleton<QueueManagerConfiguration>(() => queueManagerConfiguration); }
public RhinoQueuesOneWayBus(MessageOwner[] messageOwners, IMessageSerializer messageSerializer, string path, bool enablePerformanceCounters, IMessageBuilder<MessagePayload> messageBuilder, QueueManagerConfiguration queueManagerConfiguration) : base(NullEndpoint, new EndpointRouter(), messageSerializer, 1, path, IsolationLevel.ReadCommitted, 5, enablePerformanceCounters, messageBuilder, queueManagerConfiguration) { this.messageOwners = new MessageOwnersSelector(messageOwners, new EndpointRouter()); Start(); }
public RhinoQueuesTransport(Uri endpoint, IEndpointRouter endpointRouter, IMessageSerializer messageSerializer, int threadCount, string path, IsolationLevel queueIsolationLevel, int numberOfRetries, bool enablePerformanceCounters, IMessageBuilder<MessagePayload> messageBuilder, QueueManagerConfiguration queueManagerConfiguration) { this.endpoint = endpoint; this.queueIsolationLevel = queueIsolationLevel; this.numberOfRetries = numberOfRetries; this.enablePerformanceCounters = enablePerformanceCounters; this.messageBuilder = messageBuilder; this.queueManagerConfiguration = queueManagerConfiguration; this.endpointRouter = endpointRouter; this.messageSerializer = messageSerializer; this.threadCount = threadCount; this.path = path; queueName = endpoint.GetQueueName(); threads = new Thread[threadCount]; // This has to be the first subscriber to the transport events // in order to successfully handle the errors semantics new ErrorAction(numberOfRetries).Init(this); messageBuilder.Initialize(this.Endpoint); }
public QueueManager(IPEndPoint endpoint, string path, QueueManagerConfiguration configuration) { Configuration = configuration; this.endpoint = endpoint; this.path = path; queueStorage = new QueueStorage(path, configuration); queueStorage.Initialize(); queueStorage.Global(actions => { receivedMsgs.Add(actions.GetAlreadyReceivedMessageIds()); actions.Commit(); }); HandleRecovery(); }
private void RegisterRhinoQueuesOneWay(AbstractRhinoServiceBusConfiguration c, IBusContainerBuilder b, IServiceLocator l) { var oneWayConfig = (OnewayRhinoServiceBusConfiguration)c; var busConfig = c.ConfigurationSection.Bus; var queueManagerConfiguration = new QueueManagerConfiguration(); b.RegisterSingleton<IMessageBuilder<MessagePayload>>(() => (IMessageBuilder<MessagePayload>)new RhinoQueuesMessageBuilder( l.Resolve<IMessageSerializer>(), l.Resolve<IServiceLocator>())); b.RegisterSingleton<IOnewayBus>(() => (IOnewayBus)new RhinoQueuesOneWayBus( oneWayConfig.MessageOwners, l.Resolve<IMessageSerializer>(), busConfig.QueuePath, busConfig.EnablePerformanceCounters, l.Resolve<IMessageBuilder<MessagePayload>>(), queueManagerConfiguration)); b.RegisterSingleton<QueueManagerConfiguration>(() => queueManagerConfiguration); }