使用SolrNet对Solr服务器的间歇连接超时

时间:2012-01-05 10:39:19

标签: solr solrnet

我有一个托管搜索的生产网络服务器,以及托管Solr搜索服务器的另一台机器(位于同一房间的子网上,因此没有网络问题)。一切都很好> 90%的时间,但我一直得到少量的The operation has timed out错误。

我已将SolrNet init中的超时时间增加到 30 秒(!)

SolrNet.Startup.Init<SolrDataObject>(
    new SolrNet.Impl.SolrConnection(
        System.Configuration.ConfigurationManager.AppSettings["URL"]
    ) {Timeout = 30000}
);

...但是所有发生的事情都是我开始收到此消息而不是之前看过的Unable to connect to the remote server。它似乎对超时错误的数量没有任何影响。

我可以在任何日志中看到 nothing (相信我,我看过了!),显然我的配置是正确的,因为它在大多数时间都有效。任何想法如何能找到关于这个问题的更多信息?

修改

我现在已经将HttpRequest连接的数量从2增加到“大数”(我看到多达10个连接) - 但这对此问题没有明显的影响。

防火墙设置为允许两台计算机之间的任何连接。

我们还使用我们的服务器主机检查了硬件,并且连接没有问题。据他们说。

编辑2:

我们仍然看到这个问题。

我们现在正在记录超时,它们大多只是超过30秒 - 这是SolrNet层的超时;但有些是20秒 - 这是Tomcat的默认超时时间 - 这表明它们是机器之间实际连接的一部分。

不知道从哪里开始 - 他们在VLAN上我们专门使用VLAN地址 - ping的响应时间总是<1ms。

2 个答案:

答案 0 :(得分:2)

如果没有更多信息,我只能猜出几个可能的原因:

答案 1 :(得分:0)

尝试在.net。

中设置此项

ServicePointManager.Expect100Continue = false;

或者

ServicePointManager.SetTcpKeepAlive(true, 200000, 200000); - 这会向服务器发送请求以保持连接活动。