【Tomcat】コネクションプールのチューニングによる流量制限の方法をまとめてみた。

Tomcatとは

Javaプログラムの一種であるサーブレットを動作させるためのWebコンテナと呼ばれるソフトウェアとなります。Apacheと連携して導入されるOSSのデファクトスタンダートなソフトウェアとなりますので、基本的を理解しておきましょう。ほかにもJBossや富士通社のInterstage Application Server等の製品がありますが、考え方としては似ているところが多いので、まずはtomcatの動きを抑えておくことを推奨します。

Tomcatによるデータベースアクセスの仕組み

Tomcatに限らずですが、一般的にアプリケーションサーバからデータベース(DBMS)に接続する際にはコネクションプールを用いて接続されます。コネクションプールとはアプリケーションがデータベースにアクセスする際に使用される、あらかじめ準備されているコネクションの集合となります。データベース接続要求のたびに接続を確立しにいくと余計なリソースを使ってしまいますので、コネクションプールのコネクションを使いまわして性能劣化を防ぐ効果があります。

  1. Tomcatのworkerプロセスがコネクションプールの中から利用可能なコネクションを取得
  2. アプリケーションによるDatabase操作実施
  3. 使用が終わったコネクションをクローズ

Tomcatのコネクション関連パラメータ

コネクション関連のパラメータの設定方法はいくつかありますが、一例としてご紹介します。
WebアプリケーションのMETA-INFフォルダの直下にcontext.xmlという名前でファイルを作成し、このファイルに接続先のデータベースの場所、JNDI※のアクセス名などの情報を記載します。このファイルをTomcatが読み込むことでコネクションプールが使える状態になります。

※Java Naming and Directory Interface(JNDI)は、ディレクトリ・サービスが提供するデータやオブジェクトを名前で検索し、参照 するのためのAPIです。

コネクションの流量制限に関するパラメータは主に下記の3つです。

下記にOracleデータベースに対するアクセスにおけるcontext.xmlの記載例を記載します。
<?xml version="1.0" encoding="UTF-8"?>
<Context displayName="Sample DataSource" docBase="LoginTemplate"
path="/LoginTemplate" reloadable="true" >
<Resource name="jdbc/LoginTemplate"
auth="Container"
type="javax.sql.DataSource"
username="[スキーマ名]"
password="[パスワード]"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@[ホスト名]:[ポート番号]:ORCL" 
maxIdle="2"
maxTotal="20"
maxWaitMillis="5000"/>
</Context>

参考資料

参考にしたサイトを記載しますので、もっと詳細を知りたい方はぜひご覧になってください。
JDBC Connectivity
Apache Software Foundation

おわりに

最後まで読んでいただき、ありがとうございました。ほかにもチューニング関連のコンテンツを配信していますので、ぜひ目を通してもらえると嬉しいです。

【Tomcat】並列処理の仕組みと流量制限のためのチューニング方法

【Apache】並列処理の仕組みとチューニング方法をまとめてみた。

コメント