static void PurgeInputQueue(string inputQueueName) { var queue = new SqlServerMessageQueue(SqlServerConnectionString, MessageTableName, inputQueueName); queue.PurgeInputQueue(); }
IDuplexTransport GetQueue(string inputQueueName) { var queue = new SqlServerMessageQueue(SqlServerFixtureBase.ConnectionString, MessageTableName, inputQueueName) .EnsureTableIsCreated() .PurgeInputQueue(); return queue; }
protected override void DoSetUp() { if (GetTableNames() .Contains("messages")) { ExecuteCommand("drop table [messages]"); } queue = new SqlServerMessageQueue(ConnectionString, "messages", InputQueueName) .EnsureTableIsCreated() .PurgeInputQueue(); }
/// <summary> /// Configures Rebus to run in one-way client mode, which means that the bus is capable only of sending messages. /// </summary> public static SqlServerMessageQueueOptions UseSqlServerInOneWayClientMode(this RebusTransportConfigurer configurer, string connectionStringOrConnectionStringName, string MessageTableName) { var connectionStringToUse = Rebus.Shared.ConnectionStringUtil.GetConnectionStringToUse(connectionStringOrConnectionStringName); var sqlServerMessageQueue = SqlServerMessageQueue.Sender(connectionStringToUse, MessageTableName); configurer.UseSender(sqlServerMessageQueue); var gag = new OneWayClientGag(); configurer.UseReceiver(gag); configurer.UseErrorTracker(gag); return(new SqlServerMessageQueueOptions(sqlServerMessageQueue)); }
static SqlServerMessageQueueOptions DoIt(string connectionStringOrConnectionStringName, RebusTransportConfigurer configurer, string messageTableName, string inputQueueName, string errorQueueName) { var connectionStringToUse = GetConnectionStringToUse(connectionStringOrConnectionStringName); if (string.IsNullOrEmpty(inputQueueName)) { throw new ConfigurationErrorsException("You need to specify an input queue."); } var sqlServerMessageQueue = new SqlServerMessageQueue(connectionStringToUse, messageTableName, inputQueueName); configurer.UseSender(sqlServerMessageQueue); configurer.UseReceiver(sqlServerMessageQueue); configurer.UseErrorTracker(new ErrorTracker(errorQueueName)); return(new SqlServerMessageQueueOptions(sqlServerMessageQueue)); }
public void DoesNotLeakConnectionsForEachMessage() { // Low timeout + pool size will quickly show the issue. var cs = ConnectionString + ";Connect Timeout = 5;Max Pool Size=10"; var transport = new SqlServerMessageQueue(cs, TableName, InputQueueName); transport.EnsureTableIsCreated(); transport.PurgeInputQueue(); for (int i = 0; i < 100; i++) { using (var tx = new TransactionScope()) { var ctx = new AmbientTransactionContext(); transport.Send(InputQueueName, new TransportMessageToSend() { Body = new byte[0], Headers = new Dictionary<string, object>(), Label = "test" }, ctx); tx.Complete(); } } }
static SqlServerMessageQueueOptions DoIt(string connectionStringOrConnectionStringName, RebusTransportConfigurer configurer, string messageTableName, string inputQueueName, string errorQueueName) { var connectionStringToUse = Rebus.Shared.ConnectionStringUtil.GetConnectionStringToUse(connectionStringOrConnectionStringName); if (string.IsNullOrEmpty(inputQueueName)) { throw new ConfigurationErrorsException("You need to specify an input queue."); } if(string.IsNullOrEmpty(messageTableName)) { throw new ConfigurationException("You need to specify message table name."); } var sqlServerMessageQueue = new SqlServerMessageQueue(connectionStringToUse, messageTableName, inputQueueName); configurer.UseSender(sqlServerMessageQueue); configurer.UseReceiver(sqlServerMessageQueue); configurer.UseErrorTracker(new ErrorTracker(errorQueueName)); return new SqlServerMessageQueueOptions(sqlServerMessageQueue); }