예제 #1
0
        public void MultipleThreadsCanSafelyWriteandCommit()
        {
            var tempPath = Path.GetTempPath();
            var dbPath   = Path.Combine(tempPath, "test" + ".ravendb");

            Log("Saving db in: " + dbPath);
            File.Delete(dbPath);
            var persistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true);
            var database         = new Database(persistentSource);
            var tableOne         = database.Add(new Table("Test1"));
            var tableTwo         = database.Add(new Table("Test2"));

            database.Initialize();

            try
            {
                Parallel.For(0, 10, counter =>
                {
                    Table table = counter % 2 == 0 ? tableOne : tableTwo;
                    ProcessTask(counter, database, table);
                });
            }
            catch (AggregateException aggEx)
            {
                Assert.False(true, aggEx.Message + " : " + aggEx.InnerException.Message);
            }
            finally
            {
                persistentSource.Dispose();
            }
        }
예제 #2
0
		public void MultipleThreadsCanSafelyWriteandCommit()
		{
			var tempPath = Path.GetTempPath();
			var dbPath = Path.Combine(tempPath, "test" + ".ravendb");
			Log("Saving db in: " + dbPath);
			File.Delete(dbPath);
			var persistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true);
			var database = new Database(persistentSource);
			var tableOne = database.Add(new Table("Test1"));
			var tableTwo = database.Add(new Table("Test2"));
			database.Initialize();

			try
			{
				Parallel.For(0, 10, counter =>
				{
					Table table = counter % 2 == 0 ? tableOne : tableTwo;
					ProcessTask(counter, database, table);
				});
			}
			catch (AggregateException aggEx)
			{
				Assert.False(true, aggEx.Message + " : " + aggEx.InnerException.Message);
			}
			finally
			{
				persistentSource.Dispose();
			}
		}
예제 #3
0
 protected void Reopen()
 {
     PersistentSource.Dispose();
     OpenDictionary();
 }
예제 #4
0
 public void Dispose()
 {
     persistentSource.Dispose();
     persistentSource.Delete();
 }