Couchbase - получение view_undefined после доступа к вновь созданному производственному представлению

Я создаю производственное представление в Couchbase, используя

HttpFuture<Boolean> asyncResult = client.asyncCreateDesignDoc(designDocProd);
Boolean success = asyncResult.get();

(Отсутствие префикса "dev_" в имени документа Design Doc создает его как Production View, а не Dev View)

Убедившись, что успех действительно равен истине, я пытаюсь получить доступ к представлению с помощью couchbaseClient.query (view, query), но затем получаю следующую ошибку:

SERVER: unknown_error Reason: view_undefined

(Ниже приведена трассировка полного стека, если необходимо)

Если добавить засыпание 5 секунд, все работает хорошо ...

Кто-нибудь сталкивался с этой проблемой? я что-то упускаю?

Спасибо

Эяль

Полная трассировка стека:

Caused by: java.lang.RuntimeException: Failed to access the view
    at com.couchbase.client.CouchbaseClient.query(CouchbaseClient.java:871)
    .
    .
Caused by: java.util.concurrent.ExecutionException: OperationException: SERVER: unknown_error Reason: view_undefined
    at com.couchbase.client.internal.HttpFuture.waitForAndCheckOperation(HttpFuture.java:90)
    at com.couchbase.client.internal.HttpFuture.get(HttpFuture.java:74)
    at com.couchbase.client.internal.HttpFuture.get(HttpFuture.java:64)
    at com.couchbase.client.CouchbaseClient.query(CouchbaseClient.java:864)
... 54 more
Caused by: OperationException: SERVER: unknown_error Reason: view_undefined
    at com.couchbase.client.protocol.views.NoDocsOperationImpl.parseError(NoDocsOperationImpl.java:106)
    at com.couchbase.client.protocol.views.ViewOperationImpl.handleResponse(ViewOperationImpl.java:68)
    at com.couchbase.client.ViewNode$MyHttpRequestExecutionHandler.handleResponse(ViewNode.java:204)
    at org.apache.http.nio.protocol.AsyncNHttpClientHandler.processResponse(AsyncNHttpClientHandler.java:417)
    at org.apache.http.nio.protocol.AsyncNHttpClientHandler.inputReady(AsyncNHttpClientHandler.java:242)
    at com.couchbase.client.http.AsyncConnectionManager$ManagedClientHandler.inputReady(AsyncConnectionManager.java:249)
    at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:172)
    at org.apache.http.impl.nio.DefaultClientIOEventDispatch.inputReady(DefaultClientIOEventDispatch.java:155)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:161)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:335)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:275)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
    at java.lang.Thread.run(Thread.java:662)

person Eyal Katz    schedule 19.06.2014    source источник
comment
Перед подключением к Couchbase вы должны установить для режима просмотра системных свойств значение production или development. например System.setProperty ('режим просмотра', 'разработка'); подробнее: javacodegeeks .com / 2013/01 /   -  person user1697575    schedule 19.06.2014
comment
По умолчанию режим просмотра является производственным, и я использую его ... Но как это связано с проблемой, которую я представил? (т.е. что представление не найдено CB, хотя я только что его создал)   -  person Eyal Katz    schedule 19.06.2014
comment
Просто попробуйте явно установить режим производственного просмотра ... может быть, это будет иметь значение ... также попробуйте установить query.setStale (Stale.FALSE); впервые вы вызываете это представление ... возможно, оно будет блокироваться до тех пор, пока представление не будет полностью построено.   -  person user1697575    schedule 19.06.2014
comment
Я устанавливаю в своем запросе stale = false. Как вы думаете, почему это проблема с «производственным режимом»? в частности, когда проблема `` решена '', если я установил пятисекундную задержку между созданием представления и его запросом ...   -  person Eyal Katz    schedule 19.06.2014
comment
Что ж, это были мои предположения, чтобы вы попробовали. Похоже, CB требуется некоторое время (~ 5 секунд) для построения определений индексов. Планируете ли вы создавать индексы по запросу? Если нет, то небольшая задержка после создания индекса, на мой взгляд, не является проблемой ... поскольку последующие вызовы запросов не имеют таких проблем.   -  person user1697575    schedule 19.06.2014