Description
For development purposes i'm using a local Couchbase server installation with a single node. So i guess that turning off the CouchbaseServer service means the whole cluster in my case.
Here's a simple demo code:
System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;
using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:
res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:{0}
StatusCode:
{1} Message:{2}", res.Success, res.StatusCode, res.Message);IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}", multigetRes.Count);
foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("Get {0} Success:{1}
, StatusCode:
{2} Message: {3}", kvp.Key, kvp.Value.Success, kvp.Value.StatusCode, kvp.Value.Message);}
}
Output with CouchbaseServer service on:
Set1 Success:True StatusCode:0 Message:
Set2 Success:True StatusCode:0 Message:
Dictionary count: 2
Get Test1 Success:True, StatusCode: Message:
Get Test2 Success:True, StatusCode: Message:
Output with CouchbaseServer service off:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0
Singular gets result in the correct exception error message:
Modified demo:
System.Configuration.Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ICouchbaseClientConfiguration section = cfg.GetSection("Couchbase") as ICouchbaseClientConfiguration;
using (CouchbaseClient client = new CouchbaseClient(section))
{
IOperationResult res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test1", 1);
Console.WriteLine("Set1 Success:{0} StatusCode:{1} Message:{2}
", res.Success, res.StatusCode, res.Message);
res = client.ExecuteStore(Enyim.Caching.Memcached.StoreMode.Set, "Test2", 2);
Console.WriteLine("Set2 Success:
IDictionary<string, IGetOperationResult> multigetRes = client.ExecuteGet(new string[] { "Test1", "Test2" });
Console.WriteLine("Dictionary count: {0}
", multigetRes.Count);
foreach (KeyValuePair<string, IGetOperationResult> kvp in multigetRes)
{
Console.WriteLine("MultiGet
}
res = client.ExecuteGet("Test1");
Console.WriteLine("Get1 Success:{0}
StatusCode:
{1} Message:{2}", res.Success, res.StatusCode, res.Message);res = client.ExecuteGet("Test2");
Console.WriteLine("Get2 Success:{0} StatusCode:{1}
Message:
{2}", res.Success, res.StatusCode, res.Message);
}
Output:
Set1 Success:False StatusCode: Message:Failed to locate node
Set2 Success:False StatusCode: Message:Failed to locate node
Dictionary count: 0
Get1 Success:False StatusCode: Message:Unable to locate node
Get2 Success:False StatusCode: Message:Unable to locate node