Example #1
0
        /// <exception cref="System.IO.IOException"></exception>
        public DefragmentServicesImpl(DefragmentConfig defragConfig, IDefragmentListener
                                      listener)
        {
            _listener = listener;
            Config4Impl originalConfig = (Config4Impl)defragConfig.Db4oConfig();
            IStorage    storage        = defragConfig.BackupStorage();

            if (defragConfig.ReadOnly())
            {
                storage = new NonFlushingStorage(storage);
            }
            Config4Impl sourceConfig = PrepareConfig(originalConfig, storage, defragConfig.ReadOnly
                                                         ());

            _sourceDb = (LocalObjectContainer)Db4oFactory.OpenFile(sourceConfig, defragConfig
                                                                   .TempPath()).Ext();
            _sourceDb.ShowInternalClasses(true);
            defragConfig.Db4oConfig().BlockSize(_sourceDb.BlockSize());
            if (!originalConfig.GenerateCommitTimestamps().DefiniteNo())
            {
                defragConfig.Db4oConfig().GenerateCommitTimestamps(_sourceDb.Config().GenerateCommitTimestamps
                                                                       ().DefiniteYes());
            }
            _targetDb = FreshTargetFile(defragConfig);
            _mapping  = defragConfig.Mapping();
            _mapping.Open();
            _defragConfig = defragConfig;
        }
Example #2
0
 /// <exception cref="System.IO.IOException"></exception>
 public DefragmentServicesImpl(DefragmentConfig defragConfig, IDefragmentListener
     listener)
 {
     _listener = listener;
     var originalConfig = (Config4Impl) defragConfig.Db4oConfig();
     var storage = defragConfig.BackupStorage();
     if (defragConfig.ReadOnly())
     {
         storage = new NonFlushingStorage(storage);
     }
     var sourceConfig = PrepareConfig(originalConfig, storage, defragConfig.ReadOnly
         ());
     _sourceDb = (LocalObjectContainer) Db4oFactory.OpenFile(sourceConfig, defragConfig
         .TempPath()).Ext();
     _sourceDb.ShowInternalClasses(true);
     defragConfig.Db4oConfig().BlockSize(_sourceDb.BlockSize());
     if (!originalConfig.GenerateCommitTimestamps().DefiniteNo())
     {
         defragConfig.Db4oConfig().GenerateCommitTimestamps(_sourceDb.Config().GenerateCommitTimestamps
             ().DefiniteYes());
     }
     _targetDb = FreshTargetFile(defragConfig);
     _mapping = defragConfig.Mapping();
     _mapping.Open();
     _defragConfig = defragConfig;
 }
        public void DisableReadOnlyForBackup()
        {
            // #example: Disable readonly on backup
            DefragmentConfig config = new DefragmentConfig("database.db4o");
            config.ReadOnly(false);

            Defragment.Defrag(config);
            // #end example
        }
		/// <exception cref="System.IO.IOException"></exception>
		private void RunDefrag(string testFileName)
		{
			IConfiguration config = Db4oFactory.NewConfiguration();
			config.AllowVersionUpdates(true);
			ConfigureForTest(config);
			IObjectContainer oc = Db4oFactory.OpenFile(config, testFileName);
			oc.Close();
			string backupFileName = Path.GetTempFileName();
			try
			{
				DefragmentConfig defragConfig = new DefragmentConfig(testFileName, backupFileName
					);
				defragConfig.ForceBackupDelete(true);
				ConfigureForTest(defragConfig.Db4oConfig());
				defragConfig.ReadOnly(!DefragmentInReadWriteMode());
				Db4objects.Db4o.Defragment.Defragment.Defrag(defragConfig);
			}
			finally
			{
				File4.Delete(backupFileName);
			}
		}