WebOTX運用編(TomcatからWebOTXへの移行ガイド)

1 はじめに

Webシステム構築において、コスト削減の面からオープンソース導入が注目されています。しかし、保守運用までを見据えた場合、本当にコスト削減が達成できるのか、という疑問の声もよく耳にします。

WebOTX V8シリーズでは、サン・マイクロシステムズ社が中心に仕様策定した、エンタープライズ領域のJava仕様「Java Platform, Enterprise Edition 5 (Java EE 5)」に準拠した製品を提供しています。WebOTX ASは、その機能群の中のWeb層として、Apache TomcatプロジェクトのオープンソースTomcat 6.0をベースにサーブレットやJSPなどのWebアプリケーション実行環境(Webコンテナ)を組み込んでいます。

WebOTX V8.1以降で提供するWebコンテナは、Apache Tomcat 6.0.16 をベースに品質の改良、機能の追加、性能の向上、運用性の強化などを施しています。このため、現在Apache Tomcat (以下、略してTomcatと呼びます) 上で動作しているWebアプリケーションを少ない労力でWebOTXに移行でき、かつ、システムの信頼性、運用性、性能等の向上を手に入れることができます。

対象読者

本書は、既にTomcatを利用して何らかのシステムを運用している方や、利用経験のある方、Tomcatの知識を有している方などを対象に、既存のTomcatによる構築済みシステムをWebOTXに移行する際の作業を支援するガイドブックです。

対象とする移行パターンは以下のとおりです。

Tomcat 3.x → WebOTX V8.x

Tomcat 4.x → WebOTX V8.x

Tomcat 5.0.x → WebOTX V8.x

Tomcat 5.5.x → WebOTX V8.x

Tomcat 6.x → WebOTX V8.x

表記について

パス名表記

本書ではパス名の表記については特にOSを限定しない限りセパレータはスラッシュ’/’で統一しています。Windows環境においては’\’に置き換えてください。

環境変数表記

インストールディレクトリやドメインルートディレクトリなど環境によって値の異なるものについては環境変数を用いて表します。

${env} または $(env)で表しています。

コマンド操作について

本書中では運用操作に用いるコマンドの詳細についての説明は省略しています。

コマンドの詳細は「運用管理コマンド」、「運用管理コマンドリファレンス」を参照してください。

1.1 ソフトウェア条件

WebOTXがサポートするソフトウェアについて説明します。

WebOTXに移行することにより、J2SE SDKやデータベースのバージョンを変更する場合、関連するソフトウェアのバージョンアップの必要性を確認してください。

詳細については、「WebOTXマニュアル セットアップガイド」−「1.使用上の条件」をご覧ください。

1.1.1. 対象プラットフォーム

WebOTX V6.5 がサポートするOSとJ2SE SDKのバージョンは次の表のとおりです。

OSJ2SE SDK 1.4.2J2SE 5.0
Windows 2000 Server
Windows Server 2003
Windows Server 2003(IPF版)○※×
Windows Server 2003 x64 Edition×○(Update4 以降)
HP-UX 11i v1○※
(1.4.2.05以降)
○※
HP-UX 11i v2
(1.4.2.05以降)

(5.0.02 以降)
Solaris 8○※○※
Solaris 9
RHEL AS/ES 4.0

※WebOTX V6.31でのサポート

WebOTX V7 がサポートするOSとJ2SE SDKのバージョンは次の表のとおりです。

OSJ2SE SDK 1.4.2J2SE 5.0J2SE 6.0
Windows 2000 Server
Windows Server 2003
Windows Server 2003(IPF版)××
Windows Server 2003 x64 Edition×○(Update4 以降)
HP-UX 11i v1
(1.4.2.05以降)
×
HP-UX 11i v2
(1.4.2.05以降)

(5.0.02 以降)
×
Solaris 8
Solaris 9
RHEL AS/ES 4.0

WebOTX V8 がサポートするOSとJ2SE SDKのバージョンは次の表のとおりです。

OSJ2SE SDK 5.0J2SE 6.0
Windows 2000 Server
Windows Server 2003
Windows Server 2003(IPF版)××
Windows Server 2003 x64 Edition
(Update4 以降)
HP-UX 11i v1×
HP-UX 11i v2
(5.0.02 以降)
×
Solaris 8
Solaris 9
RHEL AS/ES 4.0
MIRACLE LINUX V4.0

1.1.2. Webサーバ

WebOTXがサポートする外部Webサーバは次の表のとおりです。

Webサーババージョン
WebOTX Webサーバ1.3.x、2.0.x  ※詳細は下表参照
Apache HTTP Server1.3.x、2.0.x  ※詳細は下表参照
Internet Information Server (IIS)5.0、6.0、7.0
Sun Java System Web Server 6.16.1
Sun ONE Web Server6.0
※HP-UX 11i v2は未サポート

WebOTXの各バージョンでサポートするWebOTX Webサーバ、Apache HTTP Serverの各バージョンは次のとおりです。

WebOTXWebOTX Webサーバ、Apache HTTP Server
バージョン
WebOTX V6.11.3.31以降、2.0.52以降
WebOTX V6.21.3.33以降、2.0.54以降
WebOTX V6.31.3.34以降、2.0.55以降
WebOTX V6.41.3.36以降、2.0.58以降
WebOTX V7.11.3.37以降、2.0.59以降
WebOTX V8.11.3.41以降、2.0.63以降

1.1.3. データベース

WebOTXのサポート対象となるデータベースは、次の表のとおりです。

また、JDBCデータソース、Transactionサービス(JTA)をご使用になる場合、使用するデータベースに対応したJDBC 2.0 または JDBC 3.0の仕様に準拠しているJDBCドライバをインストールする必要があります。

その他の製品についても、JDBC 2.0または、JDBC 3.0の仕様に準拠しているJDBCドライバであれば、使用することができます。

WebOTX V6.5のサポート対象のデータベースは次のとおりです。

JDBCベンダJDBCドライバタイプサポートするデータベース・サーバ備考
OracleType2、4Oracle8i R8.1.6 (JTA連携を行う場合は、 Oracle R8.1.7以降)(※1)
Oracle8i R8.1.7-
Oracle9i Database Release 1 (9.0.1)(※2)
Oracle9i Database Release 2 (9.2.0)
Oracle Database 10g Release 1 (10.1.0)
Oracle Database 10g Release 2 (10.2.0)
IBMType4DB2 Universal Database 8.1.4-
MicrosoftType4Microsoft SQL Server 2000-
Microsoft SQL Server 2005-
SybaseType4Sybase Adaptive Server Enterprise 12.5-
DataDirectType4「Connect for JDBC 3.3以降」経由によるOracle接続-
Type3「SequeLink for JDBC 5.0」経由によるOracle接続-
PostgreSQL Development GroupType4PostgreSQL 7.3.2 (JDBCドライバ 7.3-113) 〜 8.1.2 (JDBCドライバ 8.1-404)
(JTA連携を行う場合は、バージョン 8.1.0 以降)
(※3)
CloudscapeType4Cloudscape 3.0.3 (Sun J2EE 1.3.1 SDKにバンドルされるもの)-

(※1)Oracle8i R8.1.6を使用して2フェーズコミットを行う場合には、JDBCデータソースのデータソースタイプに「JDBC」を指定してJDBCデータソースのJTA機能を利用してください。
または、JDBCドライバとしてSequeLinkを使用してください。

(※2)OracleのReal Application Cluster(RAC)とX/Open XAの機能を利用して2フェーズコミットを行うためには、必ず次のパッチを適用してください。
・ PSR 10.1.0.3
・ PSR 9.2.0.7
パッチの詳細についてはOracle社の情報をご参照ください。

(※3)PostgreSQLを使用して2フェーズコミットを行う場合には、PostgreSQL 8.1と、バージョン8.1-404のJDBCドライバを使用してください。

WebOTX V7.1のサポート対象のデータベースは次のとおりです。

JDBCベンダJDBCドライバタイプサポートするデータベース・サーバ備考
OracleType2、4Oracle8i R8.1.7-
Oracle9i Database Release 1 (9.0.1)(※1)
Oracle9i Database Release 2 (9.2.0)
Oracle Database 10g Release 1 (10.1.0)
Oracle Database 10g Release 2 (10.2.0)
IBMType4DB2 Universal Database 8.1.4-
DB2 V9.1-
MicrosoftType4Microsoft SQL Server 2000-
Microsoft SQL Server 2005-
SybaseType4Sybase Adaptive Server Enterprise 12.5-
DataDirectType4「Connect for JDBC 3.3以降」経由によるOracle接続-
Type3「SequeLink for JDBC 5.0」経由によるOracle接続-
PostgreSQL Development GroupType4PostgreSQL 7.3.2 (JDBCドライバ 7.3-113) 〜 8.1.2 (JDBCドライバ 8.1-404)
(JTA連携を行う場合は、バージョン 8.1.0 以降)
(※3)
CloudscapeType4Cloudscape 3.0.3 (Sun J2EE 1.3.1 SDKにバンドルされるもの)-
Apache DerbyType4Apache Derby 10.2.2.0-

(※1)OracleのReal Application Cluster(RAC)とX/Open XAの機能を利用して2フェーズコミットを行うためには、必ず次のパッチを適用してください。
・ PSR 10.1.0.3
・ PSR 9.2.0.7
パッチの詳細についてはOracle社の情報をご参照ください。

(※2)PostgreSQLを使用して2フェーズコミットを行う場合には、PostgreSQL 8.1と、バージョン8.1-404のJDBCドライバを使用してください。

WebOTX V8.1のサポート対象のデータベースは次のとおりです。

JDBCベンダJDBCドライバタイプサポートするデータベース・サーバ備考
OracleType2、4Oracle9i Database Release 1 (9.0.1)(※1)
Oracle9i Database Release 2 (9.2.0)
Oracle Database 10g Release 1 (10.1.0)
Oracle Database 10g Release 2 (10.2.0)
Oracle Database 11g Release 1 (11.1.0)
IBMType4DB2 Universal Database 8.1.4-
DB2 V9.1-
MicrosoftType4Microsoft SQL Server 2000-
Microsoft SQL Server 2005-
SybaseType4Sybase Adaptive Server Enterprise 12.5-
DataDirectType4「Connect for JDBC 3.3以降」経由によるOracle接続-
Type3「SequeLink for JDBC 5.0」経由によるOracle接続-
PostgreSQL Development GroupType4PostgreSQL 7.3.2 (JDBCドライバ 7.3-113) 〜 8.3.1 (JDBCドライバ 8.3-603)(※2)
CloudscapeType4Cloudscape 3.0.3 (Sun J2EE 1.3.1 SDKにバンドルされるもの)-
Apache DerbyType4Apache Derby 10.2.2.0-

(※1)OracleのReal Application Cluster(RAC)とX/Open XAの機能を利用して2フェーズコミットを行うためには、必ず次のパッチを適用してください。
・ PSR 10.1.0.3
・ PSR 9.2.0.7
パッチの詳細についてはOracle社の情報をご参照ください。

(※2)PostgreSQLを使用して2フェーズコミットを行う場合には、バージョン8.1以降のPostgreSQLと、バージョン8.1-404以降のJDBCドライバを使用してください。

1.1.4. 同梱するライブラリ

WebOTXに同梱しているライブラリとバージョンは次の表のとおりです。

名称V6.1V6.2V6.31V6.4V6.5.02V7.1V8.11
V8.12
Java Beans Activation Framework (JAF)1.0.21.0.21.0.21.0.21.0.21.0.21.0.2
JavaMail1.3.11.3.11.3.11.3.11.3.11.3.11.3.1
JAXP1.2.51.2.51.2.51.2.51.2.51.3.041.3.04
Ant1.5.41.5.41.5.41.5.41.5.41.6.51.7.0
Jakarta Commons BeanUtiles1.6.11.6.11.7.01.7.01.7.01.7.01.7.0
Jakarta Commons Codec1.21.31.31.31.31.31.3
Jakarta Commons Collections2.112.112.112.112.112.112.11
Jakarta Commons Digester1.51.61.71.71.81.81.8
Jakarta Commons Discovery0.20.20.20.20.40.40.4
Jakarta Commons EL1.01.01.01.01.01.01.0
Jakarta Commons FileUpload1.01.0同梱なし同梱なし同梱なし同梱なし同梱なし
Jakarta Commons Launcher1.0-dev1.11.11.11.11.11.1
Jakarta Commons Logging1.0.41.0.41.0.41.0.41.11.11.1
Jakarta Commons Modeler1.11.11.11.12.02.02.0
Jakarta Regexp1.31.31.41.41.41.51.5
Log4j1.2.81.2.81.2.131.2.131.2.141.2.141.2.15
XML Xerces 2 Java Parser2.5.02.5.02.5.02.5.02.5.02.9.02.9.1
XML Xalan Java 22.5.22.5.22.5.22.5.22.5.22.7.02.7.1
The Web Services Description Language
for Java Toolkit (WSDL4J)
1.41.41.41.41.41.41.4

1.1.5. クラスのロードについて

Webアプリケーションで利用するJavaのクラスを実行するためにロードを行う機能としてクラスローダがあります。

クラスローダには階層があります。上位のクラスローダでロードされたクラスからは下位のクラスローダでロードされたクラスは参照することができません。

逆に、下位のクラスローダでロードされたクラスからは、上位のクラスローダでロードされたクラスは参照することができます。

WebOTX のクラスローダの階層は次のようになります。

domain1/lib/ext
  ↓
classpath
  ↓
WebOTX/lib
  ↓
domain1/lib
  ↓
WEB-INF/lib

また、nec-web.xml のdelegate の設定により、ロードする優先順位を決定することができます。

同じ名前のライブラリがあると、競合が発生し、優先順位の高いパスに含まれるライブラリが利用されます。

ロードされるライブラリの優先順位はdelegate=true の場合は以下のようになります。delegate の設定はWebAP のWEB-INF/nec-web.xml で設定します。

domain1/lib/ext
  ↓
WebOTX/lib
  ↓
classpath
  ↓
domain1/lib
  ↓
WEB-INF/lib

delegate=false の場合は以下のようになります。

WEB-INF/lib
  ↓
domain1/lib/ext
  ↓
WebOTX/lib
  ↓
classpath
  ↓
domain1/lib