コード例 #1
0
        public void TestSiteRepConfig()
        {
            testName = "TestSiteRepConfig";
            SetUpTest(true);
            Configuration.ClearDir(testHome);
            DatabaseEnvironmentConfig envConfig =
                new DatabaseEnvironmentConfig();

            envConfig.Create         = true;
            envConfig.UseLocking     = true;
            envConfig.UseLogging     = true;
            envConfig.UseMPool       = true;
            envConfig.UseReplication = true;
            envConfig.UseTxns        = true;
            ReplicationHostAddress addr =
                new ReplicationHostAddress("localhost:6060");
            ReplicationConfig repCfg       = new ReplicationConfig();
            DbSiteConfig      dbSiteConfig = new DbSiteConfig();

            dbSiteConfig.Host      = addr.Host;
            dbSiteConfig.Port      = addr.Port;
            dbSiteConfig.LocalSite = true;
            repCfg.RepmgrSitesConfig.Add(dbSiteConfig);

            // DatabaseEnvironment.RepInMemory defaults to false.
            envConfig.RepSystemCfg = repCfg;
            DatabaseEnvironment env =
                DatabaseEnvironment.Open(testHome, envConfig);

            Assert.AreEqual(false, env.RepInMemory);
            env.Close();
            Assert.Less(0,
                        Directory.GetFiles(testHome, "__db.rep.*").Length);

            // Set RepInMemory as true.
            Configuration.ClearDir(testHome);
            repCfg.InMemory        = true;
            envConfig.RepSystemCfg = repCfg;
            env = DatabaseEnvironment.Open(testHome, envConfig);
            Assert.AreEqual(true, env.RepInMemory);
            env.Close();
            Assert.AreEqual(0,
                            Directory.GetFiles(testHome, "__db.rep.*").Length);

            // Set RepInMemory as false.
            Configuration.ClearDir(testHome);
            repCfg.InMemory        = false;
            envConfig.RepSystemCfg = repCfg;
            env = DatabaseEnvironment.Open(testHome, envConfig);
            Assert.AreEqual(false, env.RepInMemory);
            env.Close();
            Assert.Less(0,
                        Directory.GetFiles(testHome, "__db.rep.*").Length);
        }
コード例 #2
0
ファイル: RepConfig.cs プロジェクト: ljrk0/DIR882A1-GPL
        public RepConfig()
        {
            ackPolicy   = AckPolicy.QUORUM;
            bulk        = false;
            home        = "";
            host        = new ReplicationHostAddress();
            priority    = 100;
            remote      = new List <RemoteSite>();
            startPolicy = StartPolicy.ELECTION;

            totalSites = 0;
            verbose    = false;
        }
コード例 #3
0
        public static void ConfirmReplicationHostAddress(
            XmlElement xmlElem, string name,
            ReplicationHostAddress address, bool compulsory)
        {
            XmlNode xmlNode = XMLReader.GetNode(xmlElem, name);

            if (xmlNode == null && compulsory == true)
            {
                throw new ConfigNotFoundException(name);
            }
            else if (xmlNode != null)
            {
                string host = XMLReader.GetNode(
                    (XmlElement)xmlNode, "Host").InnerText;
                uint port = uint.Parse(XMLReader.GetNode(
                                           (XmlElement)xmlNode, "Port").InnerText);

                Assert.AreEqual(host, address.Host);
                Assert.AreEqual(port, address.Port);
            }
        }
コード例 #4
0
        public static bool ConfigReplicationHostAddress(
            XmlElement xmlElem, string name,
            ref ReplicationHostAddress address, bool compulsory)
        {
            XmlNode xmlNode = XMLReader.GetNode(
                xmlElem, name);

            if (xmlNode == null && compulsory == false)
            {
                return(false);
            }
            else if (xmlNode == null && compulsory == true)
            {
                throw new ConfigNotFoundException(name);
            }

            address.Host = XMLReader.GetNode(
                (XmlElement)xmlNode, "Host").InnerText;
            address.Port = uint.Parse(XMLReader.GetNode(
                                          (XmlElement)xmlNode, "Port").InnerText);
            return(true);
        }
コード例 #5
0
ファイル: RepConfig.cs プロジェクト: ljrk0/DIR882A1-GPL
 public RemoteSite(string host, uint port, bool isPeer)
 {
     this.host   = new ReplicationHostAddress(host, port);
     this.isPeer = isPeer;
 }