public static void Config(XmlElement xmlElement,
                                  ref SecondaryHashDatabaseConfig secHashDBConfig,
                                  bool compulsory)
        {
            uint fillFactor  = new uint();
            uint numElements = new uint();

            SecondaryDatabaseConfig secDBConfig = secHashDBConfig;

            SecondaryDatabaseConfigTest.Config(xmlElement,
                                               ref secDBConfig, compulsory);

            // Configure specific fields/properties of hash db
            Configuration.ConfigCreatePolicy(xmlElement,
                                             "Creation", ref secHashDBConfig.Creation, compulsory);
            Configuration.ConfigDuplicatesPolicy(xmlElement,
                                                 "Duplicates", ref secHashDBConfig.Duplicates, compulsory);
            if (Configuration.ConfigUint(xmlElement, "FillFactor",
                                         ref fillFactor, compulsory))
            {
                secHashDBConfig.FillFactor = fillFactor;
            }
            if (Configuration.ConfigUint(xmlElement, "NumElements",
                                         ref numElements, compulsory))
            {
                secHashDBConfig.TableSize = numElements;
            }
        }
Exemple #2
0
        public static void Confirm(XmlElement xmlElement,
                                   SecondaryBTreeDatabaseConfig secBtreeDBConfig,
                                   bool compulsory)
        {
            SecondaryDatabaseConfig secDBConfig =
                secBtreeDBConfig;

            SecondaryDatabaseConfigTest.Confirm(xmlElement,
                                                secDBConfig, compulsory);

            // Confirm secondary btree database specific configuration.
            Configuration.ConfirmCreatePolicy(xmlElement,
                                              "Creation", secBtreeDBConfig.Creation, compulsory);
            Configuration.ConfirmDuplicatesPolicy(xmlElement,
                                                  "Duplicates", secBtreeDBConfig.Duplicates, compulsory);
            Configuration.ConfirmUint(xmlElement, "MinKeysPerPage",
                                      secBtreeDBConfig.MinKeysPerPage, compulsory);
            Configuration.ConfirmBool(xmlElement,
                                      "NoReverseSplitting",
                                      secBtreeDBConfig.NoReverseSplitting, compulsory);
            Configuration.ConfirmBool(xmlElement,
                                      "UseRecordNumbers",
                                      secBtreeDBConfig.UseRecordNumbers,
                                      compulsory);
        }
        public static void Config(XmlElement xmlElement,
                                  ref SecondaryBTreeDatabaseConfig secBtreeDBConfig,
                                  bool compulsory)
        {
            uint minKeysPerPage = new uint();

            SecondaryDatabaseConfig secDBConfig = secBtreeDBConfig;

            SecondaryDatabaseConfigTest.Config(xmlElement,
                                               ref secDBConfig, compulsory);

            // Configure specific fields/properties of Btree db
            Configuration.ConfigCreatePolicy(xmlElement,
                                             "Creation", ref secBtreeDBConfig.Creation, compulsory);
            Configuration.ConfigDuplicatesPolicy(xmlElement,
                                                 "Duplicates", ref secBtreeDBConfig.Duplicates,
                                                 compulsory);
            if (Configuration.ConfigUint(xmlElement,
                                         "MinKeysPerPage", ref minKeysPerPage, compulsory))
            {
                secBtreeDBConfig.MinKeysPerPage = minKeysPerPage;
            }
            Configuration.ConfigBool(xmlElement,
                                     "NoReverseSplitting",
                                     ref secBtreeDBConfig.NoReverseSplitting, compulsory);
            Configuration.ConfigBool(xmlElement,
                                     "UseRecordNumbers",
                                     ref secBtreeDBConfig.UseRecordNumbers, compulsory);
        }
Exemple #4
0
        virtual public void TestConfig()
        {
            testName = "TestConfig";
            testHome = testFixtureHome + "/" + testName;
            string dbFileName = testHome + "/" + testName;

            Configuration.ClearDir(testHome);

            XmlElement xmlElem = Configuration.TestSetUp(
                testFixtureName, testName);


            // Open a primary btree database.
            BTreeDatabaseConfig btreeDBConfig =
                new BTreeDatabaseConfig();

            btreeDBConfig.Creation = CreatePolicy.IF_NEEDED;
            BTreeDatabase btreeDB = BTreeDatabase.Open(
                dbFileName, btreeDBConfig);

            SecondaryDatabaseConfig secDBConfig =
                new SecondaryDatabaseConfig(btreeDB, null);

            Config(xmlElem, ref secDBConfig, true);
            Confirm(xmlElem, secDBConfig, true);
            btreeDB.Close();
        }
        public static void Config(XmlElement xmlElement,
                                  ref SecondaryRecnoDatabaseConfig secRecDBConfig,
                                  bool compulsory)
        {
            int  intValue  = new int();
            uint uintValue = new uint();
            SecondaryDatabaseConfig secDBConfig = secRecDBConfig;

            SecondaryDatabaseConfigTest.Config(xmlElement,
                                               ref secDBConfig, compulsory);

            // Configure specific fields/properties of Recno database
            Configuration.ConfigCreatePolicy(xmlElement, "Creation",
                                             ref secRecDBConfig.Creation, compulsory);
            if (Configuration.ConfigInt(xmlElement, "Delimiter",
                                        ref intValue, compulsory))
            {
                secRecDBConfig.Delimiter = intValue;
            }
            if (Configuration.ConfigUint(xmlElement, "Length",
                                         ref uintValue, compulsory))
            {
                secRecDBConfig.Length = uintValue;
            }
            if (Configuration.ConfigInt(xmlElement, "PadByte",
                                        ref intValue, compulsory))
            {
                secRecDBConfig.PadByte = intValue;
            }
            Configuration.ConfigBool(xmlElement, "Renumber",
                                     ref secRecDBConfig.Renumber, compulsory);
            Configuration.ConfigBool(xmlElement, "Snapshot",
                                     ref secRecDBConfig.Snapshot, compulsory);
        }
        public static void Confirm(XmlElement xmlElement,
                                   SecondaryRecnoDatabaseConfig secRecDBConfig,
                                   bool compulsory)
        {
            SecondaryDatabaseConfig secDBConfig =
                secRecDBConfig;

            SecondaryDatabaseConfigTest.Confirm(xmlElement,
                                                secDBConfig, compulsory);

            // Confirm secondary hash database specific configuration.
            Configuration.ConfirmString(xmlElement, "BackingFile",
                                        secRecDBConfig.BackingFile, compulsory);
            Configuration.ConfirmCreatePolicy(xmlElement, "Creation",
                                              secRecDBConfig.Creation, compulsory);
            Configuration.ConfirmInt(xmlElement, "Delimiter",
                                     secRecDBConfig.Delimiter, compulsory);
            Configuration.ConfirmUint(xmlElement, "Length",
                                      secRecDBConfig.Length, compulsory);
            Configuration.ConfirmInt(xmlElement, "PadByte",
                                     secRecDBConfig.PadByte, compulsory);
            Configuration.ConfirmBool(xmlElement, "Renumber",
                                      secRecDBConfig.Renumber, compulsory);
            Configuration.ConfirmBool(xmlElement, "Snapshot",
                                      secRecDBConfig.Snapshot, compulsory);
        }
Exemple #7
0
        public static void Config(XmlElement xmlElement,
                                  ref SecondaryQueueDatabaseConfig secQueueDBConfig,
                                  bool compulsory)
        {
            uint uintValue = new uint();
            int  intValue  = new int();
            SecondaryDatabaseConfig secConfig = secQueueDBConfig;

            SecondaryDatabaseConfigTest.Config(xmlElement,
                                               ref secConfig, compulsory);

            // Configure specific fields/properties of Queue database
            Configuration.ConfigCreatePolicy(xmlElement, "Creation",
                                             ref secQueueDBConfig.Creation, compulsory);
            if (Configuration.ConfigUint(xmlElement, "Length",
                                         ref uintValue, compulsory))
            {
                secQueueDBConfig.Length = uintValue;
            }
            if (Configuration.ConfigInt(xmlElement, "PadByte",
                                        ref intValue, compulsory))
            {
                secQueueDBConfig.PadByte = intValue;
            }
            if (Configuration.ConfigUint(xmlElement, "ExtentSize",
                                         ref uintValue, compulsory))
            {
                secQueueDBConfig.ExtentSize = uintValue;
            }
        }
 public static void Confirm(XmlElement xmlElement,
                            SecondaryDatabaseConfig secDBConfig,
                            bool compulsory)
 {
     Configuration.ConfirmBool(xmlElement, "ImmutableKey",
                               secDBConfig.ImmutableKey, compulsory);
     Configuration.ConfirmBool(xmlElement, "Populate",
                               secDBConfig.Populate, compulsory);
 }
Exemple #9
0
        public static void Confirm(XmlElement xmlElement,
                                   SecondaryQueueDatabaseConfig secQueueDBConfig,
                                   bool compulsory)
        {
            SecondaryDatabaseConfig secDBConfig =
                secQueueDBConfig;

            SecondaryDatabaseConfigTest.Confirm(xmlElement,
                                                secDBConfig, compulsory);

            // Confirm secondary hash database specific configuration.
            Configuration.ConfirmCreatePolicy(xmlElement,
                                              "Creation", secQueueDBConfig.Creation, compulsory);
            Configuration.ConfirmUint(xmlElement,
                                      "ExtentSize", secQueueDBConfig.ExtentSize, compulsory);
            Configuration.ConfirmUint(xmlElement, "Length",
                                      secQueueDBConfig.Length, compulsory);
            Configuration.ConfirmInt(xmlElement, "PadByte",
                                     secQueueDBConfig.PadByte, compulsory);
        }
        public static void Confirm(XmlElement xmlElement,
                                   SecondaryHashDatabaseConfig secHashDBConfig,
                                   bool compulsory)
        {
            SecondaryDatabaseConfig secDBConfig =
                secHashDBConfig;

            SecondaryDatabaseConfigTest.Confirm(xmlElement,
                                                secDBConfig, compulsory);

            // Confirm secondary hash database specific configuration.
            Configuration.ConfirmCreatePolicy(xmlElement,
                                              "Creation", secHashDBConfig.Creation, compulsory);
            Configuration.ConfirmDuplicatesPolicy(xmlElement,
                                                  "Duplicates", secHashDBConfig.Duplicates, compulsory);
            Configuration.ConfirmUint(xmlElement, "FillFactor",
                                      secHashDBConfig.FillFactor, compulsory);
            Configuration.ConfirmUint(xmlElement,
                                      "NumElements",
                                      secHashDBConfig.TableSize, compulsory);
        }
        public void OpenSecDBWithinTxn(string home,
                                       string dbFileName, string dbSecFileName, bool ifDbName)
        {
            // Open an environment.
            DatabaseEnvironmentConfig envConfig =
                new DatabaseEnvironmentConfig();

            envConfig.Create     = true;
            envConfig.UseTxns    = true;
            envConfig.UseMPool   = true;
            envConfig.UseLogging = true;
            envConfig.UseLocking = true;
            DatabaseEnvironment env = DatabaseEnvironment.Open(
                home, envConfig);

            // Open a primary btree database.
            Transaction         openDBTxn = env.BeginTransaction();
            BTreeDatabaseConfig dbConfig  =
                new BTreeDatabaseConfig();

            dbConfig.Creation = CreatePolicy.IF_NEEDED;
            dbConfig.Env      = env;
            BTreeDatabase db = BTreeDatabase.Open(
                dbFileName, dbConfig, openDBTxn);

            // Open a secondary btree database.
            SecondaryBTreeDatabaseConfig secDBConfig =
                new SecondaryBTreeDatabaseConfig(db,
                                                 new SecondaryKeyGenDelegate(SecondaryKeyGen));

            secDBConfig.Env      = env;
            secDBConfig.Creation = CreatePolicy.IF_NEEDED;

            SecondaryBTreeDatabase secDB;

            if (ifDbName == false)
            {
                secDB = SecondaryBTreeDatabase.Open(
                    dbSecFileName, secDBConfig, openDBTxn);
            }
            else
            {
                secDB = SecondaryBTreeDatabase.Open(
                    dbSecFileName, "secondary", secDBConfig,
                    openDBTxn);
            }
            openDBTxn.Commit();
            secDB.Close();

            // Open the existing secondary database.
            Transaction             secTxn    = env.BeginTransaction();
            SecondaryDatabaseConfig secConfig =
                new SecondaryDatabaseConfig(db,
                                            new SecondaryKeyGenDelegate(SecondaryKeyGen));

            secConfig.Env = env;

            SecondaryDatabase secExDB;

            if (ifDbName == false)
            {
                secExDB = SecondaryBTreeDatabase.Open(
                    dbSecFileName, secConfig, secTxn);
            }
            else
            {
                secExDB = SecondaryBTreeDatabase.Open(
                    dbSecFileName, "secondary", secConfig,
                    secTxn);
            }
            secExDB.Close();
            secTxn.Commit();

            db.Close();
            env.Close();
        }
        public void OpenSecQueueDB(string dbFileName,
                                   string dbSecFileName, bool ifDBName)
        {
            // Open a primary btree database.
            BTreeDatabaseConfig primaryDBConfig =
                new BTreeDatabaseConfig();

            primaryDBConfig.Creation = CreatePolicy.IF_NEEDED;
            BTreeDatabase primaryDB;

            /*
             * If secondary database name is given, the primary
             * database is also opened with database name.
             */
            if (ifDBName == false)
            {
                primaryDB = BTreeDatabase.Open(dbFileName,
                                               primaryDBConfig);
            }
            else
            {
                primaryDB = BTreeDatabase.Open(dbFileName,
                                               "primary", primaryDBConfig);
            }

            try
            {
                // Open a new secondary database.
                SecondaryBTreeDatabaseConfig secBTDBConfig =
                    new SecondaryBTreeDatabaseConfig(
                        primaryDB, null);
                secBTDBConfig.Creation =
                    CreatePolicy.IF_NEEDED;

                SecondaryBTreeDatabase secBTDB;
                if (ifDBName == false)
                {
                    secBTDB = SecondaryBTreeDatabase.Open(
                        dbSecFileName, secBTDBConfig);
                }
                else
                {
                    secBTDB = SecondaryBTreeDatabase.Open(
                        dbSecFileName, "secondary",
                        secBTDBConfig);
                }

                // Close the secondary database.
                secBTDB.Close();

                // Open the existing secondary database.
                SecondaryDatabaseConfig secDBConfig =
                    new SecondaryDatabaseConfig(
                        primaryDB, null);

                SecondaryDatabase secDB;
                if (ifDBName == false)
                {
                    secDB = SecondaryBTreeDatabase.Open(
                        dbSecFileName, secDBConfig);
                }
                else
                {
                    secDB = SecondaryBTreeDatabase.Open(
                        dbSecFileName, "secondary", secDBConfig);
                }

                // Close secondary database.
                secDB.Close();
            }
            catch (DatabaseException)
            {
                throw new TestException();
            }
            finally
            {
                // Close primary database.
                primaryDB.Close();
            }
        }
Exemple #13
0
        public void OpenSecQueueDBWithinTxn(string className,
                                            string funName, string home, string dbFileName,
                                            string dbSecFileName)
        {
            XmlElement xmlElem = Configuration.TestSetUp(
                className, funName);

            // Open an environment.
            DatabaseEnvironmentConfig envConfig =
                new DatabaseEnvironmentConfig();

            envConfig.Create     = true;
            envConfig.UseTxns    = true;
            envConfig.UseMPool   = true;
            envConfig.UseLogging = true;
            DatabaseEnvironment env = DatabaseEnvironment.Open(
                home, envConfig);

            // Open a primary queue database.
            Transaction         openDBTxn = env.BeginTransaction();
            QueueDatabaseConfig dbConfig  =
                new QueueDatabaseConfig();

            dbConfig.Creation = CreatePolicy.IF_NEEDED;
            dbConfig.Env      = env;
            QueueDatabase db = QueueDatabase.Open(
                dbFileName, dbConfig, openDBTxn);

            openDBTxn.Commit();

            // Open a secondary queue database.
            Transaction openSecTxn = env.BeginTransaction();
            SecondaryQueueDatabaseConfig secDBConfig =
                new SecondaryQueueDatabaseConfig(db,
                                                 new SecondaryKeyGenDelegate(SecondaryKeyGen));

            SecondaryQueueDatabaseConfigTest.Config(xmlElem,
                                                    ref secDBConfig, true);
            secDBConfig.Env = env;
            SecondaryQueueDatabase secDB;

            secDB = SecondaryQueueDatabase.Open(
                dbSecFileName, secDBConfig, openSecTxn);

            openSecTxn.Commit();

            // Confirm its flags configured in secDBConfig.
            Confirm(xmlElem, secDB, true);
            secDB.Close();

            // Open the existing secondary database.
            Transaction             secTxn    = env.BeginTransaction();
            SecondaryDatabaseConfig secConfig =
                new SecondaryDatabaseConfig(db,
                                            new SecondaryKeyGenDelegate(SecondaryKeyGen));

            secConfig.Env = env;

            SecondaryDatabase secExDB;

            secExDB = SecondaryQueueDatabase.Open(
                dbSecFileName, secConfig, secTxn);

            secExDB.Close();
            secTxn.Commit();

            db.Close();
            env.Close();
        }
Exemple #14
0
        public void OpenSecRecnoDB(string className,
                                   string funName, string dbFileName, string dbSecFileName,
                                   bool ifDBName)
        {
            XmlElement xmlElem = Configuration.TestSetUp(
                className, funName);

            // Open a primary recno database.
            RecnoDatabaseConfig primaryDBConfig =
                new RecnoDatabaseConfig();

            primaryDBConfig.Creation = CreatePolicy.IF_NEEDED;
            RecnoDatabase primaryDB;

            /*
             * If secondary database name is given, the primary
             * database is also opened with database name.
             */
            if (ifDBName == false)
            {
                primaryDB = RecnoDatabase.Open(dbFileName,
                                               primaryDBConfig);
            }
            else
            {
                primaryDB = RecnoDatabase.Open(dbFileName,
                                               "primary", primaryDBConfig);
            }

            try
            {
                // Open a new secondary database.
                SecondaryRecnoDatabaseConfig secRecnoDBConfig =
                    new SecondaryRecnoDatabaseConfig(
                        primaryDB, null);
                SecondaryRecnoDatabaseConfigTest.Config(
                    xmlElem, ref secRecnoDBConfig, false);
                secRecnoDBConfig.Creation =
                    CreatePolicy.IF_NEEDED;

                SecondaryRecnoDatabase secRecnoDB;
                if (ifDBName == false)
                {
                    secRecnoDB = SecondaryRecnoDatabase.Open(
                        dbSecFileName, secRecnoDBConfig);
                }
                else
                {
                    secRecnoDB = SecondaryRecnoDatabase.Open(
                        dbSecFileName, "secondary",
                        secRecnoDBConfig);
                }

                // Close the secondary database.
                secRecnoDB.Close();

                // Open the existing secondary database.
                SecondaryDatabaseConfig secDBConfig =
                    new SecondaryDatabaseConfig(
                        primaryDB, null);

                SecondaryDatabase secDB;
                if (ifDBName == false)
                {
                    secDB = SecondaryRecnoDatabase.Open(
                        dbSecFileName, secDBConfig);
                }
                else
                {
                    secDB = SecondaryRecnoDatabase.Open(
                        dbSecFileName, "secondary", secDBConfig);
                }

                // Close secondary database.
                secDB.Close();
            }
            catch (DatabaseException)
            {
                throw new TestException();
            }
            finally
            {
                // Close primary database.
                primaryDB.Close();
            }
        }