
Payara Server 5における接続プールのご紹介
このブログ記事では、接続プールについて紹介し、ベスト・プラクティスを用いてPayara Serverで接続プールを設定する方法を紹介します。 (最終更新日 2021/04/06) 接続プールとは? 接続プールとは、データベースへの接続とその再利用(最も重要なことです)に使用できるデータベース接続のストアです。 接続プールの必要性 データベース接続は、作成するのにも維持するのにもコストがかかります。その理由は、以下のように様々です。 データベースサーバーへのネットワーク接続の確立 接続文字列情報の解析 ユーザー認証の実行 データベースへの接続の初期化 トランザクションのコンテクストの確立 一人のユーザーが使用するWebアプリケーションの場合、ユーザー・セッションの開始時にデータベース接続を作成し、終了時にデータベース接続を閉じることができます。しかし、これは非常に可能性の低いシナリオです。 さて、より現実的なシナリオとして、あなたのWebアプリケーションに何百人、何千人ものユーザーがアクセスすることを想像してみてください。各ユーザーのセッションでデータベースへの接続が行われると、まず接続が確立されるまでの間、ユーザーには遅延が生じ、次にシステム全体のパフォーマンスが低下します。 つまり、「なぜ必要なのか」という問いに対しては、「システムのパフォーマンスとスケーラビリティの両方を向上させるため」ということになります。 接続プールの働き 接続プールは、必要になるたび新しい接続を作成するのではなく、アプリケーション・サーバーの起動時に作成します。これらの接続は、使用したり再利用したりすることができます。新しい接続が必要になると、プールの中から利用可能な接続を探します。もし利用可能なものがあれば、リクエスターに返されます。利用可能な接続がない場合は、プール内の接続数やプールの構成に応じて、リクエストがキューイングされるか、新しい接続が確立されます。接続が終了すると、接続を閉じるのではなく、接続プールに戻され、次のリクエスターが使用できるようになります。 さて、これで理論的な話は終わりです。では、実際にはどのように機能するのでしょうか? […]