0
我知道couchbase的建議是創建一個單一的couchbase客戶端實例,並在整個應用程序中重複使用。但在我的情況下,創建幾個會更容易,因爲它們可能會連接到幾個不同的couchbase服務器,創建實例的時間使用率在這種情況下不是一個因素。但是,似乎創建兩個實例到同一臺服務器失敗。請看下面的代碼:問題同時couchbase客戶端對同一個couchbase服務器
var section = (CouchbaseClientSection)<Section of configuration read from web.config>;
var client1 = new CouchbaseClient(section);
//a call to fetch data from client1 here succeeds just fine
var client2 = new CouchbaseClient(section);
//a call to fetch data from client2 here fails with the following message:
//{"Operation is not valid due to the current state of the object."}
有輕微的修改,並創建第二個之前配置的第一個客戶,它工作得很好:
var section = (CouchbaseClientSection)<Section of configuration read from web.config>;
var client1 = new CouchbaseClient(section);
//a call to fetch data from client1 here succeeds just fine
client1.Dispose();
var client2 = new CouchbaseClient(section);
//a call to fetch data from client2 here succeeds just fine
其次,如果客戶機程序正在走向另一個coiuchbase實例指向,它也能正常工作:
var section1 = (CouchbaseClientSection)<Section of configuration read from web.config>;
var section2 = (CouchbaseClientSection)<Another section of configuration read from web.config>;
var client1 = new CouchbaseClient(section1);
//a call to fetch data from client1 here succeeds just fine
var client2 = new CouchbaseClient(section2);
//a call to fetch data from client2 here succeeds just fine
因此,如果有兩個活動連接實現在同一時間同一couchbase實例中打開它只是失敗了,但我有在couchbase文檔中沒有發現任何內容,表明這是一個問題。 爲什麼第一個例子失敗?
有沒有人有和我一樣的問題?在某些地方是否需要更改某些設置以允許這樣做?
我不知道當前版本的庫,但在以前的版本(可能是1.2.1)我已經成功創建多個客戶端實例到同一個桶(實際上這是我的錯誤,因爲我創建了一個每個對象的客戶端實例 - 客戶端初始化在對象構造函數中),但它工作。現在可能是開發者添加了一些萬無一失的檢查,以防止像我這樣的人做這樣的事情。 – m03geek