/* * Open environment, database and write data into database. * Generated log files are put under testHome. */ public void Logging(string home, string dbName, out DatabaseEnvironment env, out RecnoDatabase recnoDB) { string dbFileName = dbName + ".db"; Configuration.ClearDir(home); // Open environment with logging subsystem. DatabaseEnvironmentConfig envConfig = new DatabaseEnvironmentConfig(); envConfig.Create = true; envConfig.UseLogging = true; envConfig.LogSystemCfg = new LogConfig(); envConfig.LogSystemCfg.FileMode = 755; envConfig.LogSystemCfg.ZeroOnCreate = true; envConfig.UseMPool = true; env = DatabaseEnvironment.Open(home, envConfig); /* * Open recno database, write 100000 records into * the database and close it. */ RecnoDatabaseConfig recnoConfig = new RecnoDatabaseConfig(); recnoConfig.Creation = CreatePolicy.IF_NEEDED; recnoConfig.Env = env; // The db needs mpool to open. recnoConfig.NoMMap = false; recnoDB = RecnoDatabase.Open(dbFileName, recnoConfig); for (int i = 0; i < 1000; i++) recnoDB.Append(new DatabaseEntry( ASCIIEncoding.ASCII.GetBytes("key"))); }
public void ModifyRecordsInDB(RecnoDatabase db, Transaction txn) { uint[] recnos = new uint[100]; if (txn == null) { // Add a lot of records into database. for (int i = 0; i < 100; i++) recnos[i] = db.Append(new DatabaseEntry( new byte[10240])); // Remove some records from database. for (int i = 30; i < 100; i++) db.Delete(new DatabaseEntry( BitConverter.GetBytes(recnos[i]))); } else { // Add a lot of records into database in txn. for (int i = 0; i < 100; i++) recnos[i] = db.Append(new DatabaseEntry( new byte[10240]), txn); // Remove some records from database in txn. for (int i = 30; i < 100; i++) db.Delete(new DatabaseEntry( BitConverter.GetBytes(recnos[i])), txn); } }