/// <summary> /// Initializes a new instance of the <see cref="OracleMessageBus"/> class. /// </summary> /// <param name="resolver">The resolver to use.</param> /// <param name="configuration">The Oracle scale-out configuration options.</param> public OracleMessageBus(IDependencyResolver resolver, OracleScaleoutConfiguration configuration) : base(resolver, configuration) { if (configuration == null) { throw new ArgumentNullException("configuration"); } if (configuration.UseOracleDependency && configuration.OracleDependencyPort.HasValue) { OracleDependency.Port = configuration.OracleDependencyPort.Value; } _connectionString = configuration.ConnectionString; _dbProviderFactory = OracleClientFactory.Instance.AsIDbProviderFactory(configuration.ConnectionString); var traceManager = resolver.Resolve <ITraceManager>(); _trace = traceManager[typeof(OracleMessageBus).Name]; _dbOperationFactory = new DbOperationFactory(); _observableDbOperationFactory = new ObservableDbOperationFactory(null, new OracleDependencyManager(_dbProviderFactory, _trace), new SignalrDbDependencyFactory()); _useOracleDependency = configuration.UseOracleDependency; Task.Run(() => Initialize()); }
/// <summary> /// Use Redis as the messaging backplane for scaling out of ASP.NET SignalR applications in a web farm. /// </summary> /// <param name="resolver">The dependency resolver</param> /// <param name="configuration">The Redis scale-out configuration options.</param> /// <returns>The dependency resolver.</returns> public static IDependencyResolver UseOracle(this IDependencyResolver resolver, OracleScaleoutConfiguration configuration) { var bus = new Lazy <OracleMessageBus>(() => new OracleMessageBus(resolver, configuration)); resolver.Register(typeof(IMessageBus), () => bus.Value); return(resolver); }
/// <summary> /// Use Oracle as the messaging backplane for scaling out of ASP.NET SignalR applications in a web farm. /// </summary> /// <param name="resolver">The dependency resolver.</param> /// <param name="connectionString">The connection string to the Oracle Server.</param> /// <param name="useOracleDependency">Flag to determine if Oracle dependency should be used.</param> /// <param name="oracleDependencyPort">The dependency port of the Oracle server.</param> /// <returns>The dependency resolver.</returns> public static IDependencyResolver UseOracle(this IDependencyResolver resolver, string connectionString, bool useOracleDependency = false, int?oracleDependencyPort = null) { var configuration = new OracleScaleoutConfiguration(connectionString, useOracleDependency, oracleDependencyPort); return(UseOracle(resolver, configuration)); }