//---------------------------------------------------------------------
        public static async Task <GrainStateCouchbaseDataManager> Initialize(CouchbaseClientSection configSection)
        {
            var instance = new GrainStateCouchbaseDataManager();
            var config   = new ClientConfiguration(configSection);

            Cluster = new Cluster(config);

            var    tcs = new TaskCompletionSource <IBucket>();
            Action initAction;

            if (configSection.Buckets.Count > 0)
            {
                var buckets = new BucketElement[configSection.Buckets.Count];
                configSection.Buckets.CopyTo(buckets, 0);

                var bucketSetting = buckets.First();
                initAction = () => { tcs.SetResult(Cluster.OpenBucket(bucketSetting.Name, bucketSetting.Password)); };
            }
            else
            {
                initAction = () => { tcs.SetResult(Cluster.OpenBucket()); };
            }

            WaitCallback initBucket = (state) =>
            {
                try { initAction(); }
                catch (Exception ex) { tcs.SetException(new Exception("GrainStateCouchbaseDataManager initialize exception", ex)); }
            };

            ThreadPool.QueueUserWorkItem(initBucket, null);

            instance.Bucket = await tcs.Task;

            return(instance);
        }
Example #2
0
        public void When_No_Bucket_Is_Defined_Default_Bucket_Is_Used()
        {
            var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase");

            Assert.Greater(section.Buckets.Count, 0);

            var buckets = new BucketElement[section.Buckets.Count];

            section.Buckets.CopyTo(buckets, 0);
            Assert.AreEqual("default", buckets[0].Name);
        }
Example #3
0
        public void When_Bucket_UseSsl_Is_True_In_AppConfig_UseSsl_Returns_True()
        {
            var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase_2");

            var buckets = new BucketElement[section.Buckets.Count];

            section.Buckets.CopyTo(buckets, 0);

            Assert.IsFalse(section.UseSsl);
            Assert.IsTrue(buckets.First().UseSsl);
        }
        public void When_MaxCloseAttempts_And_MaxCloseInterval_Changed_In_AppConfig_ConnectionPoolElement_Is_Updated()
        {
            var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase_4");
            var buckets = new BucketElement[section.Buckets.Count];

            section.Buckets.CopyTo(buckets, 0);

            var default2 = buckets[1];

            Assert.AreEqual(6, default2.ConnectionPool.MaxCloseAttempts);
            Assert.AreEqual(120, default2.ConnectionPool.CloseAttemptInterval);
        }
Example #5
0
        public void When_Bucket_Contains_ConnectionPoolElement_It_Is_Used()
        {
            var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase_1");
            var buckets = new BucketElement[section.Buckets.Count];

            section.Buckets.CopyTo(buckets, 0);

            var bucket = buckets.First();

            Assert.IsNotNull(bucket.ConnectionPool);
            Assert.AreEqual(5000, bucket.ConnectionPool.WaitTimeout);
            Assert.AreEqual(3000, bucket.ConnectionPool.ShutdownTimeout);
            Assert.AreEqual(10, bucket.ConnectionPool.MaxSize);
            Assert.AreEqual(5, bucket.ConnectionPool.MinSize);
            Assert.AreEqual("custom", bucket.ConnectionPool.Name);
        }
Example #6
0
        public void When_Bucket_Is_Defined_That_Bucket_Is_Used()
        {
            var section = (CouchbaseClientSection)ConfigurationManager.GetSection("couchbaseClients/couchbase_1");

            Assert.Greater(section.Buckets.Count, 0);

            var buckets = new BucketElement[section.Buckets.Count];

            section.Buckets.CopyTo(buckets, 0);

            var bucket = buckets.First();

            Assert.AreEqual("testbucket", bucket.Name);
            Assert.AreEqual("shhh!", bucket.Password);
            Assert.IsFalse(bucket.UseSsl);
        }