在Couchbase查询超时时告诉您

时间:2013-07-25 21:05:43

标签: c# .net memcached couchbase

我使用.NET客户端与couchbase进行交互。我需要能够将调用失败的原因区分到我的couchbase框并准确记录它们。我试过在我的测试环境中引发超时,但我一直无法做到。

读取.net客户端documentation似乎ExecuteGet返回包含异常属性和状态代码属性的IGetOperationResult对象。状态代码显示为correspond to this table。我没有在.NET客户端的文档中找到它是否抛出像Java客户端这样的异常。此外,memcached表中的状态代码似乎没有与超时相对应的明确状态代码值。

除了没有返回值之外,如何判断是否已超出配置的超时?

1 个答案:

答案 0 :(得分:2)

仅当发送来自服务器的响应时才设置StatusCode属性。超时将导致服务器无响应,因此为null StatusCode。连接超时应导致在GetOperationResult ...

上填充Exception值

https://github.com/couchbase/couchbase-net-client/blob/2dc8a63208dfa8b991290d128b14002ad4c43f53/src/Enyim.Caching/Memcached/PooledSocket.cs#L68

然而,很可能在Enyim堆栈的某个地方,原始的超时异常被吞并并在另一个异常中被重新包装。当您遇到超时时,您是否看到了Exception属性的任何值?