Cosminexus 機能解説
サーブレットエンジンモードは互換用のサーバの動作モードです。旧バージョンでサーブレットエンジンモードを使用していた場合には,推奨の動作モードであるJ2EEサーバモードの1.4モード(以降,J2EEサーバモードと呼びます)への移行をお勧めします。ここでは,移行時の留意事項として,サーブレットエンジンモードとJ2EEサーバモードを比較し,機能の差異およびシステムの構築方法の差異について説明します。
サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には,次の差異に留意する必要があります。
サーブレットエンジンモードでは,Webコンテナサーバ用のusrconf.propertiesやusrconf.cfgを編集し,cjwebsetupなどのコマンドを実行してシステムを構築しますが,J2EEサーバモードでは次の3種類のシステム構築方法があります。
どの方法でシステムを構築するかは,どのようなシステムを構築してどのように運用するかによって決定します。システム構築方法の検討については,マニュアル「Cosminexus システム設計ガイド」を参照してください。
サーブレットエンジンモードとJ2EEサーバモードでは,Webアプリケーションのデプロイおよび属性の設定方法が異なります。
サーブレットエンジンモードとJ2EEサーバモードでは,Webアプリケーションのデプロイ方法が異なります。
サーブレットエンジンモードとJ2EEサーバモードのWebアプリケーションのデプロイおよびアンデプロイ方法の違いを次に示します。
項目 | サーブレットエンジンモードの場合 | J2EEサーバモードの場合 | ||
---|---|---|---|---|
WARファイルのコピーの場合 | ディレクトリのコピーの場合 | アーカイブ形式の場合 | 展開ディレクトリ形式の場合 | |
アセンブル | WAR形式にアセンブルする | アセンブルは不要 | EAR形式またはZIP形式にアセンブルする | アセンブルは不要 |
デプロイ/アンデプロイ単位 | WARファイル単位 | ディレクトリ単位 | EARファイルまたはZIPファイル単位 | ディレクトリ単位 |
入れ替えできる最小単位 | WARファイル単位 | JSPファイルやServletクラス単位 | EARファイルまたはZIPファイル単位 | JSPファイルやServletクラス単位 |
デプロイ/アンデプロイできるタイミング | Webコンテナサーバの起動中/停止中 | J2EEサーバの起動中 | ||
デプロイ/アンデプロイ結果の反映 | Webコンテナサーバの起動/再起動後 | デプロイ操作完了後 |
サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には,サーブレットエンジンモードでのWebアプリケーションのデプロイ方法と操作性が近い,展開ディレクトリ形式によるデプロイ方法をお勧めします。
アーカイブ形式,または展開ディレクトリ形式のJ2EEアプリケーションについては,「7. J2EEアプリケーションの実行」を参照してください。
サーブレットエンジンモードの場合は,アプリケーション開発時にWebアプリケーションのDD(web.xml)を直接編集するか,またはhitachi_web.propertiesのキーを設定して,Webアプリケーションの属性を設定します。なお,WebアプリケーションのDD(web.xml)とhitachi_web.propertiesは,WebアプリケーションのWEB-INFディレクトリ下に置きます。
J2EEサーバモードの場合は,これらに加えて,次の方法でもWebアプリケーションの属性を設定できます。
サーバ管理コマンドまたはServer Plug-inでは,J2EEアプリケーションの実行時間の監視や同時実行スレッド数の制御など,J2EEサーバの拡張機能の設定ができます。J2EEサーバモードの場合は,システム構築時にサーバ管理コマンドまたはServer Plug-inで設定する方法をお勧めします。サーバ管理コマンドまたはServer Plug-inの操作方法,および設定内容については,マニュアル「Cosminexus アプリケーション設定操作ガイド」を参照してください。
なお,hitachi_web.propertiesの設定内容は,サーブレットエンジンモードとJ2EEサーバモードで異なります。
サーブレットエンジンモードとJ2EEサーバモードでは,Webサーバの使用方法が異なります。
サーブレットエンジンモードの場合 | J2EEサーバモードの場合 |
---|---|
Webサーバと連携して使用する | Webサーバと連携して使用する |
Webコンテナサーバ内の簡易Webサーバを使用する | J2EEサーバ内のインプロセスHTTPサーバを使用する |
Webサーバと連携して使用する方法の場合,サーブレットエンジンモードからJ2EEサーバモードに移行するときは,設定内容には差異はありません。ただし,システムの構築方法によって設定方法が異なります。
簡易Webサーバを使用する方法の場合,J2EEサーバモードのインプロセスHTTPサーバに移行するときは,設定内容および設定方法が異なります。
なお,インプロセスHTTPサーバでは,サーブレットエンジンモードの簡易Webサーバよりも機能が多く,同時実行スレッド数の制御などの機能も使用できます。インプロセスHTTPサーバについては,「4.3 インプロセスHTTPサーバによるリクエストの受け付け」を参照してください。
WebアプリケーションからJDBCを使用してデータベースに接続をする場合,サーブレットエンジンモードとJ2EEサーバモードではWebアプリケーションの実装方法および設定方法が異なります。
サーブレットエンジンモードのWebアプリケーションの場合,使用できるのはjava.sqlパッケージで定義されたクラス,インタフェースだけです。java.sql.DriverManagerクラスのgetConnectionメソッドを使ってデータベースコネクションを取得し,コネクションプール機能が使用できます。
J2EEサーバモードのWebアプリケーションの場合,java.sqlパッケージとjavax.sqlパッケージで定義されたクラス,インタフェースが使用できます。このうち,javax.sql.DataSourceクラスのgetConnectionメソッドを使ってデータベースコネクションを取得する方法をお勧めします。この場合,コネクションプール機能が使用でき,さらにローカルトランザクションやグローバルトランザクション配下でデータベースコネクションを使用できるようになります。
javax.sql.DataSourceクラスを使用してデータベースコネクションを取得する例を次に示します。
import javax.naming.InitialContext; import javax.sql.DataSource; import java.sql.Connection; public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException { ・・・ InitialContext ic = new InitialContext(); // JNDIの初期コンテキストの生成 DataSource ds = (DataSource)ic.lookup(“java:comp/env/MyDB”); // DataSourceをlookupにより取得 Connection con = ds.getConnection(); // DataSourceからコネクションを取得・・・ } |
J2EEサーバモードではjavax.sql.DataSourceクラスをJNDIのルックアップで取得します。ルックアップの実装および設定方法を次に示します。なお,ここでは,サーバ管理コマンドを使用した設定方法について説明します。
なお,DB Connectorでは,ルックアップされるための設定は必要ありません。
J2EEサーバモードでは,WebアプリケーションはDB Connectorというリソースアダプタを経由してデータベースに接続します。DB Connectorは,Webアプリケーションに対してJDBCのインタフェースを提供します。また,DB Connectorを使用する場合,Webアプリケーションで開始したトランザクションの配下でデータベースに接続できます。
サーブレットエンジンモードで使用するjava.sql.DriverManagerでは,getConnectionメソッドの引数に与えるデータベースURLによって接続先データベースを指定しますが,J2EEサーバモードで使用するDB Connectorは,データベースとの接続方法やトランザクションの形態によって実装が分かれています。このため,用途に合わせてDB Connectorを選択し,接続先データベースやコネクションプーリングなどをDB Connectorのプロパティ(サーバ管理コマンドを使用する場合は,Connector属性ファイルに設定)に定義します。
サーブレットエンジンモードと同様にJ2EEサーバモードでもトランザクション管理なしでデータベースを使用する場合に,Cosminexus DABroker Libraryを使用するときは,次のDB Connectorを選択します。
なお,DBConnector_DABJ_CP.rar以外のDB Connectorについては,「9.4.1 DB Connectorによる接続の概要」を参照してください。
サーブレットエンジンモードとJ2EEサーバモードでは,使用できるサーブレットフィルタ(built-inフィルタ)の種類と設定方法が異なります。
サーブレットエンジンモードでは,HTTPレスポンス圧縮フィルタを使用できますが,J2EEサーバモードの場合は,これらに加えて,次のbuilt-inフィルタも使用できます。
built-inフィルタについては,「4.11.1 Cosminexusが提供するサーブレットフィルタ(built-inフィルタ)」を参照してください。
サーブレットエンジンモードの場合は,アプリケーション開発時にWebアプリケーションのDD(web.xml)を直接編集し,built-inフィルタをWebアプリケーションに組み込みます。J2EEサーバモードの場合は,これに加えて,次の方法でもbuilt-inフィルタをWebアプリケーションに組み込むことができます。
J2EEサーバモードの場合は,システム構築時にサーバ管理コマンドまたはServer Plug-inで設定する方法をお勧めします。
サーブレットエンジンモードとJ2EEサーバモードでは,Webアプリケーションのリロード機能が異なります。サーブレットエンジンモードとJ2EEサーバモードでのリロード機能の違いを次に示します。
項目 | サーブレットエンジンモードの場合 | J2EEサーバモードの場合 |
---|---|---|
リロード方法 | 更新検知によるリロード | 更新検知によるリロード,またはコマンド(cjreloadapp)によるリロード |
リロードの対象範囲 | 更新があったファイル※1 | 更新があったファイルとそのファイルを参照するファイル |
セッション情報の引き継ぎ | セッション情報を引き継ぐかどうか変更できる | 常にセッション情報を引き継ぐ |
リロードの設定方法 | Webコンテナサーバのusrconf.properties,またはhitachi_web.properties | J2EEサーバのusrconf.properties※2 |
リロード時のリクエストの処理や遅延実行など,このほかのWebアプリケーションのリロード機能には,違いはありません。
サーブレットエンジンモードのリロード機能については,「付録C.2 Webアプリケーションの更新検知とリロード」を参照してください。J2EEサーバモードのリロード機能については,「7.5 J2EEアプリケーションの更新検知とリロード」を参照してください。
サーブレットエンジンモードとJ2EEサーバモードのusrconf.propertiesで指定する,リロード機能のキーとそのデフォルト値の対応を次に示します。
設定項目 | サーブレットエンジンモードでのusrconf.propertiesのデフォルト値※1 | J2EEサーバモードでのusrconf.propertiesのデフォルト値 |
---|---|---|
Webアプリケーションの更新検知 | webserver.context.reloadable=false | ejbserver.deploy.context.reload_scope=none |
Webアプリケーションの更新検知インターバル | webserver.context.check_interval=1 | webserver.context.check_interval デフォルト値はなし(ejbserver.deploy.context.check_intervalキーに設定した値(デフォルト値は0)を使用する)。 |
Webアプリケーションの構成ファイル更新用インターバル | webserver.context.update.interval=0 | webserver.context.update.interval デフォルト値はなし(ejbserver.deploy.context.update.intervalキーに設定した値(デフォルト値は0)を使用する)。 |
Webアプリケーションの遅延実行 | webserver.context.reload_delay_timeout=0 | webserver.context.reload_delay_timeout=0 |
JSPの更新検知インターバル | webserver.jsp.check_interval=1 | webserver.jsp.check_interval デフォルト値はなし(ejbserver.deploy.context.check_intervalキーに設定した値(デフォルト値は0)を使用する)。 |
JSPの構成ファイル更新用インターバル | webserver.jsp.update.interval=0 | webserver.jsp.update.interval デフォルト値はなし(ejbserver.deploy.context.update.intervalキーに設定した値(デフォルト値は0)を使用する)。 |
セッション情報の引き継ぎ | webserver.session.persistence.enabled=false | −※2 |
JSPの再コンパイルの有無 | webserver.jsp.recompilable=false | −※2 |
サーブレットエンジンモードでの,Webアプリケーションの更新検知の有無(webserver.context.reloadable),およびJSPの再コンパイルの有無(webserver.jsp.recompilable)の組み合わせを次に示します。
リロード機能の動作 | webserver.context.reloadableキーの値 | webserver.jsp.recompilableキーの値 |
---|---|---|
リロード機能を使用しない | false(デフォルト値) | false(デフォルト値) |
サーブレットとJSPをリロードする | true | true |
サーブレットだけをリロードする | true | false(デフォルト値) |
JSPだけをリロードする | false(デフォルト値) | true |
J2EEサーバモードでの,J2EEアプリケーションの適用の有無と適用範囲(ejbserver.deploy.context.reload_scope),Webアプリケーションの更新検知インターバル(webserver.context.check_interval),およびJSPの更新検知インターバル(webserver.jsp.check_interval)の組み合わせを次に示します。
リロード機能の動作 | ejbserver.deploy.context.reload_scopeキーの値 | webserver.context.check_intervalキーの値 | webserver.jsp.check_intervalキーの値 |
---|---|---|---|
リロード機能を使用しない | none(デフォルト値) | 0 | 0 |
サーブレットとJSPをリロードする | web | 1以上 | 1以上 |
サーブレットだけをリロードする | web | 1以上 | 0 |
JSPだけをリロードする | web | 0 | 1以上 |
サーブレットエンジンモードでシステムを起動および停止する場合には,cjstartwebコマンド,cjstopwebコマンド,cprfstartコマンドなどを使用します。
J2EEサーバモードの場合には,システムの構築方法によって,システムの起動および停止方法が異なります。
サーブレットエンジンモードとJ2EEサーバモードを比較する場合,J2EEサーバモードの方が,機能が多く,メモリやスレッド,ポートなどのリソースを多く消費します。このため,サーブレットエンジンモードからJ2EEサーバモードへ移行する場合には,注意してください。
各プロセスで使用するポートを次に示します。
デフォルトのポート | 説明 | Webコンテナサーバプロセス | J2EEサーバプロセス※1 |
---|---|---|---|
80(TCP) | インプロセスHTTPサーバのhttpポート | − | ○ |
8080(TCP) | 簡易Webサーバのhttpポート | ○ | − |
管理用通信ポート | − | ○ | |
8007(TCP) | Webサーバ(リダイレクタ)からのリクエスト受付ポート | ○ | ○ |
8005(TCP) | cjstopwebコマンドからのプロセス終了要求の受付ポート | ○ | − |
900(TCP) | ネーミングサービスのリクエスト受付ポート | − | ○ |
浮動(TCP)※2 | EJBコンテナのリクエスト受付ポート | − | ○ |
浮動(TCP)※2 | サーバ管理コマンドのCUIとの通信ポート。 | − | ○ |
23152(TCP) | RMIレジストリのリクエスト受付ポート | − | ○ |
浮動(TCP)※2 | 運用監視エージェントの通信ポート | − | ○※3 |
デフォルトのポート | 説明 |
---|---|
80(TCP) | Hitachi Web Serverのhttpポート |
443(TCP) | Hitachi Web Serverのhttpsポート |
デフォルトのポート | 説明 |
---|---|
28080(TCP) | Management Serverのhttpポート |
28005(TCP) | Management Serverの終了要求ポート(ホスト内通信に必要) |
28009(TCP) | Management Serverの内部通信ポート(ホスト内通信に必要) |
デフォルトのポート | 説明 |
---|---|
20295(TCP) | Management Serverとの通信に使用するポート |
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.