private void RegisterRhinoQueuesTransport(AbstractRhinoServiceBusConfiguration c, IBusContainerBuilder b, IServiceLocator l) { var busConfig = c.ConfigurationSection.Bus; var fileManagerConfiguration = new QueueManagerConfiguration(); b.RegisterSingleton<ISubscriptionStorage>(() => (ISubscriptionStorage)new FileSubscriptionStorage( busConfig.SubscriptionPath, l.Resolve<IMessageSerializer>(), l.Resolve<IReflection>())); b.RegisterSingleton<ITransport>(() => (ITransport)new RhinoFilesTransport( c.Endpoint, l.Resolve<IEndpointRouter>(), l.Resolve<IMessageSerializer>(), c.ThreadCount, busConfig.QueuePath, c.IsolationLevel, c.NumberOfRetries, busConfig.EnablePerformanceCounters, l.Resolve<IMessageBuilder<MessagePayload>>(), fileManagerConfiguration)); b.RegisterSingleton<IMessageBuilder<MessagePayload>>(() => (IMessageBuilder<MessagePayload>)new RhinoFilesMessageBuilder( l.Resolve<IMessageSerializer>(), l.Resolve<IServiceLocator>())); b.RegisterSingleton<QueueManagerConfiguration>(() => fileManagerConfiguration); }
public RhinoFilesTransport(Uri endpoint, IEndpointRouter endpointRouter, IMessageSerializer messageSerializer, int threadCount, string path, IsolationLevel queueIsolationLevel, int numberOfRetries, bool enablePerformanceCounters, IMessageBuilder<MessagePayload> messageBuilder, QueueManagerConfiguration queueManagerConfiguration) { _endpoint = endpoint; _queueIsolationLevel = queueIsolationLevel; _numberOfRetries = numberOfRetries; _enablePerformanceCounters = enablePerformanceCounters; _messageBuilder = messageBuilder; _queueManagerConfiguration = queueManagerConfiguration; _endpointRouter = endpointRouter; _messageSerializer = messageSerializer; _threadCount = threadCount; _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(Endpoint); }
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 RhinoFilesMessageBuilder( l.Resolve<IMessageSerializer>(), l.Resolve<IServiceLocator>())); b.RegisterSingleton<IOnewayBus>(() => (IOnewayBus)new RhinoFilesOneWayBus( oneWayConfig.MessageOwners, l.Resolve<IMessageSerializer>(), busConfig.QueuePath, busConfig.EnablePerformanceCounters, l.Resolve<IMessageBuilder<MessagePayload>>(), queueManagerConfiguration)); b.RegisterSingleton<QueueManagerConfiguration>(() => queueManagerConfiguration); }
public QueueManager(string endpoint, string path, QueueManagerConfiguration configuration) { Configuration = configuration; _endpoint = endpoint; _path = path; _queueStorage = new QueueStorage(path, configuration); _queueStorage.Initialize(); _queueStorage.Global(actions => { _receivedMsgs.Add(actions.GetAlreadyReceivedMessageIds()); actions.Commit(); }); HandleRecovery(); }
public RhinoFilesOneWayBus(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) { _messageOwners = new MessageOwnersSelector(messageOwners, new EndpointRouter()); Start(); }