4

RESTサービスを介してデータベースにデータを取得して投稿するAndroidアプリケーションを開発しています。JavaでJerseyとTomcatを使用してRESTサービスを構成しました。

RESTサービスの開始時に単一のデータベース接続を作成しました。これで、すべてのAndroidクライアントが単一のデータベース接続を使用します。シナリオで単一のデータベース接続を使用することをお勧めします。単一のデータベース接続で複数のデータベース接続を利用できますか。同時リクエスト??

親切に提案してください....

更新 次のシナリオをテストすると、異なる結果が得られます。Getアノテーションのみを使用してJerseyを使用してtomcatで単純なRESTサーバーを構成しました。このアノテーション内に、データベース接続を使用してIDが300の従業員の名前を取得するコードを記述します。 RESTが開始されたときに確立された http://192.168.15.9:8080/Rest/rest/person/sampleので、Webブラウザーに書き込むと、従業員名を取得しました...次に、バッチファイルを作成して100個のタブでURLを開き、バッチファイルを実行しました。同時に、仮想マシンからURLを開き、遅滞なく従業員名を取得しました。また、従業員名は20秒後に100個のタブに表示されます。単一のデータベース接続を同時ユーザーに使用できない場合は、なぜ応答しますか。急速 ??誰か説明してもらえますか?

4

1 に答える 1

5

いいえ、単一のデータベース接続を同時リクエストに使用しないでください。接続プール(基本的には再利用可能な接続のセット)を作成し、必要に応じてプールから接続を取得してから、それをプールに解放する必要があります。

自分でやらないでください!

Tomcatを使用しているため、JDBCデータソースを構成してから、JNDIを使用してこのデータソースへの参照を取得できます。データソースは、自分で接続を作成しなくても、接続を提供します。Tomcatは、内部で接続をプール(アクティブ化、維持、および破棄)します。または、 c3p0
などのカスタム接続プールを使用することもできますが、サーバーが提供する機能を使用することを強くお勧めします。

何らかの理由で、数分以内に製品をデプロイする必要がある場合(つまり、データソースを設定する時間がない場合)、すべてのリクエストに対して接続を開いたり閉じたりする方がよいでしょう。これは無駄ですが、すべてのリクエストにわたる単一の接続。

于 2013-02-04T08:07:41.000 に答える