SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

ApacheModuleでWebアプリケーションをつくろう

コーディングでApacheModuleの開発プロセスをまなぶ

  • このエントリーをはてなブックマークに追加

8.JNDIのデータベースコネクションプールを使用したJava Webアプリケーション

 先ほど作成したApache Moduleと同じように、データベースから値を取得して画面表示を行うようにしましょう。コードの説明、コンパイル、Tomcatへのデプロイは各所で紹介されていると思いますので省略し、ここではディレクトリ構成のみを記載します。

 なお、PostgreSQLのJDBCドライバはこちらから入手して下さい。

対応するサンプルコード
ディレクトリ構成
$TOMCAT_HOME/
 |_conf
 | |_server.xml
 |
 |_lib
 | |_postgresql-8.2-506.jdbc2.jar
 | |_postgresql-8.2-506.jdbc2ee.jar
 | |_postgresql-8.2-506.jdbc3.jar
 |
 |_webapps
   |_test
      |_WEB-INF
         |_classes
         |  |_HelloWorldServlet.class
         |_lib
         |_web.xml

 Tomcatを起動してブラウザからURL 「http://(ホストIPアドレス):8080/test/servlet/myservlet」にアクセスすると次のような画面になります。

動作確認結果
動作確認結果

9.Apacheモジュールと Java Webアプリケーションの性能比較

 ApacheモジュールとJavaそれぞれのWebアプリケーションが準備できました。早速処理速度の比較を行ってみましょう。比較にはApache Bench(以下、AB)を使用します。

 Apache HTTP ServerとTomcatを起動させたら、まずローカルホスト上でABコマンドを10回実行します。これは各アプリケーションをキャッシュに乗せ、安定した状態を作り出すためです。

 準備が整ったら計測を開始しましょう。処理内容は「データベースから50件のデータを取得して表示する」こととします。計測に用いるコマンドは以下のとおりです(参考:「ab - Apache HTTP server benchmarking tool」)。

処理速度計測用コマンド
対象サーバコマンド
Apache HTTP Server用ab -n 100 -c 10 http://localhost/test
Tomcat用ab -n 100 -c 10 http://localhost:8080/test/servlet/myservlet

 ABコマンド実行後に表示される項目から計測結果をチェックします。「Requests per second」が処理速度の比較結果をあらわします。また、「Failed requests」の値からレスポンスに異常が発生していないこともチェックしておきましょう。

 筆者が行った計測の結果は以下のとおりでした。

処理速度の測定結果
モジュールRequests per secondWrite errors
Apacheモジュール272.43 0
Java Webアプリケーション229.560

 Apacheモジュールの方がJava Webアプリケーションよりも1秒間あたり43リクエスト分多く処理できています。比率にすれば約1.2倍の処理速度です。今回の計測がデータベースから文字データを取得して表示するだけの処理であることを考えれば、この数値は意外と大きいのではないかと感じます。Javaに不利な処理などが入るともっと違った結果がでるのかもしれません。

 条件面では、C言語ではテンプレートエンジンClearSilverを使用したので、JavaにはJSPを使用しても良かったかなと思います。より実践的な比較を考えるならば、JavaではStruts2を使ってみるのも面白いかもしれません。

10.参考資料

書籍
Webページ
Webページ(コネクションプールを使用しないDBアクセスサンプルの紹介サイト)

次のページ
付録1.PostgreSQLのインストール

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

タケル(タケル)

攻殻機動隊の『笑い男』に憧れていて、いつかタチコマには追いつきたいと願うSE

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2502 2008/06/16 14:30

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング