DB に許可されるデータベース接続の数を増やすことはできますが、それは実際の解決策ではありません。インデックス作成時に SOLR が多数の接続を作成すると、サイトの他の部分で「接続が多すぎます」というメッセージが表示される可能性があり、これは好ましくありません。
実際、SOLRの完全インポートは非常に多くの接続を作成するため、最大接続数が150で失敗します。
統計の一部を以下に示します: 1) 完全な再インデックスを開始します 2) その数秒後:
mysql> SHOW PROCESSLIST; | | ID | ユーザー | ホスト | ホスト デシベル | コマンド | 時間 | | | 158 | xxx | ローカルホスト:58804 | yyy | yyy | クエリ | 0 | | | 159 | xxx | ローカルホスト:58810 | yyy | yyy | 睡眠 | 3 | | | 160 | xxx | ローカルホスト:58811 | yyy | yyy | 睡眠 | 1 | | | 161 | xxx | ローカルホスト:58812 | yyy | yyy | 睡眠 | 1 | ... | | 255 | xxx | ローカルホスト:58906 | yyy | yyy | 睡眠 | 0 | | | 256 | xxx | ローカルホスト:58907 | yyy | yyy | 睡眠 | 0 |
3) 次の理由でインポートが失敗します。
原因: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 接続が多すぎます
これを解決するために solrconfig.xml に配置するパラメーターが見つかりませんでした。ちなみにSOLRのバージョンは1.3です。
どうもありがとう!
PSもう少し情報:私が見るログで:
情報: 次の URL でエンティティ abc の接続を作成しています: jdbc:mysql://10.0.2.2/xyz 情報: getConnection() にかかった時間: 9
これは、ローカルの最大接続数の制限 (151) に達してエラーが発生するまで、何百回も繰り返されます。SOLR がすべてのエンティティに対して新しい接続を開いている理由がわかりません。正しい動作のようには見えないため、これが修正可能であることを願っています。1.4 または 4.0 にアップグレードすることでこれを修正できるかどうかは誰にもわかりませんか?
再度、感謝します!
PPS私も推測を追加します。エンティティまたはサブエンティティごとに正確に 1 つの接続を開きます。私が持っている構造は、1 つの巨大なエンティティと 160 を超える子エンティティです。そしてhttp://mail-archives.apache.org/mod_mbox/lucene-solr-user/201205.mbox/%3CA1EB2532250E8945BC3E1FA3AE836F6BE1118F18@adonia.local.uship.com%3Eは solr にバグがあると言っています...アップグレード以外の修正について教えてください。