HITACHI Inspire The Next

Cosminexus アプリケーションサーバ V8

システム設計ガイド

解説書

3020-3-U03-60


目  次

前書き
変更内容
はじめに
1. アプリケーションサーバのシステム設計の目的と流れ
1.1 アプリケーションサーバのシステム設計の目的
1.2 システム設計の流れ
1.2.1 オンライン処理を実行するアプリケーション(J2EEアプリケーション)の場合
1.2.2 バッチ処理を実行するアプリケーション(バッチアプリケーション)の場合
2. システム設計の準備
2.1 システム設計を始める前に決めておくこと
2.2 業務の種類を明確にする
2.3 使用する機能を検討する(オンライン処理を実行する場合)
2.3.1 プロセス構成
2.3.2 J2EEサーバの構成
2.3.3 J2EEアプリケーションとJ2EEコンポーネント
2.3.4 J2EEコンテナ
2.3.5 J2EEサービス
2.3.6 J2EEリソース
2.3.7 Cosminexus JPAプロバイダ
2.3.8 コンテナ拡張ライブラリ
2.3.9 サーバの動作モード
2.4 使用する機能を検討する(バッチ処理を実行する場合)
2.4.1 プロセス構成
2.4.2 バッチサーバの構成
2.4.3 バッチアプリケーション
2.4.4 バッチサービス
2.4.5 J2EEサービス
2.4.6 J2EEリソース
2.4.7 コンテナ拡張ライブラリ
2.5 システムの目的に応じたアプリケーションの構成を決める(オンライン処理を実行する業務の場合)
2.5.1 動作させるJ2EEアプリケーションの検討
2.5.2 使用するプロセスの検討と必要なソフトウェアの準備
2.6 システムの目的に応じたアプリケーションの構成を決める(バッチ処理を実行する業務の場合)
2.6.1 動作させるバッチアプリケーションの検討
2.6.2 使用するプロセスの検討と必要なソフトウェアの準備
2.7 運用方法を検討する
2.7.1 JP1と連携したシステムの運用
2.7.2 クラスタソフトウェアと連携したシステムの運用
3. システム構成の検討(J2EEアプリケーション実行基盤)
3.1 システム構成を検討するときに考慮すること
3.1.1 システムの目的と構成
3.1.2 システム構成の設計手順
3.1.3 システム構成の考え方
3.2 システム構成の説明について
3.3 アプリケーションの構成を検討する
3.3.1 アプリケーションの構成とアクセスポイント
3.3.2 リソースの種類とリソースアダプタ
3.4 クライアントとサーバの構成を検討する
3.4.1 サーブレットとJSPをアクセスポイントに使用する構成(Webサーバ連携の場合)
3.4.2 サーブレットとJSPをアクセスポイントに使用する構成(インプロセスHTTPサーバを使用する場合)
3.4.3 Session BeanとEntity Beanをアクセスポイントに使用する構成
3.4.4 CTMを使用する場合にStateless Session Beanをアクセスポイントに使用する構成
3.5 サーバ間での連携を検討する
3.5.1 Session BeanとEntity Beanを呼び出すサーバ間連携
3.5.2 CTM経由でStateless Session Beanを呼び出すサーバ間連携
3.6 トランザクションの種類を検討する
3.6.1 ローカルトランザクションを使用する場合の構成
3.6.2 グローバルトランザクションを使用する場合の構成
3.6.3 トランザクションコンテキストのプロパゲーションを使用する場合の構成
3.7 ロードバランスクラスタによる負荷分散方式を検討する
3.7.1 Webサーバ連携時の負荷分散機を利用した負荷分散(サーブレット/JSPの場合)
3.7.2 インプロセスHTTPサーバ使用時の負荷分散機を利用した負荷分散(サーブレット/JSPの場合)
3.7.3 CORBAネーミングサービスを利用した負荷分散(Session BeanとEntity Beanの場合)
3.7.4 CTMを利用した負荷分散(Stateless Session Beanの場合)
3.8 サーバ間で非同期通信をする場合の構成を検討する
3.8.1 Message-driven Beanをアクセスポイントに使用する場合の構成(Cosminexus JMSプロバイダを使用する場合)
3.8.2 Message-driven Beanをアクセスポイントに使用する場合の構成(TP1/Message Queueを使用する場合)
3.8.3 Message-driven Beanをアクセスポイントに使用する場合の構成(Cosminexus RMを使用する場合)
3.8.4 Message-driven Beanのインスタンスプールを利用した負荷分散(TP1/Message Queueを使用する場合)
3.9 運用管理プロセスの配置を検討する
3.9.1 運用管理サーバにManagement Serverを配置する構成
3.9.2 マシン単位にManagement Serverを配置する構成
3.9.3 コマンドで運用する場合の構成
3.10 セッション情報の引き継ぎを検討する
3.10.1 データベースを使用する構成(データベースセッションフェイルオーバ機能)
3.10.2 SFOサーバがシステムに複数存在する構成(メモリセッションフェイルオーバ機能)
3.10.3 SFOサーバがシステムに一つだけ存在する構成(メモリセッションフェイルオーバ機能)
3.11 クラスタソフトウェアを使用した障害時の系切り替えを検討する
3.11.1 アプリケーションサーバの実行系と待機系を1:1にする構成(トランザクションサービスを使用しない場合)
3.11.2 アプリケーションサーバの実行系と待機系を1:1にする構成(トランザクションサービスを使用する場合)
3.11.3 運用管理サーバの実行系と待機系を1:1にする構成
3.11.4 アプリケーションサーバの実行系と待機系を相互スタンバイにする構成
3.11.5 リカバリ専用サーバを使用する場合の構成(N:1リカバリシステム)
3.11.6 ホスト単位管理モデルの実行系と予備系をN:1にする構成
3.12 ファイアウォールを使用する構成を検討する
3.12.1 サーブレットとJSPに対するファイアウォールの配置
3.12.2 Session BeanとEntity Beanに対するファイアウォールの配置
3.12.3 リソースマネジャに対するファイアウォールの配置
3.13 DMZへのリバースプロキシの配置を検討する
3.13.1 Webサーバ連携時のリバースプロキシの配置
3.13.2 インプロセスHTTPサーバ使用時のリバースプロキシの配置
3.14 性能解析トレースファイルを出力するプロセスを配置する
3.15 アプリケーションサーバ以外の製品との連携を検討する
3.15.1 JP1を使用して運用する場合の構成
3.15.2 TP1インバウンド連携機能を使用してOpenTP1のSUPからMessage-driven Beanを呼び出す場合の構成
3.15.3 CTMゲートウェイ機能を利用してEJBクライアント以外からStateless Session Beanを呼び出す構成
3.16 任意のプロセスを運用管理の対象にする
3.17 そのほかの構成を検討する
3.17.1 Webサーバとアプリケーションサーバを異なるマシンに配置する構成
3.17.2 リダイレクタを利用して負荷分散する構成
3.17.3 CORBAネーミングサービスをアウトプロセスで起動する構成
3.18 アプリケーションサーバのプロセスが使用するTCP/UDPのポート番号
4. システム構成の検討(バッチアプリケーション実行基盤)
4.1 システム構成を検討するときに考慮すること
4.1.1 システムの目的と構成
4.1.2 システム構成の設計手順
4.1.3 バッチアプリケーションを実行するシステムで使用するTCP/UDPのポートについての注意事項
4.2 バッチサーバを使用する場合のシステム構成
4.2.1 バッチアプリケーションのスケジューリング機能を使用しないシステムのシステム構成
4.2.2 バッチアプリケーションのスケジューリング機能を使用するシステムのシステム構成
5. 使用するリソースの見積もり(J2EEアプリケーション実行基盤)
5.1 システム構成ごとに使用するリソース
5.1.1 WebサーバとJ2EEサーバを同じマシンに配置する場合の使用リソース
5.1.2 WebサーバとJ2EEサーバを別のマシンに配置する場合の使用リソース
5.1.3 インプロセスHTTPサーバ機能を使用する場合の使用リソース
5.1.4 データベースの使用リソース
5.1.5 運用管理サーバの使用リソース
5.1.6 メモリセッションフェイルオーバ機能を使用する場合の使用リソース
5.1.7 CTMを使用する場合の使用リソース
5.2 プロセスごとに使用するリソース
5.2.1 J2EEサーバが使用するリソースの見積もり
5.2.2 運用管理エージェントが使用するリソースの見積もり
5.2.3 パフォーマンストレーサが使用するリソースの見積もり
5.2.4 CTMが使用するリソースの見積もり
5.3 仮想メモリの使用量の見積もり
6. 使用するリソースの見積もり(バッチアプリケーション実行基盤)
6.1 システム構成ごとに使用するリソース
6.1.1 バッチサーバを配置する場合の使用リソース
6.1.2 データベースの使用リソース
6.1.3 CTMを使用する場合の使用リソース
6.2 プロセスごとに使用するリソース
6.2.1 バッチサーバが使用するリソースの見積もり
6.2.2 運用管理エージェントが使用するリソースの見積もり
6.2.3 パフォーマンストレーサが使用するリソースの見積もり
6.2.4 CTMが使用するリソースの見積もり
6.3 仮想メモリの使用量の見積もり
7. JavaVMのメモリチューニング
7.1 ガーベージコレクションとJavaVMのメモリ管理の概要
7.1.1 ガーベージコレクションの仕組み
7.1.2 JavaVMで使用するメモリ空間の構成とJavaVMオプション
7.1.3 ガーベージコレクションの発生とメモリ空間の関係
7.2 フルガーベージコレクション発生を抑止するためのチューニングの概要
7.2.1 チューニングの考え方
7.2.2 チューニング手順
7.3 Javaヒープのチューニング
7.3.1 Javaヒープのメモリサイズの見積もり
7.3.2 Javaヒープのメモリサイズの設定方法
7.3.3 Javaヒープのメモリサイズの使用状況の確認方法
7.4 Javaヒープ内のTenured領域のメモリサイズの見積もり
7.4.1 アプリケーションで必要なメモリサイズの算出
7.4.2 Javaヒープ内のNew領域のメモリサイズを追加する理由
7.5 Javaヒープ内のNew領域のメモリサイズの見積もり
7.5.1 Javaヒープ内のSurvivor領域のメモリサイズの見積もり
7.5.2 Javaヒープ内のEden領域のメモリサイズの見積もり
7.6 Javaヒープ内に一定期間存在するオブジェクトの扱いの検討
7.6.1 Javaヒープ内のNew領域に格納する方法
7.6.2 Javaヒープ内のTenured領域に格納する方法
7.6.3 Explicitヒープに格納する方法
7.7 Javaヒープの最大サイズ/初期サイズの決定
7.8 Javaヒープ内のPermanent領域のメモリサイズの見積もり
7.9 拡張verbosegc情報を使用したフルガーベージコレクションの要因の分析方法
7.9.1 拡張verbosegc情報の出力形式の概要
7.9.2 フルガーベージコレクション発生時の拡張verbosegc情報の出力例
7.10 Explicitヒープのチューニング
7.10.1 Explicitヒープのメモリサイズの見積もり(J2EEサーバが使用するメモリサイズの見積もり)
7.10.2 リダイレクタとの通信用オブジェクトで利用するメモリサイズ
7.10.3 HTTPセッションに関するオブジェクトで利用するメモリサイズ
7.10.4 明示管理ヒープ機能利用によるメモリサイズの見積もりへの影響
7.10.5 稼働情報による見積もり
7.11 アプリケーションで明示管理ヒープ機能を使用する場合のメモリサイズの見積もり
7.11.1 アプリケーションで明示管理ヒープ機能を使用するかどうかの検討
7.11.2 見積もりの考え方
7.11.3 アプリケーションが使用するメモリサイズ
7.11.4 アプリケーション開発・運用時の確認・調査
7.12 明示管理ヒープの自動配置機能を使用したExplicitヒープの利用の検討
8. パフォーマンスチューニング(J2EEアプリケーション実行基盤)
8.1 パフォーマンスチューニングで考慮すること
8.1.1 パフォーマンスチューニングの観点
8.1.2 チューニング手順
8.1.3 アプリケーションの種類ごとにチューニングできる項目
8.2 チューニングの方法
8.3 同時実行数を最適化する
8.3.1 同時実行数制御および実行待ちキュー制御の考え方
8.3.2 最大同時実行数と実行待ちキューを求める手順
8.3.3 Webサーバでのリクエスト処理スレッド数を制御する
8.3.4 Webアプリケーションの同時実行数を制御する
8.3.5 Enterprise Beanの同時実行数を制御する
8.3.6 CTMを使用して同時実行数を制御する
8.3.7 同時実行数を最適化するためのチューニングパラメタ
8.4 Enterprise Beanの呼び出し方法を最適化する
8.4.1 ローカルインタフェースを使用する
8.4.2 リモートインタフェースのローカル呼び出し最適化機能を使用する
8.4.3 リモートインタフェースの参照渡し機能を使用する
8.4.4 Enterprise Beanの呼び出し方法を最適化するためのチューニングパラメタ
8.5 データベースへのアクセス方法を最適化する
8.5.1 コネクションプーリングを使用する
8.5.2 ステートメントプーリングを使用する
8.5.3 データベースへのアクセス方法を最適化するためのチューニングパラメタ
8.6 タイムアウトを設定する
8.6.1 タイムアウトが設定できるポイント
8.6.2 Webフロントシステムでのタイムアウトを設定する
8.6.3 バックシステムでのタイムアウトを設定する
8.6.4 トランザクションタイムアウトを設定する
8.6.5 データベースでのタイムアウトを設定する
8.6.6 J2EEアプリケーションのメソッドタイムアウトを設定する
8.6.7 タイムアウトを設定するチューニングパラメタ
8.7 Webアプリケーションの動作を最適化する
8.7.1 静的コンテンツとWebアプリケーションの配置を切り分ける
8.7.2 静的コンテンツをキャッシュする
8.7.3 リダイレクタによってリクエストを振り分ける
8.7.4 Webアプリケーションの動作を最適化するためのチューニングパラメタ
8.8 CTMの動作を最適化する
8.8.1 CTMドメインマネジャおよびCTMデーモンの稼働状態の監視間隔をチューニングする
8.8.2 負荷状況監視間隔をチューニングする
8.8.3 CTMデーモンのタイムアウト閉塞を設定する
8.8.4 CTMで振り分けるリクエストの優先順位を設定する
8.8.5 CTMの動作を最適化するチューニングパラメタ
8.9 そのほかの項目のチューニング
9. パフォーマンスチューニング(バッチアプリケーション実行基盤)
9.1 パフォーマンスチューニングで考慮すること
9.1.1 パフォーマンスチューニングの観点
9.1.2 チューニング手順
9.1.3 チューニング項目
9.2 チューニングの方法
9.2.1 バッチサーバのチューニング
9.2.2 リソースのチューニング
9.3 タイムアウトを設定する
9.3.1 タイムアウトが設定できるポイント
9.3.2 トランザクションタイムアウトを設定する
9.3.3 タイムアウトを設定するチューニングパラメタ
9.4 ガーベージコレクション制御で使用するしきい値を設定する
9.4.1 しきい値を設定する目的
9.4.2 しきい値設定の考え方
9.4.3 ガーベージコレクション制御で使用するしきい値を設定するためのチューニングパラメタ
10. セキュアなシステムの検討
10.1 セキュアなシステムの検討の概要
10.2 セキュアなシステムの構成の検討
10.3 システムの使用者の検討
10.4 システムが扱う資産の検討
10.5 セキュアなシステムの前提条件の確認
10.5.1 物理的な前提条件
10.5.2 運用上の前提条件
10.6 想定される脅威の分析
10.7 対策の検討
10.7.1 前提条件に対して実施する対策
10.7.2 想定した脅威に対して実施する対策
10.7.3 対策を実施したセキュアなシステムの動作
10.8 作業手順の検討
10.8.1 作成する作業手順書の概要
10.8.2 システムの構築手順の検討
10.8.3 システムの再構築手順の検討
10.8.4 システムの運用手順の検討
10.9 システムの監査方法の確認
10.9.1 監査ログの入手
10.9.2 監査ログの調査
10.10 外部ネットワークを使用するシステムでのセキュリティの検討
10.10.1 外部ネットワークを使用するシステムで想定されるセキュリティ上の脅威
10.10.2 ファイアウォールと侵入検知システムを配置する
10.10.3 SSLアクセラレータを使用して暗号通信を処理する
10.10.4 アプリケーションでユーザを認証する
付録
付録A ベーシックモードの利用(互換機能)
付録A.1 パフォーマンスチューニング
付録B サーブレットエンジンモードの利用(互換機能)
付録B.1 システム構成の設計
付録B.2 パフォーマンスチューニング
付録C 推奨手順以外の方法でパフォーマンスチューニングをする場合のチューニングパラメタ
付録C.1 同時実行数を最適化するためのチューニングパラメタ(推奨手順以外の方法)
付録C.2 Enterprise Beanの呼び出し方法を最適化するためのチューニングパラメタ(推奨手順以外の方法)
付録C.3 データベースへのアクセス方法を最適化するためのチューニングパラメタ(推奨手順以外の方法)
付録C.4 タイムアウトを設定するチューニングパラメタ(推奨手順以外の方法)
付録C.5 Webアプリケーションの動作を最適化するためのチューニングパラメタ(推奨手順以外の場合)
付録C.6 CTMの動作を最適化するチューニングパラメタ(推奨手順以外の方法)
付録C.7 Persistent Connectionについてのチューニングパラメタ(推奨手順以外の方法)
付録C.8 バッチサーバのフルガーベージコレクションを発生させるしきい値を設定するためのチューニングパラメタ(推奨手順以外の方法)
付録D このマニュアルの参考情報
付録D.1 関連マニュアル
付録D.2 このマニュアルでの表記
付録D.3 英略語
付録D.4 KB(キロバイト)などの単位表記について
付録E 用語解説
索引