2011-07-14 28 views
1

我正在使用一個Java應用程序,該應用程序使用SolrJ將文檔索引到Solr服務器。Solr讀超時(僅在生產環境中)

在我的本地測試環境中,我在Windows XP上的Tomcat服務器上運行本地Solr實例。當我從另一個Windows盒子運行Java應用程序時,索引成功完成,Solr日誌文件看起來很正常。

2011年7月14日3:12:

然而,部署運行在Linux Web服務器到另一臺Linux Web服務器通信運行Solr的同一個Java應用程序,我收到的每一Solr的更新命令後,「讀超時」的消息:31 AM org.apache.solr.core.SolrCore執行INFO:[]

web應用=/solr的路徑= /更新PARAMS = {(重量)= javabin &版本= 1}狀態= 400 QTIME = 20020 07月14日2011 3:12:51 AM org.apache.solr.update.processor.LogUpdateProcessor finish INFO:{} 0 20021 Jul 14,2011 3:12:51 AM org.apache.solr.common.SolrException日誌 嚴重:org.apache.solr.common.SolrException: java.net.SocketTimeoutException:讀取超時時間爲 org.apache.solr。 handler.XMLLoader.load(XMLLoader.java:72)在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54) 在...

造成的: javax.xml.stream .XMLStreamException:java.net.SocketTimeoutException: 讀取超時

任何想法爲什麼會發生這種情況?我懷疑有些東西是在它們啓動後關閉這些連接(例如網絡過濾軟件,防火牆...),但是我的工作場所的網絡管理員說沒有流量被阻塞。

回答

0

只有更新或甚至查詢纔會獲取超時時間嗎?

檢查linux服務器機器上的服務器設置是否具有非常短的超時值。

+0

solrconfig.xml將提交超時值設置爲50秒,這應該是綽綽有餘。我可能會誤解,但我不認爲需要設置任何其他超時值。 – Kyle

+0

也有分配給底層httpclient庫的solrj超時 – fyr