您可以增加数据库允许的数据库连接数,但这不是真正的解决方案。如果SOLR在建立索引时会建立很多连接,那么您站点的其他部分可能会开始“#34;连接太多而且#34;”这样做并不好。
实际上,SOLR完全导入会产生如此多的连接,以至于150个最大连接失败了。
以下是一些统计数据: 1)我启动完全重建索引 2)之后几秒钟:
mysql> SHOW PROCESSLIST; | Id | User | Host | db | Command | Time | | 158 | xxx | localhost:58804 | yyy | Query | 0 | | 159 | xxx | localhost:58810 | yyy | Sleep | 3 | | 160 | xxx | localhost:58811 | yyy | Sleep | 1 | | 161 | xxx | localhost:58812 | yyy | Sleep | 1 | ... | 255 | xxx | localhost:58906 | yyy | Sleep | 0 | | 256 | xxx | localhost:58907 | yyy | Sleep | 0 |
3)导入因以下原因失败:
引起:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接太多
我没有在solrconfig.xml中找到一个参数来解决这个问题。顺便说一下SOLR版本是1.3。
非常感谢!
P.S。更多信息:在日志中我看到:
INFO: Creating a connection for entity abc with URL: jdbc:mysql://10.0.2.2/xyz INFO: Time taken for getConnection(): 9
这会重复数百次,直到达到我的本地最大连接数限制(151)并出错。我不知道为什么SOLR为每个实体打开一个新的连接。我希望这是可以修复的,因为它看起来不像是正确的行为。有谁知道升级到1.4或4.0是否可以解决这个问题?
再次感谢!
P.P.S。我还要加一个猜测。它只为每个实体或子实体打开一个连接:我拥有的结构是一个巨大的实体和超过160个子实体。 并且http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201205.mbox/%3CA1EB2532250E8945BC3E1FA3AE836F6BE1118F18@adonia.local.uship.com%3E说solr有一个错误...如果有人知道其他修复,那么升级,请告诉。