public void can_start_two_instances_for_IIS_stop_and_start() { //This shows that the port doesn't have an exclusive lock, and that lmdb itself can have multiple instances var path = _testDirectory.CreateNewDirectoryForTest(); var store = new LmdbMessageStore(path); var queueConfiguration = new QueueConfiguration(); queueConfiguration.LogWith(new RecordingLogger()); queueConfiguration.AutomaticEndpoint(); queueConfiguration.StoreMessagesWith(store); var queue = queueConfiguration.BuildQueue(); var queue2 = queueConfiguration.BuildQueue(); using (queue) using (queue2) { queue.CreateQueue("test"); queue.Start(); queue2.CreateQueue("test"); queue2.Start(); using (queue.Receive("test").Subscribe(x => { })) using (queue2.Receive("test").Subscribe(x => { })) { } } }
public void creating_multiple_stores() { _store.Dispose(); _store = new LmdbMessageStore(_queuePath); _store.Dispose(); _store = new LmdbMessageStore(_queuePath); }
public SendingErrorPolicyTests(SharedTestDirectory testDirectory) { _logger = new RecordingLogger(); _scheduler = new TestScheduler(); _store = new LmdbMessageStore(testDirectory.CreateNewDirectoryForTest()); _subject = new Subject <OutgoingMessageFailure>(); _errorPolicy = new SendingErrorPolicy(_logger, _store, _subject, _scheduler); }
public void store_can_read_previously_stored_items() { _store.CreateQueue("test"); var message = ObjectMother.NewMessage <Message>("test"); var outgoingMessage = ObjectMother.NewMessage <OutgoingMessage>(); outgoingMessage.Destination = new Uri("lq.tcp://localhost:3030"); outgoingMessage.SentAt = DateTime.Now; var tx = _store.BeginTransaction(); _store.StoreOutgoing(tx, outgoingMessage); _store.StoreIncomingMessages(tx, message); tx.Commit(); _store.Dispose(); using (var store2 = new LmdbMessageStore(_path)) { store2.PersistedMessages("test").ToEnumerable().Count().ShouldBe(1); store2.PersistedOutgoingMessages().ToEnumerable().Count().ShouldBe(1); } }
public void crash_before_commit() { var message = NewMessage <Message>(); _store.CreateQueue(message.Queue); var transaction = _store.BeginTransaction(); _store.StoreIncomingMessages(transaction, message); _store.Dispose(); //crash _store = new LmdbMessageStore(_queuePath); using (var tx = _store.Environment.BeginTransaction()) { using (var db = tx.OpenDatabase(message.Queue)) { var result = tx.Get(db, message.Id.MessageIdentifier.ToByteArray()); result.resultCode.ShouldBe(MDBResultCode.NotFound); } } }
public OutgoingMessageScenarios(SharedTestDirectory testDirectory) { _queuePath = testDirectory.CreateNewDirectoryForTest(); _store = new LmdbMessageStore(_queuePath); }
public LmdbMessageStoreTester(SharedTestDirectory testDirectory) { _path = testDirectory.CreateNewDirectoryForTest(); _store = new LmdbMessageStore(_path); }