11

MongoDB Java ドライバーのドキュメントによると、データベース接続プールは Mongo オブジェクトによって魔法のように処理されます。

これは、Tomcat の起動時に実行されるサーブレットで MongoDB データベースに接続するシングルトン オブジェクトのインスタンスを作成しても安全であり、context.xml を介して Tomcat でデータベース接続プールを構成することを心配しないということですか?

これはそれについて考える正しい方法ですか?一般に、Tomcat/データベース接続プーリングの基本的な概念を誤解していますか?

4

1 に答える 1

9

私たちはCFMongoDBプロジェクトを介してJavaドライバーを使用してきましたが、あなたが説明したように使用していますが、JavaではなくColdFusionアプリケーションで使用しています。同じ考えですが、1 つのオブジェクトが作成されて再利用され、そのオブジェクトは Mongo サーバーへの 1 つの接続を維持します。

1 つの Mongo Java インスタンスを作成すると、接続の内部プール (デフォルト サイズは 10) が維持されます。これは非表示であり、心配する必要はありません。Mongo Java docs はこれを推奨しています:

http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency

現在、本番環境で稼働しており、問題はありません。複数の Web リクエスト スレッドが同じ Mongo インスタンスを使用し、Mongo は内部プールを使用してこれを処理するのに十分な速さです (非常に高速に書き込むことができるようにログを記録しています!)。

終了したインスタンスを呼び出すことを忘れないclose()でください。これにより、時間の経過とともに Mongo サーバーで接続が使い果たされるのを防ぐことができます。

http://api.mongodb.org/java/2.5-pre-/com/mongodb/Mongo.html#close ()

要約すると、Tomcat の構成について心配する必要はありません。

それが役立つことを願っています!

于 2011-01-10T19:08:34.797 に答える