見習いプログラミング日記

Javaを中心に色々なことを考えてみます。目指せ本物のプログラマ。

書籍「詳解Tomcat」を読んで

本書のレビューアの方から頂いたので読んでみました。以下、感想です。

詳解 Tomcat

詳解 Tomcat

最近、Twitterのタイムラインで『はじめてのXXXや、XXX 入門じゃなくて、もっと至高のXXXとか終焉のXXXみたいな書籍が欲しい』のような意見を目にした気がしますが、本書はまさに詳解Tomcatでした。設定方法を羅列するのではなく、Tomcatはどういくアーキテクチャで成り立っていて、各機能の詳細な挙動はどのような仕様なのかがまとめられています。

1章 Tomcatとは 〜 2章 Tomcatの基本 までは、背景やインストール方法などの色々な書籍で見かける導入部分の内容です。3章 アーキテクチャからが本番です。

Tomcatアーキテクチャの文書化が嬉しい

普段Tomcatを使っている人であれば、catalina/coyoteといったキーワードはスタックトレースやログで一度は目にした方も多いと思います。本書では、Servletコンテナ実装であるCatalinaアーキテクチャ(3章)およびHTTPコネクタ実装であるCoyote(5章)の全体像が文書化されています。

server.xmlを書いていると、<Service>、<Connector>、<Engine>などのCatalinaを構成するコンポーネント名が出てきますが、お恥ずかしながら今まで私はコンフィグ例を参照しながらなんとなく設定していたので、各コンポーネントの役割が理解できていませんでした。

トラブル対応時、いざTomcatのソースを読む時にアーキテクチャを理解していることはすごく重要だと思います。自身を振り返ると『Tomcat7以前ではなぜリクエスト処理後もスレッドがプールに返らないのか?』、『maxThreadsを超えるリクエストが来た時の仕様はどうなってるの?』などの問い合わせにもっと早く対応できたなと。

Tomcat固有機能の解説が嬉しい

5章 応用機能 以降ではTomcat固有の様々な便利機能の使い方、各機能がどういう仕様なのかが詳解されています。以下のような機能の詳細な解説は他の書籍ではあまり見かけないと思います。

マイグレーションガイドが嬉しい

バージョン間の差分が少ないTomcatではありますが、どんなAPサーバでもバージョンアップ対応は思わぬところでハマることがあるので悩ましい課題です。

9章のマイグレーションガイドには、 Tomcat6.0から8.0までのマイグレーションについて注意したい点、デフォルトパラメータの変更/ 修正が必要なコンフィグなどがまとめられています。

まとめ

詳解Tomcat、以下のような方におすすめです。


余談
中身の仕組みを解説している本は貴重なので、詳解シリーズがもっと増えて『詳解HotSpot』 や『詳解GlassFish』とかが出ると嬉しいなぁと。