Tomcatとは
Javaプログラムの一種であるサーブレットを動作させるためのWebコンテナと呼ばれるソフトウェアとなります。Apacheと連携して導入されるOSSのデファクトスタンダートなソフトウェアとなりますので、基本的を理解しておきましょう。ほかにもJBossや富士通社のInterstage Application Server等の製品がありますが、考え方としては似ているところが多いので、まずはtomcatの動きを抑えておくことを推奨します。
Tomcatによるデータベースアクセスの仕組み
Tomcatに限らずですが、一般的にアプリケーションサーバからデータベース(DBMS)に接続する際にはコネクションプールを用いて接続されます。コネクションプールとはアプリケーションがデータベースにアクセスする際に使用される、あらかじめ準備されているコネクションの集合となります。データベース接続要求のたびに接続を確立しにいくと余計なリソースを使ってしまいますので、コネクションプールのコネクションを使いまわして性能劣化を防ぐ効果があります。
- Tomcatのworkerプロセスがコネクションプールの中から利用可能なコネクションを取得
- アプリケーションによるDatabase操作実施
- 使用が終わったコネクションをクローズ
Tomcatのコネクション関連パラメータ
コネクション関連のパラメータの設定方法はいくつかありますが、一例としてご紹介します。
WebアプリケーションのMETA-INFフォルダの直下にcontext.xmlという名前でファイルを作成し、このファイルに接続先のデータベースの場所、JNDI※のアクセス名などの情報を記載します。このファイルをTomcatが読み込むことでコネクションプールが使える状態になります。
※Java Naming and Directory Interface(JNDI)は、ディレクトリ・サービスが提供するデータやオブジェクトを名前で検索し、参照 するのためのAPIです。
コネクションの流量制限に関するパラメータは主に下記の3つです。
<?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>
参考資料
参考にしたサイトを記載しますので、もっと詳細を知りたい方はぜひご覧になってください。おわりに
最後まで読んでいただき、ありがとうございました。ほかにもチューニング関連のコンテンツを配信していますので、ぜひ目を通してもらえると嬉しいです。
コメント