我正在使用一個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: 讀取超時
任何想法爲什麼會發生這種情況?我懷疑有些東西是在它們啓動後關閉這些連接(例如網絡過濾軟件,防火牆...),但是我的工作場所的網絡管理員說沒有流量被阻塞。
solrconfig.xml將提交超時值設置爲50秒,這應該是綽綽有餘。我可能會誤解,但我不認爲需要設置任何其他超時值。 – Kyle
也有分配給底層httpclient庫的solrj超時 – fyr