JRun 拡張設定ガ イ ド Windows®、 UNIX™、 および Linux™ 用 JRun 3.1 Allaire® Corporation 版権告知 © 2000, 2001 Allaire Corporation. All rights reserved. 本書と その中に記載さ れている ソ フ ト ウェ アは、 ラ イ セン ス契約のも と に供給さ れ、 こ のラ イ セン スの条項に従っ てのみ使用ま たは複製する こ と ができ ます。 本書の内容は、 情報の提供のみを 目的と し ており 、 予告なく 変更さ れる こ と があり ます。 こ れについて、 Allaire Corporation は一切責任を負いません。 Allaire Corporation は、 本書の誤 り につい て一切責任を負いません。 ラ イ セン スによ る 許可がある 場合を 除いて、 Allaire Corporation の事前の書面によ る 許可 なし に、こ の出版物の一部または全部の複製、検索システムへの保存、ある いは電子的、 機械的な記録、 または他のいかな る形態や手段によ る転送を行 う こ と はで き ません。 ColdFusion および HomeSite は、 米国における Allaire Corporation の登録商標です。 Allaire、 Allaire Spectra、 JRun、 JRun Studio、 ColdFusion Studio、 <CF_Anywhere>、 ColdFusion ロ ゴ、 JRun ロ ゴ、 お よ び Allaire ロ ゴは、 米国お よ び各国におけ る Allaire Corporation の 商標です。 MacOS は、 Apple Computers Inc. の商標です。 Microsoft、 Windows、 Windows NT、 Windows 95、 Microsoft Access、 お よび FoxPro は、 Microsoft Corporation の登録商 標です。 Java、 JavaBeans、 JavaServer、 JavaServer Pages、 JavaScript、 JDK、 および Solaris は、 Sun Microsystems Inc. の商標です。 UNIX は、 The Open Group の商標です。 PostScript は、 Adobe Systems Inc. の商標です。 その他の製品および製品名は、 各所有者に帰属す る商標です。 こ の製品には RSA Data Security か ら ラ イ セ ン ス供与 さ れた コ ー ド が含まれてい ます。 こ のソ フ ト ウ ェ アの著作権の一部は、 Merant, Inc. に帰属 し ます。 1991-2001 部品番号 : AA-JRACG 目次 は じ めに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v JRun 製品の ラ イ ンナ ッ プ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .vi 開発者 リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii JRun 文書の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii 印刷お よ びオン ラ イ ン文書セ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii オン ラ イ ン文書 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii その他の リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix お問い合わせ先 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi 第 1 章 OEM リ ソ ース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 OEM リ ソ ース について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 OEM ソ フ ト ウ ェ アの必要条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 JRun OEM 版 と 製品版の相違点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 詳細情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 フ ァ イ ル グループの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 JRun イ ン ス ト ールのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 makefile のカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 UNIX JRun イ ン ス ト ー ラ の構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Windows JRun イ ン ス ト ー ラ の構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 InstallShield の変数の更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 JRun コ ン ポーネ ン ト のカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 複数の JRun イ ン ス タ ン ス の イ ン ス ト ール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 JRun の イ ン ス ト ール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 旧バージ ョ ンの JRun の イ ン ス ト ール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 JRun のルー ト デ ィ レ ク ト リ の調査 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 バージ ョ ン情報の取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Web アプ リ ケーシ ョ ンのカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 JRun Web アプ リ ケーシ ョ ンの削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Web アプ リ ケーシ ョ ンの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Web アプ リ ケーシ ョ ンの公開 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 JSP ソ ース コ ー ド の非表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 ii 目次 Web アプ リ ケーシ ョ ンの制御. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 メ ソ ッ ド の詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 WebAppController の使用例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 JRun プ ロ パテ ィ のカ ス タ マ イ ズ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 PropertyScript の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ス ク リ プ ト フ ァ イ ルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 サンプル ス ク リ プ ト フ ァ イ ル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 サーブ レ ッ ト /JSP での PropertyScript の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 JRun の組み込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 JRun 管理 コ ン ソ ールの非表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 JRun サーバーの開始、 停止、 お よ び再起動. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 デス ク ト ッ プ上の JRun の非表示 (Windows のみ) . . . . . . . . . . . . . . . . . . . . . . . 36 JRun ラ イ セン ス キーお よ び ラ イ セ ン ス契約の設定 . . . . . . . . . . . . . . . . . . . . . . 38 外部 Web サーバーへの JRun の接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 接続の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ConnectorInstaller ユーテ ィ リ テ ィ の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 IIS での コ ネ ク タ の イ ン ス ト ール と ア ン イ ン ス ト ール . . . . . . . . . . . . . . . . . . . . 44 JRun サーバーの追加 と 削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 新規 JRun サーバーについて. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 プ ロ グ ラ ムに よ る JRun サーバーの追加 と 削除 . . . . . . . . . . . . . . . . . . . . . . . . . . 48 手作業での JRun サーバーの追加 と 削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 JMC の [新規サーバーの構成 ] パネルの拡張. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 JMC の拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 JMC 拡張の構文. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 JMC 拡張の追加. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 JMC 拡張の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 終了ハン ド ラ の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 第 2 章 ホ ス テ ィ ン グ /ISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 JRun での ロ ー ド バ ラ ン ス と ク ラ ス タ リ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 フ ェ イ ルオーバ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 負荷 し き い値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 JRun プ ロ ーブの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 管理者ア ラ ーム通知の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 JMC へのア ク セ ス の保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 JMC ユーザの管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 外部 Web サーバーを介 し た JMC への リ モー ト ア ク セ ス . . . . . . . . . . . . . . . . . 68 JWS へのホ ス ト ベース の認証の設定. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 JRun 環境の保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Java アプ リ ケーシ ョ ン サーバーの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Java セキ ュ リ テ ィ について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 JRun シ ス テ ムの保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 目次 iii JRun での ロ グ記録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 既定のアプ リ ケーシ ョ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 リ ソ ース使用率の制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 メ モ リ 使用率の判別 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 JVM メ モ リ 使用率の制限. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 平行処理の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 接続プール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 接続プール と は . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 接続プールを使用す る 理由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 接続プールの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 JRun 接続プールを使用 し ない場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Active Server Pages と JRun の統合 (IIS のみ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 JRun メ ト リ ッ ク の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 メ ト リ ッ ク の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 ロ グ形式について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 メ ト リ ッ ク デー タ を使用 し た レ ポー ト の生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 第 3 章 EJB エ ン ジ ンの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 フ ェ イ ルセーフ モー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 RMID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 サーバー ツール. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 EJB エン ジ ンの埋め込み. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 EJB エン ジ ンのサブ ク ラ ス化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 カ ス タ ム サーバーの コ ーデ ィ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 ス タ ン ド ア ロ ン EJB エン ジ ン と し てのカ ス タ ム サーバーの使用. . . . . . . . . . 109 JRun サービ ス と し てのカ ス タ ム サーバーの使用 . . . . . . . . . . . . . . . . . . . . . . . 109 サー ド パーテ ィ JDBC ド ラ イ バの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 デバ ッ グ モー ド での実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 /deploy お よ び /runtime デ ィ レ ク ト リ の移動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ス テージ ン グ と 運用環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 作成 と 作成後 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 コ ン テキ ス ト フ ァ ク ト リ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 プ ロ パテ ィ の操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 コ ン テナのプ ロ パテ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Bean プ ロ パテ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 既定のプ ロ パテ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 マニ フ ェ ス ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 公開プ ロ パテ ィ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 AutoCaller メ ソ ッ ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 iv 目次 詳細情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 ト ラ ンザ ク シ ョ ン属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 ト ラ ンザ ク シ ョ ンの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 セキ ュ リ テ ィ の無効化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 は じ めに こ の章では、Web サ イ ト 、マニ ュ アル、テ ク ニ カル サポー ト な ど の JRun お よ び Allaire リ ソ ース にア ク セ スす る 場合のガ イ ド ラ イ ン を説明 し ます。 目次 • JRun 製品の ラ イ ンナ ッ プ .......................................................................................... vi • 開発者 リ ソ ース .......................................................................................................... vii • JRun 文書の概要 ....................................................................................................... viii • その他の リ ソ ース ....................................................................................................... ix • お問い合わせ先........................................................................................................... xi 序章 は じ めに vi JRun 製品のラ イ ンナ ッ プ JRun は、 Sun Microsystems の最新のサーブレ ッ ト /JSP およ び EJB 仕様を サポート する Java アプ リ ケーシ ョ ン サーバーです。 JRun には、 次のエデ ィ シ ョ ンがあ り ます。 エデ ィ シ ョ ン 説明 価格 Developer 版 Web 開発および EJB/JMS/JTA をサポート し ており 、 JRun JDBC ド ラ イ バを 含みま す。 無制限の JVM (Java Virtual Machine) 数、 お よ び サ ー ブ レ ッ ト 、 JSP、 EJB (Enterprise JavaBeans) の 3 つの同時接 続数が許可さ れて いま す。 Web ア プ リ ケー シ ョ ン お よ び EJB の非営利目的の開発 / テ ス ト 用の ラ イ セ ン ス であ り 、 無償で入手で き ます。 ア プ リ ケ ー シ ョ ン の公開 を 目 的 と し た 使用は許可 さ れ て いません。 Professional 版 Web 開発のみをサポー ト し ています。 営利目的の公開用の ラ イ セ JRun Professional 版では、JVM 数、およ ン ス で、 CPU 単位の ラ イ セ びサーブレ ッ ト /JSP (JavaServer Pages) ン ス と な り ます。 の同時接続数はいずれ も 無制限です。 Advanced 版 Allaire ClusterCATS を 使用す る HTTP 営利目的の公開用の ラ イ セ ベースのロード バラ ンス機能およびフ ェ イ ン ス で、 CPU 単位の ラ イ セ ル オーバ ソ フ ト ウェ アが含まれています。 ン ス と な り ます。 Web 開発をサポート し ており 、JRun JDBC ド ラ イ バを 含みます。 JRun Advanced 版 では、JVM 数、 お よびサーブ レ ッ ト /JSP の同時接続数はいずれ も 無制限です。 Enterprise 版 Allaire ClusterCATS を 使用す る HTTP 営利目的の公開用の ラ イ セ ベースのロード バラ ンス機能およびフ ェ イ ン ス で、 CPU 単位の ラ イ セ ルオーバ ソ フ ト ウェ アが含まれています。 ン ス と な り ます。 Web 開発、 EJB、 JMS (Java Messaging Service)、 JTA (Java Transaction API)、 お よ び JRun JDBC ド ラ イ バ を サポー ト し て いま す。 JRun Enterprise 版では、 JVM 数、 サーブ レ ッ ト 、 JSP、 およ び EJB の 同時接続数はいずれ も 無制限です。 Studio 版 HomeSite HTML エ デ ィ タ に基づいた統 価格は ラ イ セ ン ス単位です。 合 JSP 開発環境です。 JRun サーバーは 含まれていません。 最新の価格情報については、 国内総販売元であ る ( 株) ア イ ・ テ ィ ・ フ ロ ン テ ィ アに お問い合わせく ださ い (株式会社シリ ウ ス は、 2001 年 4 月に株式会社アイ ・ ティ ・ フ ロ ン ティ アに社名変更いたし ま し た )。 開発者 リ ソ ース vii 開発者 リ ソ ース ( 株) ア イ ・ テ ィ ・ フ ロ ン テ ィ アでは、 開発者の教育、 テ ク ニ カル サポー ト など のサー ビ ス によ り カ ス タ マ サポート を 充実さ せており ま す。 以下にご 紹介する Web サイ ト で は、 すべてのオン ラ イ ン リ ソ ース にすばやく アク セス でき ま す。 次の表に、 こ のよ う な オンラ イ ン リ ソ ース にアク セス でき る Web サイ ト の URL を 示し ま す。 リ ソ ース 説明 (株 ) ア イ ・ テ ィ ・ フ ロ ン テ ィ ア JRun JRun の詳細な製品情報およ び関連 ト ピ ッ ク のサイ ト http://cfusion.sirius.co.jp/jrun/ Allaire 社 Web サ イ ト 開発元であ る Allaire 社のサ イ ト www.allaire.com JRun に関する情報 JRun に関する詳細な製品情報 と 関連 ト ピ ッ ク www.allaire.com/products/jrun/ 開発者 コ ミ ュ ニ テ ィ www.allaire.com/developer JRun に よ る 開発に必要な最先端の情報 を 提供す る、 オ ン ラ イ ン デ ィ ス カ ッ シ ョ ン グループ、 知識 ベース、 技術文書な どのあ ら ゆる リ ソ ース JRun 開発者セ ン タ ー サーブ レ ッ ト リ ソ ース、 開発の ヒ ン ト 、 記事、 文 書、 ホワ イ ト ペーパーに関する情報を一括掲載 www.allaire.com/developer/ jrunreferencedesk/ JRun サポー ト フ ォ ー ラ ム forums.allaire.com/jrunconf Allaire オン ラ イ ン フ ォ ーラ ムでは豊かな経験を 持 つ JRun 開発者と 連絡を と り 、 JRun に関連 し た数 多 く の ト ピ ッ ク について メ ッ セージ を書 き 込んだ り 、 回答を得る こ と がで き ます。 序章 は じ めに viii JRun 文書の概要 JRun 文書は、 JSP 開発者、 サーブレ ッ ト 開発者、 EJB ク ラ イ アン ト 開発者、 EJB 開発者、 シ ス テ ム管理者を含むすべての JRun ユーザにサポー ト を提供す る こ と を目的 と し て いま す。 印刷物で提供さ れている 場合でも 、 オンラ イ ンの場合でも 、 必要な情報を速やかに 探し 出せる よ う に構成さ れていま す。 JRun オン ラ イ ン 文書には、 HTML 形式と Adobe Acrobat フ ァ イ ル形式があり ま す。 印刷お よびオ ン ラ イ ン文書セ ッ ト JRun の文書セ ッ ト には、 次の文書があ り ます。 文書 説明 『JRun セ ッ ト ア ッ プ ガイ ド』 JMC を 使用 し た JRun の イ ン ス ト ール、 設定、 お よ び管理に ついて説明 し ます。 『JRun に よ る Java サ ー ブ レ ッ ト 、 JavaServer Pages、 お よ び Enterprise ア プ リ ケーシ ョ ンの開発』 JavaBeans か ら 構成 さ れ る Web ア プ リ ケ ー シ ョ ン の開発方 法について 説明 し ます。 『JRun サン プル ガ イ ド 』 サー ブ レ ッ ト 、 JavaServer Pages、 Enterprise JavaBeans の コ ード サン プルおよ びサン プル アプリ ケーショ ン を 提供し ます。 『JRun タ グ ラ イ ブ ラ リ リ フ ァ レ ン ス』 JRun タ グ ラ イ ブ ラ リ の JavaServer Pages (JSP) カ ス タ ム タ グについて説明 し ます。 『JRun 拡張設定ガ イ ド 』 ISP、 ISV、 お よ び OEM カ ス タ マ用の JRun の イ ン ス ト ール、 使用、 設定に関す る情報があ り ます。 『JRun JSP ク イ ッ ク リ フ ァ レ ン ス』 JavaServer Pages (JSP) のデ ィ レ ク テ ィ ブ、 ア ク シ ョ ン、 お よびス ク リ プ ト 要素の簡単な説明 と 構文が記載 さ れています。 『JRun Version 3.1 機能 お よ び移行ガ イ ド 』 JRun バー ジ ョ ン 3.1 の機能 と 、 既存の ア プ リ ケ ー シ ョ ン を バージ ョ ン 3.1 に移行する方法について説明 し ます。 『JRun タ グ ラ イ ブ ラ リ ク イ ッ ク リ フ ァ レ ン ス』 JRun タ グ ラ イ ブ ラ リ の JavaServer Pages (JSP) カ ス タ ム タ グの簡単な説明 と 構文について記載 さ れています。 オ ン ラ イ ン文書 Allaire 社では、 JRun の全文書のオン ラ イ ン 版を Adobe Acrobat (PDF) フ ァ イ ルで提供 し ていま す。 PDF フ ァ イ ルは JRun CD-ROM に含ま れ、 既定では JRun /docs/pdf ディ レ ク ト リ に イ ン ス ト ール さ れます。 JRun 管理 コ ン ソ ールの ト ッ プ ページにあ る 製品の 文書への リ ン ク を ク リ ッ ク す る と 、 こ れ ら の PDF フ ァ イ ルにア ク セ ス で き ます。 ま た、こ れら の PDF フ ァ イ ルは、Allaire 社の Web サイ ト (www.allaire.com/documents) か ら ダウ ンロ ード する こ と も でき ま す。 その他の リ ソ ース ix その他の リ ソ ース 本書で扱っ てい る ト ピ ッ ク の詳細については、 次の リ ソ ース も 参照 し て く だ さ い。 書籍 サーブ レ ッ ト と JavaServer Pages 『Java Servlets』 Karl Moss 著、 McGraw Hill 刊、 1999 年、 ISBN: 0071351884 『Java Servlet Programming (Second Jason Hunter、 William Crawford 著、 Edition)』 O'Reilly & Associates 刊、 2001 年、 ISBN: 0596000405 『Core Servlets and Java Server Pages』 Marty Hall 著、 Prentice Hall 刊、 2000 年、 ISBN: 0130893404 『Inside Servlets: Server-Side Programming for the Java Platform (Second Edition)』 Dustin R. Callaway 著、 Addison-Wesley 刊、 2001 年、 ISBN: 0201709066 『Web Development with JavaServer Duane K. Fields、 Mark A. Kolb 著、 Pages』 Manning Publications Company 刊、 2000 年、 ISBN: 1884777996 Enterprise JavaBeans 『Mastering Enterprise JavaBeans and the Java 2 Platform, Enterprise Edition』 Ed Roman 著、 ISBN: 0471332291 『Enterprise JavaBeans』 Richard Monson-Haefel 著、 John Wiley & Sons 刊、 1999 年、 O'Reilly & Associates 刊、 2000 年、 ISBN: 1565928695 『Applying Enterprise JavaBeans: Vlada Matena、 Beth Stearns 著、 Component-Based Development for Addison-Wesley Pub Co 刊、 2000 年、 the J2EE Platform』 ISBN: 0201702673 序章 は じ めに x Enterprise Java プ ログ ラ ミ ング 『Professional Java Server Programming J2EE Edition』 Danny Ayers 他著、 Wrox Press 刊、 2000 年、 ISBN: 1861004656 『Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition』 Nicholas Kassem 著、 Addison-Wesley 刊、 2000 年、 ISBN: 0201702770 (java.sun.com/j2ee/download.html#blueprints か ら 無償でダウ ン ロ ー ド で き ます。 ) 『Building Java Enterprise Systems with J2EE』 Paul Perrone、Venkata S.R. "Krishna" .R. Chaganti 著、 Sams 刊、 2000 年、 ISBN: 0672317958 『J2EE: A Bird's Eye View (e-book)』 Rick Grehan 著、 Fawcette Technical Publications 刊、 2001 年、 ISBN: B00005BAZV オ ン ラ イ ン リ ソ ース Java servlet API java.sun.com/products/servlet JavaServer Pages API java.sun.com/products/jsp Enterprise JavaBeans API java.sun.com/products/ejb/ Java 2 Standard Edition API java.sun.com/products/jdk/1.3/docs/api/ index.html Servlet Source www.servletsource.com JSP Resource Index www.jspin.com Server Side www.theserverside.com Dot Com Builder dcb.sun.com Servlet Forum www.servletforum.com お問い合わせ先 xi お問い合わせ先 販売元 株式会社ア イ ・ テ ィ ・ フ ロ ン テ ィ ア シ リ ウ ス事業部 電話 : 03-5562-4099 Fax : 03-5562-4070 http://cfusion.sirius.co.jp/jrun/ E-mail : jrunsales@sirius.co.jp ( 株式会社シ リ ウ ス は、 2001 年 4 月に株式会社ア イ ・ テ ィ ・ フ ロ ン テ ィ アに社名変更いた し ま し た ) テ ク ニ カル サポー ト Allaire 社では、 電話およ び Web によ る 幅広いサポート オプ ショ ン を 提供し ていま す。 テク ニカ ル サポート サービ ス に ついては、 http://www.allaire.com/support/ を ご覧く ださ い。 JRun サポート フ ォ ーラ ム (http://forums.allaire.com) へは、 いつでも 投稿でき ま す。 xii 序章 は じ めに 第1章 OEM リ ソ ース こ の章の説明は、 JRun 3.1 用の OEM リ ソ ース キ ッ ト を対象 と し てい ます。 使用 し て い る OEM リ ソ ー ス の ビル ド 番号は、 global.properties フ ァ イ ルの jrun.version プ ロ パテ ィ で確認 し て く だ さ い。 OEM リ ソ ー ス には、 OEM 先を対象 と し た JRun の イ ン ス ト ールお よ び設定を カ ス タ マ イ ズす る フ ァ イ ルが含まれてお り 、 OEM 製品 と JRun を ス ムーズに統合で き ます。 OEM リ ソ ース を 構成する フ ァ イ ル セッ ト は、 Allaire 社の Web サイ ト http://www.allaire.com/partners/oem/jrun/ から ダウ ン ロ ード 可能です。 こ の章では、 OEM フ ァ イ ル グ ループのア ーキ テ ク チャ と 、ア プリ ケ ーシ ョ ン に JRun を 組み込む 際に 一般的な OEM によ っ て 実行さ れる 作業について 説明し ま す。 メモ こ の章の内容は、 事前の通知なし に変更する 場合があり ま す。 JRun OEM キッ ト およ び 本書 に 関す る 最新 の リ リ ー ス 情報 に つ い て は、 http://www.allaire.com/partners/ oem/jrun/ を参照 し て く だ さ い。 目次 • OEM リ ソ ース について............................................................................................... 3 • フ ァ イ ル グループの概要 ............................................................................................ 6 • JRun イ ン ス ト ールのカ ス タ マ イ ズ ............................................................................ 8 • 複数の JRun イ ン ス タ ン ス の イ ン ス ト ール .............................................................. 16 • Web アプ リ ケーシ ョ ンのカ ス タ マ イ ズ ................................................................... 19 • Web アプ リ ケーシ ョ ンの制御 .................................................................................. 28 • JRun プ ロ パテ ィ のカ ス タ マ イ ズ .............................................................................. 30 • JRun の組み込み ........................................................................................................ 35 • 外部 Web サーバーへの JRun の接続........................................................................ 40 2 第 1 章 OEM リ ソ ース • JRun サーバーの追加 と 削除 ..................................................................................... 47 • JMC の拡張................................................................................................................. 58 • 終了ハン ド ラ の使用 .................................................................................................. 61 OEM リ ソ ースについて 3 OEM リ ソ ースについて OEM リ ソ ース は、ご 使用のアプリ ケ ーショ ン の一部と し て JRun を 統合する 際に役立ち ま す。 こ れら のリ ソ ース を 使用し て 、 JRun を コ ン パイ ルし て ア プリ ケ ーシ ョ ン に バン ド ルし 、 ユーザが 実行する イ ン ス ト ールおよ び設定を カ ス タ マ イ ズ でき ま す。 Allaire で定義さ れて いる OEM には基本的に 2 つの種類があ り 、 ユーザへの対応が 次のよ う に異な り ま す。 • JRun を ソ フ ト ウ ェ アと は別にイ ン ス ト ールおよ び操作する よ う ユーザに要求する OEM ベン ダ • ユーザに対 し て透過的に JRun を イ ン ス ト ールお よ び操作す る OEM ベン ダ 一般的に、 OEM リ ソ ース と は後者の こ と を指 し ます。 OEM の顧客が、 顧客のアプ リ ケ ーショ ン と はま っ たく 異なる アプリ ケ ーショ ン と し て JRun を使用す る 場合、 『JRun セッ ト アッ プ ガイ ド 』 の手順に従っ て操作でき る こ と が多いためです。 こ のガイ ド では、 JRun のイ ン ス ト ール、 設定、 およ び JRun サーバー上での Web ア プリ ケ ーシ ョ ン の 公開について説明し ていま す。 組織によ っては、 こ の 2 種類の OEM の特長を 併せ持っ ている 場合があり ま す。 たと えば、 JRun のイ ン ス ト ールはユーザに対し て 透過的に行い、 サーブレ ッ ト エン ジ ン のパ フ ォ ーマ ン ス の 調整や管理に つい て は、 JRun 管理コ ン ソ ール ( JMC) を 使用し て ユーザ自身が行 う よ う に要求す る こ と があ り ます。 OEM ソ フ ト ウ ェ アの必要条件 JRun の イ ン ス ト ールを変更 し て独自の イ ン ス ト ール フ ァ イ ルを生成す る には、 次の 表に示す最低限のシ ス テ ム要件を満た し てい る 必要があ り ます。 プ ラ ッ ト フ ォ ーム 必要条件 UNIX GNU make Windows InstallShield 6.2 以降のバージ ョ ン Web (PFW) 3.0 以降のバージ ョ ン のパ ッ ケージ CYGNUS の Cygwin URL www.installshield.com www.installshield.com www.cygnus.com 第 1 章 OEM リ ソ ース 4 JRun OEM 版 と 製品版の相違点 JRun 3.0 の製品版と OEM 版では、 い く つかの 相違点が あ り ま す。 OEM 版では省 ス ペー スお よ び再配布に重点を置いてい る ため、 製品版の JRun に含まれてい る 内容 の一部が含 ま れてい ま せん。 製品版 を イ ン ス ト ール し た場合は、 イ ン ス ト ール し た OEM に製品版か ら 必要な フ ァ イ ルを コ ピーで き ます。 次の表は、 OEM 版 と 製品版の 違いを示 し ます。 リ ソ ース OEM 版 製品版 コ ンパ イ ル済み コネク タ コ ネク タ のソ ース コ ード が含まれて いますが、 すべてのコ ン パイ ル済み コ ネク タ のバイ ナリ が含まれている わけではあり ません。 すべてのコ ン パイ ル済みコ ネク タ のバ イ ナ リ が含まれています。 サポ ー ト さ れ て い な い プ ラ ッ ト フ ォ ー ムのコ ネ ク タ が必要な 場合は、ソ ース コ ード を 使用 し て コ ネク タ を コ ン パイ ルで き ま す。 お 持ち のコ ネ ク タ のコ ン パイ ル については、『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 サン プル 一部のサン プル コ ー ド やデモ ア プ すべ てのサ ン プ ル コ ー ド と デ モ リ ケーシ ョ ンは含まれていません。 ア プ リ ケ ー シ ョ ン が含 ま れ て い ます。 文書 付属の文書が含まれていません。 文書は Allaire 社の Web サ イ ト (www.allaire.com/documents) か ら ダウン ロ ード でき ます。 JRE (Java Runtime Environment) JRE が含まれて い ません。 JRE の JRE が含まれています 選択およびイ ンスト ールについては、 (Windows のみ )。 JRun セッ ト アッ プ ガイ ド 』 を 参照 し て く だ さ い。 すべての文書が含まれています。 OEM リ ソ ースについて 5 OEM コ ンポーネ ン ト 次の表は、 OEM で使用許諾 さ れ る コ ン ポーネ ン ト の組み合わせ と コ ン ポーネ ン ト の サ イ ズの概算を示 し ます。 コ ンポーネ ン ト サイズ ( 概算 ) JSP/サーブ レ ッ ト サーバー 1 MB EJB ト ラ ンザク シ ョ ン サーバー (JTA) 300 KB EJB ト ラ ンザク シ ョ ン サーバーおよ び メ ッ セージ サーバー (JTA/JMS) 500 KB 完全なサーバー ( サーブ レ ッ ト /JSP/JTA/JMS) 2 MB Allaire ClusterCATS 6 MB 上記のサ イ ズは、 関連す る JAR フ ァ イ ルの合計に基づ く 概算です。 こ れには、 文書や サンプル アプ リ ケーシ ョ ンは含まれてい ません。 詳細情報 製品の ラ イ セ ン ス、 価格、 サポー ト 、 ト レーニ ン グ、 コ ンサルテ ィ ン グ な ど、 OEM と ホ ス テ ィ ン グについては、 xi ページの 「お問い合わせ先」 を参照 し て く だ さ い。 第 1 章 OEM リ ソ ース 6 フ ァ イル グループの概要 Allaire 社の OEM リ ソ ース で は、 makefile ス ク リ プ ト 、 /installers ディ レ ク ト リ 、 およ び /dist ディ レ ク ト リ が提供さ れて いま す。 こ れら のリ ソ ース は、 Windows の 場合は jrun-31-win-oem-us.zip、 UNIX の場合は jrun-31-unix-oem-us.tgz の各フ ァ イ ル か ら 解凍 さ れます。 次の表では、 OEM リ ソ ース に含ま れる フ ァ イ ルおよ びディ レ ク ト リ について 説明 し てい ます。 OEM 契約に よ っ ては、 こ の情報が異な る 場合があ り ます。 ディ レク ト リ フ ァ イル グループ 説明 / README-KIT.txt OEM リ ソ ースに関する 最新の注意事項が含ま れて い ます。 作業 を 進め る前に、 必ず こ の フ ァ イ ルを お読み く だ さ い。 /core コ ン ポーネン ト に依存し ない JRun コ ア フ ァ イ ルが 含まれます。 /DIST /core-props /core-unix /core-x86 /core には、 JNDI、 メ ール、 JDBC JAR フ ァ イ ルなどの JRun フ ァ イルが含まれます。 /core-props には、JRun サーバーの既定プ ロパティ フ ァ イルお よび global.properties が含まれます。 /core-unix およ び /core-x86 には、プ ラ ッ ト フ ォ ーム 固有のフ ァ イ ルが含まれま す。 UNIX への イ ン ス ト ールでは、 /core、 /core-props、 およ び /core-unix を使用 し ます。 Windows への イ ン ス ト ールでは、 /core、 /core-props、 およ び /core-x86 を 使用し ます。 /ejipt /ejipt-props /ejipt_samples /jrun /jrun-props JRun の EJB (Enterprise JavaBeans) お よ び JMS (Java Messaging Service) コ ン ポー ネ ン ト の フ ァ イ ルが含まれます。 サー ブ レ ッ ト コ ン ポ ー ネ ン ト に加 え、 プ ラ ッ ト フ ォ ームに依存し な いコ ン ポーネン ト およ びコ ネ ク タ が含ま れま す。 /jrun-props に は、 JRun プ ロ パテ ィ フ ァ イ ルが含ま れま す。 イ ン ス ト ール後、 こ れ ら のプ ロパテ ィ フ ァ イ ルに格納 さ れた情報が コ ア フ ァ イ ル グルー プ に格納 さ れ て い る 情報に 連結 さ れます。 フ ァ イル グループの概要 ディ レク ト リ 7 フ ァ イル グループ 説明 /jrun-aix ネイ ティ ブ コ ネク タ 、 ラ イ ブラ リ 、 フ ィ ルタ などの プ ラ ッ ト フ ォ ーム固有の フ ァ イ ルが含 まれ ま す。 一部の UNIX フ ァ イ ル グループ の場合、 該当する プ ラ ッ ト フ ォ ー ム 対応のコ ン パイ ラ が含ま れる こ と も あり ま す。 /jrun-apidoc /jrun-hpux /jrun-solaris /jrun-x86 /jrun-x86-linux /installers /jrun-manuals Windows のみ。 空のデ ィ レ ク ト リ で、 PDF 形式の JRun 文書セ ッ ト を格納する よ う に設定で き ます。 /jsp JSP コ ン ポーネン ト が含ま れま す。JSP サポート が 不要な 場合は、こ のフ ァ イ ル グループ を 削除 し て く だ さ い。 /web-apps JMC お よ び 既定の JRun ア プ リ ケ ー シ ョ ン 用の WAR フ ァ イ ルが含まれます。 /JRun 3 InstallShield を 使用し て Windows へのイ ン スト ールを 行う 場合に必要なフ ァ イ ルがすべて含まれています。 /JRun 3 DemoShield /JRun 3 Web DemoShield /dist デ ィ レ ク ト リ の各フ ァ イ ルセ ッ ト には、デ ィ ス ク に書 き 込まれ る フ ァ イ ルのサブ セ ッ ト が 含ま れて い ま す。 makefile によ っ て 、 構築中に こ れら のツ リ ーが 1 つの ツ リ ーに配置さ れま す。 フ ァ イ ルを 追加する には、 そ のフ ァ イ ルを フ ァ イ ルセッ ト ディ レ ク ト リ の 1 つに配置す る か、makefile に新規の フ ァ イ ルセ ッ ト デ ィ レ ク ト リ を 追加 し ます。 製品版 JRun から ネイ ティ ブ コ ネク タ など の必要な非 Java フ ァ イ ルを 入手し 、手作業で こ のキ ッ ト に配置す る こ と も で き ます。 第 1 章 OEM リ ソ ース 8 JRun イ ン ス ト ールのカ ス タ マ イ ズ 次に示すいく つかの方法で、 JRun のコ ン パイ ルおよ びイ ン ス ト ールを カ ス タ マイ ズ し たり 、 独自の Web ア プリ ケ ーシ ョ ン を カ ス タ マイ ズ する こ と ができ ま す。 • makefile のカ ス タ マ イ ズ makefile を使用す る と 、よ り 簡単にカ ス タ ム アプ リ ケー シ ョ ン を JRun イ ン ス ト ールに組み込み、フ ァ イ ル グループを再構成で き る よ う に な り ます。 詳細は、 9 ページの 「makefile のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 • イ ン ス ト ール フ ァ イルの変更 JRun では、 InstallShield (Windows 用 ) およ び シ ェ ル ス ク リ プト (UNIX 用 ) の 2 種類のイ ン ス ト ーラ を 使用し て 、 フ ァ イ ルを 顧客の コ ン ピ ュ ー タ に コ ピー し ます。 Linux も 含め UNIX の場合はすべて、 1 組の シ ェ ル ス ク リ プ ト が使用 さ れ ま す。 UNIX お よ び Windows 環境におけ る イ ン ス ト ール手順につい ては、 10 ページ の 「UNIX JRun イ ン ス ト ー ラ の構築」 お よ び 13 ページの 「Windows JRun イ ン ス ト ー ラ の構築」 を参照 し て く だ さ い。 • JRun プ ロパテ ィ フ ァ イルの変更 製品版 JRun の イ ン ス ト ールでは、 管理者パ ス ワ ード 、 ポート 番号、 JDK/JRE など の設定パラ メ ータ に関する プロ ン プト がユーザに 対し て表示さ れま す。 こ れら の設定値はすべて JRun プロ パティ フ ァ イ ルに保存さ れま す。 ユーザは PropertyScript ユーティ リ ティ を 使用し て、 顧客に通知せずに JRun プ ロ パテ ィ フ ァ イ ル内の JRun の設定を変更で き ます。 PropertyScript ユーテ ィ リ テ ィ の使用方法については、 30 ページの 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 • 外部 Web サーバーへの JRun の接続 通常、イ ン ス ト ール プロ セス の最終ス テッ プ では、 コ ネ ク タ を介 し て Web サーバー と 通信で き る よ う に JRun サーバーを設定 し ま す。 製品版 JRun 3.0 のユーザは、 JMC のコ ネ ク タ ウ ィ ザード を 使用し て 、 外部 Web サーバー用のコ ネ ク タ を 設定し ま す。 OEM の場合は、 ユーザには表示 さ れない ConnectorInstaller ユーティ リ ティ を 使用する こ と も でき ま す。詳細は、 40 ページの 「外部 Web サーバーへの JRun の接続」 を参照 し て く だ さ い。 • OEM ア プ リ ケーシ ョ ンの公開 イ ン ス ト ー ラ に内蔵 さ れてい る 機能を使用 し て、 Web アプ リ ケーシ ョ ン を JRun イ ン ス ト ールに組み込む こ と がで き ます。 詳細は、 19 ページの 「Web アプ リ ケーシ ョ ンのカ ス タ マ イ ズ」 を参照 し て く だ さ い。 JRun でユーザ設定を カ ス タ マイ ズ する 別の方法について は、 35 ページの 「JRun の 組み込み」 を 参照し て く ださ い。 JRun イ ン ス ト ールのカ ス タ マ イ ズ 9 makefile のカ ス タ マ イ ズ Windows と UNIX のど ち ら で JRun イ ン ス ト ーラ を コ ン パイ ルする 場合も 、 顧客に 提供する イ ン ス ト ール実行パッ ケ ージ ( イ ン ス ト ーラ ) は makefile を 使用し て 生成 さ れま す。 こ のイ ン ス ト ーラ では、 カ ス タ ム ア プリ ケ ーシ ョ ン を 含めた り 、 JRun の 不要な コ ン ポーネ ン ト (JSP サポー ト 、 文書、 デモ アプ リ ケーシ ョ ン な ど ) を除外す る こ と がで き ます。 makefile によ っ て、 /dist ツ リ ーから イ ンス ト ーラ にフ ァ イ ルが組み込ま れま す。 UNIX の場合、 makefile は mk-sh-installer を 使用 し て イ ン ス ト ー ラ を コ ン パ イ ル し ま す。 Windows の場合、 makefile は InstallShield を呼び出 し て最終的な実行可能モジ ュ ー ル を コ ン パ イ ル し ま す。 いずれの場合 も 、 イ ン ス ト ールの構築に使用す る フ ァ イ ル ソ ース は /dist ツ リ ーです。 /dist ツ リ ーの内容については、 6 ページ を参照 し て く だ さ い。 makefile は次の make コ マン ド を使用 し て呼び出 さ れます。 % make メモ Windows ベース のシ ス テ ム で make コ マ ン ド を 使用する には、 CYGNUS の Cygwin な ど の UNIX シ ェ ル エ ミ ュ レー タ を使用す る 必要があ り ます。CYGNUS の Cygwin は http://www.cygnus.com から ダウ ン ロ ード でき ま す。 makefile を カ ス タ マ イ ズす る 場合、 Web アプ リ ケーシ ョ ンの追加 と 削除 (19 ページの 「Web ア プ リ ケーシ ョ ン の カ ス タ マ イ ズ」 を 参照 ) や、 JRun の主要 コ ン ポーネ ン ト (EJB/JMS サポー ト な ど ) のカ ス タ マ イ ズ (15 ページの「JRun コ ン ポーネ ン ト のカ ス タ マ イ ズ」 を参照) な ど の作業を通常行い ます。 ま た、 makefile に コ ン ポーネ ン ト 、 ア プ リ ケーシ ョ ン、 その他の フ ァ イ ルを追加 し た り 、 削除す る 場合には、 イ ン ス ト ール ス ク リ プ ト (UNIX) お よ び InstallShield フ ァ イ ル (Windows) の更新が必要に な る こ と も あ り ます。 第 1 章 OEM リ ソ ース 10 UNIX JRun イ ン ス ト ー ラの構築 UNIX OEM リ ソ ース では、 サポート さ れて いる すべて の UNIX プラ ッ ト フ ォ ーム に 対 し て 1 つの イ ン ス ト ール ス ク リ プ ト を使用 し ます。 ク イ ッ ク スター ト こ のセ ク シ ョ ンの手順に従っ て、ま っ た く 変更を加えずに UNIX JRun イ ン ス ト ー ラ を 構築し ま す。 以降のセク ショ ン では、 Web アプリ ケ ーショ ン やコ ン ポーネン ト の追加と 削除を 行っ た り 、 イ ン ス ト ール自体を 変更でき る よ う に JRun を カ ス タ マ イ ズ する 方法について 説明し ま す。 UNIX JRun イ ン ス ト ー ラ を構築するには 1 デ ィ レ ク ト リ に jrun-31-unix-oem-us.tgz を解凍 し ます。 次に例を示 し ます。 % mkdir jrun-kit % gunzip <jrun-31-unix-oem-us.tgz | (cd jrun-kit; tar xf -) 2 make コ マン ド を実行 し ます。 次に例を示 し ます。 % cd jrun-kit/dist % make -i jrun-31-unix-us.sh 構築プ ロ セ スについて makefile は、 要求 さ れた JAR フ ァ イ ル、 WAR フ ァ イ ル、 ラ イ ブ ラ リ 、 お よ び /dist ツ リ ー内の プ ロ パ テ ィ フ ァ イ ル を 検証 し ま す。 次に mk-sh-installer を 呼び出 し 、 sh-install お よ び残 り の コ ン ポーネ ン ト を ス ク リ プ ト フ ァ イ ルに挿入 し て、 イ ン ス ト ール フ ァ イ ルを構築 し ます。 次の図は こ のプ ロ セ ス を示 し てい ます。 JRun イ ン ス ト ールのカ ス タ マ イ ズ 11 ユーザが jrun-31-unix-us.sh フ ァ イ ルを 実行し て JRun をイ ンス ト ールする と 、sh-install は最初のプロ ン プト を 表示し 、 続いてすべての JRun フ ァ イ ルを ユーザのディ ス ク にコ ピー し ます。 sh-install は制御を /bin/install に渡 し 、 JRun サーバー、 EJB エ ン ジ ン、 JVM 設定な ど の残 り のユーザ プ ロ ンプ ト で イ ン ス ト ールお よ び設定を完了 し ます。 次の表は、 フ ァ イ ルご と のユーザ プロ ン プト の一覧です。 こ の一覧を 参考にし て 、 さ ま ざ ま な イ ン ス ト ー ラ プ ロ ンプ ト の検索、 独自のプ ロ ンプ ト の追加、 不要なプ ロ ン プ ト の削除、 お よ び既存のプ ロ ンプ ト の変更を迅速に行 う こ と がで き ます。 フ ァ イル /installers/sh-install ユーザ プ ロ ン プ ト ラ イ セ ン ス契約の承認 JRun イ ン ス ト ール デ ィ レ ク ト リ イ ン ス ト ールの タ イ プ (標準 / カ ス タ ム ) お よび イ ン ス ト ールする コ ン ポーネ ン ト /dist/core-unix/bin/install JRE ま たは JDK の選択 JRun ラ イ セ ン ス キー JRun の管理者ユーザ用パスワー ド JMC Web サーバー ポー ト ニ ュ ース レ タ ーま たは通知の受信 ( 名前お よび電子 メ ール ア ド レ スの入力を要求 ) javadocs の構築時にエ ラ ーが発生す る 場合があ り ますが、 こ れ ら のエ ラ ーは無視 し て か ま い ません。 イ ン ス ト ール ス ク リ プ ト のパ ッ ケージ 標準の UNIX イ ン ス ト ール ス ク リ プ ト を構築す る 際に、 makefile は mk-sh-installer を 呼び出し ま す。 こ れによ り 、 JRun イ ン ス ト ール ス ク リ プト (*.sh) が作成さ れま す。 makefile を 使用せずに mk-sh-installer を 呼び出す こ と も で き ま す。 こ の場合、 mk-sh-installer は変更済みフ ァ イ ルを 含む JRun イ ンス ト ール ス ク リ プト のパッ ケージ を作成し ま す。こ のス ク リ プト は/installers デ ィ レ ク ト リ 内にあ り 、jrun-31-unix-us.sh と 呼ばれます。 mk-sh-installer ス ク リ プ ト では、 次の構文が使用 さ れます。 mk-sh-installer script-file core-directory servlet-directory ejb-directory output-file [compressor] [compressor_path] 第 1 章 OEM リ ソ ース 12 次に、 引数の簡単な説明を示 し ます。 引数 説明 スク リ プ ト に 格納 さ れる際の表記 script-file sh ア ーカ イ ブ を 解凍する ためにシ ェ ル INSTALL_SCRIPT スク リ プ ト で 使用する テ ン プ レ ート core-directory /dist/core デ ィ レ ク ト リ の位置 CORE_DIRECTORY servlet-directory /dist/jrun デ ィ レ ク ト リ の位置 SERVLET_DIRECTORY ejb-directory /dist/ejipt デ ィ レ ク ト リ の位置 EJB_DIRECTORY output-file 生成 さ れた sh アー カ イ ブの名前 OUTPUT_SH compressor (オプ シ ョ ン ) シ ェ ル スク リ プ ト を $6 圧縮するためのコ マンド 。スク リ プト は、 こ のコ マンド を 使用し て sh フ ァ イ ル を 構築する と きの出力を圧縮 し ます (例 : bzip2、 gzip)。 圧縮 コ マ ン ド を指定 し ない場合は、 mk-sh-installer は UNIX の compress ユーテ ィ リ テ ィ を既定で使用 し ます。 compressor_path ( オプ シ ョ ン ) ア ーカ イ ブ ユーテ ィ リ ティ へのパス。 DECOMP_PATH こ のオ プ シ ョ ン は、 汎用 UNIX イ ン ス ト ーラ を 使用する など 、 compress ユー テ ィ リ テ ィ を 使用し な い場合には必須 です。 サイ レ ン ト イ ン ス ト ール オプ シ ョ ンの使用 UNIX シ ス テ ムでは、 JRun OEM 版のサ イ レ ン ト イ ン ス ト ールを実行で き ます。 イ ン ス ト ールの 処理方法を 決める 2 つのス イ ッ チを イ ン ス ト ール ス ク リ プト 内で設定 でき ま す。 設定可能な オプシ ョ ン は次のと おり です。 • SILENT ス ク リ プ ト を サ イ レ ン ト モー ド で実行す る よ う に指示 し ます。 サ イ レ ン ト モー ド では、 プ ロ ン プ ト が画面に表示 さ れ ま せん。 こ のオプ シ ョ ン を 設定す る 場合は、 NOPAUSE も 設定する か、 フ ァ イ ルから の入力を イ ン ス ト ール ス ク リ プト に転送 する 必要が あ り ま す。 NOPAUSE の 設定も イ ン ス ト ール ス ク リ プ ト への 入力も 行わ な い と 、 イ ン ス ト ール ス ク リ プ ト は 最初の プ ロ ン プ ト で 停止し ま すが 、 ユ ーザ には ス ク リ プ ト が入力待ち状態で停止 し てい る こ と がわか り ません。 こ のオプシ ョ ン を有効にす る には、 X に設定 し ます。 次に例を示 し ます。 SILENT = "X" JRun イ ン ス ト ールのカ ス タ マ イ ズ 13 • NOPAUSE ス ク リ プ ト を停止せず、ユーザに入力を要求 し ない よ う に指示 し ます。NOPAUSE を 設定する と 、 JRun のイ ン ス ト ール時にデフ ォ ルト 値が使用さ れま す。 プロ ン プト は 画面に表示さ れま すが、 ユーザは値を 入力でき ま せん。 SILENT ス イ ッ チを 設定 する と 、 プロ ン プト を 非表示にする こ と ができ ま す。 こ のオプシ ョ ン を有効にす る には、 X に設定 し ます。 次に例を示 し ます。 NOPAUSE = "X" サイ レ ント イ ンス ト ールの実行時は、フ ァ イ ル転送を 使用し てイ ンス ト ール プロ ンプト に 入力でき ま す。 こ のテク ニッ ク の例については、 43 ページの 「ConnectorInstaller と フ ァ イ ル転送の併用」 を 参照し てく ださ い。 Windows JRun イ ン ス ト ー ラの構築 Windows OEM リ ソ ース で は、 InstallShield を 使用し て JRun イ ン ス ト ーラ を 構築 し ま す。 メモ JRun OEM リ ソ ー ス は、 InstallShield 6.2 お よ び Package for the Web バージ ョ ン 3.0 を使用 し て構築 さ れてい ます。InstallShield 6.0 ( お よび Package for the Web バージ ョ ン 2.0) を使用し ている 場合は、 アッ プグレ ード し てから 作業を続行する 必要があり ま す。 ク イ ッ ク スター ト こ のセク ショ ンの手順に従って、 ま ったく 変更を加えずに Windows JRun イ ンス ト ーラ を 構築し ま す。 以降のセク ショ ン では、 Web アプリ ケ ーショ ン やコ ン ポーネン ト の追加と 削除を 行っ た り 、 イ ン ス ト ール自体を 変更でき る よ う に JRun を カ ス タ マ イ ズ する 方法について 説明し ま す。 メモ Windows イ ン ス ト ーラ に は、 InstallShield、 Package For the Web、 およ び make コ マン ド を 使用する た めの Cygwin な ど の UNIX エミ ュ レ ータ が必要です。詳細は、 3 ページの 「OEM ソ フ ト ウ ェ アの必要条件」 を参照 し て く だ さ い。 第 1 章 OEM リ ソ ース 14 Windows JRun イ ン ス ト ー ラ を コ ンパ イルするには 1 jrun-31-win-oem-us.zip フ ァ イ ルを解凍 し ます。 次に例を示 し ます。 % mkdir jrun-kit % cd jrun-kit % jar xf jrun-31-win-oem-us.zip 2 Z ド ラ イ ブ を OEM リ ソ ース の場所にマ ッ プ し ます。 次に例を示 し ます。 % subst z: <JRun の OEM ルー ト > InstallShield は、 仮想 ド ラ イ ブ Z を使用 し てその フ ァ イ ル グループ を見つけ ます。 つま り 、 Windows NT の subst コ マン ド を使用 し て、 構築す る 前に Z ド ラ イ ブを JRun の OEM リ ソ ース ルー ト に割 り 当ててお く 必要があ り ます。 メモ Z な ど の仮想 ド ラ イ ブか ら JRun3.ipr を開 く と 、 InstallShield 6.2 に よ っ て既定の メ ディ ア が再構築さ れま せん。 InstallShield でプロ ジ ェ ク ト を 開く と き は、 仮想 ド ラ イ ブ以外のパス を 使用し て く ださ い。 3 makefile 内で InstallShield の変数のパス を 正し く 設定し ま す。 詳細は、 15 ページの 「InstallShield の変数の更新」 を 参照し てく だ さ い。 4 make コ マン ド を実行 し ます。 次に例を示 し ます。 % cd dist % make jrun-31-win-us.exe 問題が発生 し た場合は、 14 ページの 「構築プ ロ セ ス について」 を参照 し て く だ さ い。 構築プ ロ セ スについて makefile (make コ マン ド の暗黙引数) は、 要求さ れた JAR、 WAR、 ラ イ ブラ リ 、 およ び /dist ツ リ ー内のプ ロ パテ ィ フ ァ イ ルを検証 し てか ら InstallShield を呼び出 し 、 JRun 実行可能モジ ュ ールを作成 し ます。 InstallShield プロ ジェ ク ト フ ァ イ ル (jrun 3.ipr) およ び関連フ ァ イ ルは /installers/JRun 3 にあ り ます。 /dist ツ リ ーのディ レ ク ト リ は InstallShield プロ ジェ ク ト のフ ァ イ ル グ ループに対応 し てい ます。 makefile フ ァ イ ルによ っ て 、 InstallShield ディ レ ク ト リ の _isres.dll が /jrun-kit /installers ディ レ ク ト リ の _isres.dll のコ ピ ーで上書き さ れま す。 makefile を 実行する 前に、 _isres.dll フ ァ イ ルのバ ッ ク ア ッ プ を作成 し て く だ さ い。 JRun イ ン ス ト ールのカ ス タ マ イ ズ 15 次の表では、 /installers デ ィ レ ク ト リ の内容について説明 し てい ます。 ディ レク ト リ 内容 /installers/ClusterCATS ClusterCATS PFW フ ァ イ ル /installers/JRun 3 InstallShield プ ロ ジ ェ ク ト およ び PFW フ ァ イ ル、 フ ァ イ ル グループ定義、 お よびその他の JRun イ ン スト ール用関連フ ァ イ ル /installers/JRun 3 DemoShield JRun DemoShield プ ロ ジ ェ ク ト フ ァ イル /installers/JRun 3 Web DemoShield JRun Demo PFW フ ァ イ ルお よ び関連 フ ァ イル /installers/tools DemoShield プ レ ーヤー フ ァ イル InstallShield の変数の更新 makefile 内の 次の 変数が InstallShield の フ ァ イ ルを 参照し て い る こ と を 確認する 必要があ り ま す。 • INSTALLSHIELD_DIR 変数は InstallShield 6.2 デ ィ レ ク ト リ を参照 し てい る 必要が あ り ます。 次に例を示 し ます。 INSTALLSHIELD_DIR=//c/Progra~1/InstallShield/InstallShield Professional 6.2 • PFTWBIN 変数は Package for the Web 2.0 デ ィ レ ク ト リ を参照 し てい る 必要があ り ます。 次に例を示 し ます。 PFTWBIN=//c/Progra~1/InstallShield/PackageForTheWeb 2 makefile が PFW の正 し いバージ ョ ン を参照 し てい る こ と を確認 し ます。 こ の参照は、 使用 し てい る InstallShield のバージ ョ ン と 一致 し ていなければな り ません。 JRun コ ンポーネン ト のカ ス タ マ イ ズ JRun の主要 コ ン ポーネ ン ト は次の 3 つです。 • サーブ レ ッ ト エン ジ ン (必須 ) • JSP エン ジ ン • EJB/JMS JSP ま たは EJB/JMS のサポート を 削除する こ と によ っ て、 JRun イ ン ス ト ー ラ を軽量化 す る こ と がで き ます。 ただ し 、 サーブ レ ッ ト は JRun に必要不可欠な コ ン ポーネ ン ト なので削除で き ません。 UNIX およ び Windows のいずれの場合も 、 コ ンポーネント を 削除する には、 makefile を 編集 し て 適切 な フ ァ イ ル ま た はデ ィ レ ク ト リ を ス キ ッ プ す る よ う に設定 し ま す。 Windows では、 InstallShield フ ァ イ ルの変更が必要に な る 場合 も あ り ま す。 不要な フ ァ イ ル グループを 削除し ま す。 Windows イ ンス ト ール用の InstallShield プロ ジェ ク ト では、 ユーザがカ ス タ ム イ ン ス ト ールを 選択し た場合に [コ ン ポーネン ト ] ダイ アロ グ ボッ ク ス を 編集する 必要があり ま す。 UNIX イ ンス ト ーラ では、 sh-install を 編集し ま す。 第 1 章 OEM リ ソ ース 16 複数の JRun イ ン ス タ ン スのイ ン ス ト ール さ ま ざ ま な 理由から 、 JRun 3.1 を 旧バージ ョ ン の JRun と と も にイ ン ス ト ールする こ と が必要な 場合があ り ま す。 • 開発者が Web アプリ ケーショ ンを 3.0 から 3.1 に移行する 場合は、 両方のバージョ ンで 作業する 必要があ り ま す。 こ の変更については、 『JRun Version 3.1 機能お よび移 行ガ イ ド 』 を 参照し て く ださ い。 • 顧客の OEM アプリ ケーショ ンで旧バージョ ンの JRun が使用さ れる 場合があり ま す。 複数のバージョ ンの JRun を実行する 場合の最も 一般的な問題は、すべての JRun サービス に 固有のポート を 選択する こ と です。 こ のセク ショ ン では、 同じ マシン で JRun の 2 つの バージ ョ ン を実行す る 方法について説明 し ます。 JRun のイ ン ス ト ール ほと んど の場合、 JRun 3.1 と JRun 3.0 を 同じ マシ ン にイ ン ス ト ールし て 同時に実行 でき ま す。 た だし 、 同じ バージ ョ ン の JRun の 複数の コ ピ ーを Windows マ シ ン に イ ン ス ト ールする こ と はでき ま せん。 次に、 複数のイ ン ス ト ール バージ ョ ン が確実に共存でき る よ う にする 方法について 説明し ま す。 • 新バージョ ンの JRun によ って固有のポート 番号のみが要求さ れる よ う に、 JRun 3.0 の 実行中に JRun 3.1 を イ ン ス ト ール し ます。 • admin JRun サーバーお よ び default JRun サーバーの local.properties フ ァ イ ルを 編集 し ます。固有のポー ト 番号を ejb.classserver.port と ejb.homeport に割 り 当て ま す。 JRun のポート については、 『JRun セッ ト アッ プ ガイ ド 』 を 参照し てく ださ い。 • (Windows のみ) 旧バージョ ン を NT サービ ス と し て実行し ている 場合は、 JRun 3.1 を NT サービ ス と し てイ ン ス ト ールし ないでく ださ い。 サービ ス 名が同じ であ る た め、 競合が発生する 場合があり ま す。 ただし 、 独自の JRun サーバーを 追加し 、 JRun のバージ ョ ン に よ っ てサーバーを一意に識別す る 場合は、 両方 と も サービ ス と し て実行でき ま す。 ま た 、 37 ページの 「Windows NT サービ ス名の変更」 の指示に 従っ て 、 default JRun サーバーの NT サービ ス 名を 変更でき ま す。 旧バージ ョ ンの JRun のイ ン ス ト ール 旧バージョ ンの JRun は、 配布 CD のルート レ ベルに収録さ れていま す。 ま た、 Allaire 社 の Web サイ ト から も ダウ ン ロ ード でき ま す。 フ ァ イ ル名が異なる 点を 除き 、 『JRun セッ ト ア ッ プ ガ イ ド 』 の手順に従っ て イ ン ス ト ールで き ます。 複数の JRun イ ン ス タ ン スの イ ン ス ト ール 17 JRun のルー ト デ ィ レ ク ト リ の調査 JRun の追加コ ピ ーを イ ン ス ト ールする と き 、 JRun のルート ディ レ ク ト リ の調査が 必要になる 場合があり ま す。こ のオプショ ン を 使用する と 、環境変数で jrun コ マン ド が ど の JRun イ ン ス タ ン ス にマ ッ ピ ン グ さ れてい る かにかかわ ら ず、 呼び出す イ ン ス タ ン ス を指定で き ます。 -jrundir オプショ ン を 使用する と 、 JRun サーバーの起動時にコ マンド ラ イ ン で JRun の ルート デ ィ レ ク ト リ を 指定で き ま す。 同 じ マ シ ン に イ ン ス ト ール さ れてい る 複数の JRun イ ン ス タ ン ス を区別す る には、 こ のオプシ ョ ン を使用 し ます。 次に例を示 し ます。 % jrun -jrundir c:\oemcompany\servlet_engine start -default イ ン ス ト ールさ れて いる JRun イ ン ス タ ン ス が 1 つだけ の場合、 こ のオプシ ョ ン は 必要あ り ま せん。 jrun プ ロ セ ス では、 次の手順に従っ てルー ト デ ィ レ ク ト リ が調べ ら れます。 1 -jrundir "dir" を最初の 2 つの引数 と し て受け入れます。 2 JRUN_HOME 環境変数の値を取得 し ます。 3 jrun.exe (Windows) ま たはシ ェ ル ス ク リ プ ト (UNIX) の場所に基づいてルー ト デ ィ レ ク ト リ を調べます。 Windows での イ ン ス ト ールの場合、 JRun によ っ てレ ジス ト リ が使用さ れる こ と は あり ま せん。 第 1 章 OEM リ ソ ース 18 バージ ョ ン情報の取得 JRun には、イ ン ス ト ール済みのバージ ョ ンに関す る 追加情報を取得す る ための 2 つの コ マン ド ラ イ ン オプシ ョ ン があ り ま す。 こ れら のオプシ ョ ン は、 ア ッ プグ レ ード の テス ト やク ラ イ アン ト の問題のデバッ グに使用でき ま す。 オプショ ン は次の 2 つです。 • -info • -version info jrun -info -info オプシ ョ ンでは、 現在の JRun イ ン ス ト ールに関す る 情報が返 さ れます。 次に例を示 し ます。 % bash$ ./jrun -info JRun 3.1 Version 3.1.12345 Developer Edition Windows で -info オプショ ンを使用する には、 コ マンド ラ イ ンから JRun を Java への 入力 と し て実行 し ます。 次に例を示 し ます。 % java JRun -info ク ラ スパ ス に jrun.jar と servlet.jar を指定す る 必要があ り ます。 version jrun -version -version オプシ ョ ンでは、 JRun の現在のバージ ョ ンが返 さ れます。 UNIX での例は次の と お り です。 % bash$ ./jrun -version 3.1.12345 Windows で -version オプシ ョ ン を使用す る には、 コ マ ン ド ラ イ ン か ら JRun を Java への入力 と し て実行 し ます。 次に例を示 し ます。 % java JRun -version ク ラ スパ ス に jrun.jar と servlet.jar を指定す る 必要があ り ます。 Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ 19 Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ イ ン ス ト ール時に公開さ れる Web ア プリ ケ ーシ ョ ン への参照を 追加、 変更、 ま た は 削除す る こ と に よ っ て、 イ ン ス ト ール さ れ る ソ フ ト ウ ェ アお よ びフ ァ イ ルを追加 し た り 削除で き ます。 WAR フ ァ イ ルを web-apps フ ァ イ ルセ ッ ト に追加 し 、 イ ン ス ト ール 時に ア プ リ ケ ー シ ョ ン を 公開す る UNIX イ ン ス ト ール ス ク リ プ ト ま た は Windows InstallShield ス ク リ プ ト のいずれか を変更 し ます。アプ リ ケーシ ョ ン を削除す る には、 フ ァ イ ルを削除 し て ス ク リ プ ト を変更 し ます。 既定の JRun イ ン ス ト ールでは、default と admin の 2 つの JRun サーバーが作成 さ れ、 次の Web アプ リ ケーシ ョ ンがセ ッ ト ア ッ プ さ れます。 • default-app • demo-app • invoice-app • jmc-app • web-rds 以降のセク シ ョ ン では、 JRun イ ン ス ト ール時に公開さ れる ア プリ ケ ーシ ョ ン を 追加 およ び削除する 方法について 説明し ま す。 • JRun イ ン ス ト ールに含まれてい る 既定のアプ リ ケーシ ョ ン を削除す る 。 詳細は、 20 ページの 「JRun Web アプ リ ケーシ ョ ンの削除」 を参照 し て く だ さ い。 • イ ン ス ト ール時に OEM アプリ ケ ーショ ン を 公開する 。 詳細は、 21 ページの 「Web アプ リ ケーシ ョ ンの追加」 を参照 し て く だ さ い。 • JRun の イ ン ス ト ールお よ び設定後に OEM アプ リ ケーシ ョ ン を公開す る 。詳細は、 23 ページの 「Web アプ リ ケーシ ョ ンの公開」 を参照 し て く だ さ い。 さ ら に、 WebAppController イ ン タ ーフ ェ イ ス では、 こ れら の作業の一部を 実行でき ま す。 詳細は、 28 ページの 「Web アプ リ ケーシ ョ ンの制御」 を参照 し て く だ さ い。 第 1 章 OEM リ ソ ース 20 JRun Web ア プ リ ケーシ ョ ンの削除 イ ンス ト ール フ ァ イ ルを 小さ く する 目的で、 ま たは既定のアプリ ケーショ ン を 顧客に対 し て非表示にする 目的で、 既定のアプリ ケーショ ン の一部ま たはすべてを 削除する こ と が必要な 場合があ り ま す。 最も 一般的には、 default-app、 demo-app、 invoice-app、 およ び rds-app アプリ ケ ーショ ン を 削除し ま す。顧客が JRun 管理コ ン ソ ール (JMC) を 使用し て JRun を 設定でき る よ う にする 場合は、 jmc-app を イ ン ス ト ールから 削除 し な いでく ださ い。 メモ JRun イ ン ス ト ー ラ コ ンパ イ ルに変更を加え る 前に、 すべての フ ァ イ ルを必ずバ ッ ク ア ッ プ し て く だ さ い。 こ のセク ショ ン では、 InstallShield プロ ジェ ク ト (Windows) およ びイ ン ス ト ール ス ク リ プト (UNIX) を 編集し て、 Web アプリ ケーショ ンを 削除する 方法について説明し ま す。 アプリ ケ ーショ ン が実行可能モジュ ールに組み込ま れないよ う に (つま り 、 必要以上に フ ァ イ ル サ イ ズ が大 き く な ら な い よ う に ) makefile を 編集す る 必要 も あ り ま す。 Windows と UNIX での rds-app の削除例について は、 21 ページの 「例 : web-rds の 削除」 を 参照し て く ださ い。 Windows でのア プ リ ケーシ ョ ンの削除 Web アプリ ケーショ ンを削除する には、makefile だけでなく InstallShield プロ ジェ ク ト も 編集する 必要があり ま す。 アプリ ケーショ ンを削除する には、 InstallShield プロ ジェ ク ト の jrun.rul フ ァ イ ル内の undeployApp 関数を使用 し ます。 setup.rul で deploy 関数への呼び出し を コ メ ン ト 化し 、 イ ン ス ト ール時に非表示にする アプ リ ケーシ ョ ン を選んで除外す る こ と も で き ます。 UNIX でのア プ リ ケーシ ョ ンの削除 /dist/core-unix/bin/install フ ァ イ ルの "#deploy apps" セ ク シ ョ ン を編集 し て、 イ ン ス ト ール時に非表示にす る アプ リ ケーシ ョ ン を削除 し ます。 アプ リ ケーシ ョ ンの前に # を付けて コ メ ン ト 化す る か、 行を削除 し ます。 次のコ ード 例は、既定でイ ン ス ト ールさ れる 3 つの JRun アプリ ケ ーショ ン を 示し ま す。 demo-app アプ リ ケーシ ョ ンは コ メ ン ト 化 さ れ、 無効にな っ てい ます。 # deploy apps deploy "$JRUNROOTDIR/web-apps/default-app/default-app.war" default default-app / "$JRUNROOTDIR/servers/default/default-app" deploy "$JRUNROOTDIR/web-apps/jmc-app/jmc-app.war" admin jmc-app / "$JRUNROOTDIR/servers/admin/jmc-app" #deploy "$JRUNROOTDIR/web-apps/demo-app/demo-app.war" default demo-app #/demo "$JRUNROOTDIR/servers/default/demo-app" Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ 21 例 : web-rds の削除 web-rds アプ リ ケーシ ョ ンは JRun Studio を使用可能にす る ために使用 し ます。 JRun Studio がイ ン ス ト ールの一部であ る 場合を 除き 、こ のアプリ ケーショ ン を 製品と と も に 配布する 必要はあ り ま せん。 こ の ア プリ ケ ーシ ョ ン の自動公開を 無効にする には、 次のセ ク シ ョ ン で説明さ れて いる 手順に従っ て く ださ い。 Windows で web-rds を無効にするには 1 JRun キ ッ ト へのパ ス \installers\JRun 3\Script Files\ComponentEvents.rul フ ァ イ ルを開 き ます。 2 RDSComp_Installed = TRUE を RDSComp_Installed = FALSE に変更 し ます。 3 RDSComp_Uninstalled = TRUE を RDSComp_Uninstalled = FALSE に変更 し ます。 4 Events.rul フ ァ イ ルを保存 し て閉 じ ます。 UNIX で web-rds を無効にするには 1 2 JRun キ ッ ト へのパス /dist/core-unix/bin/install フ ァ イ ルを開 き ます。 次の行を削除す る か、 コ メ ン ト 化 し ます。 deploy "$JRUNROOTDIR/web-apps/rds-app/rds-app.war" admin rds-app /CFIDE "$JRUNROOTDIR/servers/admin/rds-app" 3 install フ ァ イ ルを保存 し て閉 じ ます。 Web ア プ リ ケーシ ョ ンの追加 アプ リ ケーシ ョ ン フ ァ イ ルを フ ァ イ ル セ ッ ト に追加 し 、 イ ン ス ト ール ス ク リ プ ト を 変更する こ と によ り 、 イ ン ス ト ール時に Web アプリ ケーショ ン が公開さ れる よ う に設定 でき ま す。 こ のセク ショ ン では、 Windows およ び UNIX での Web アプリ ケーショ ン の 追加方法 を説明 し ます。 イ ン ス ト ールす る アプ リ ケーシ ョ ンが 2 つ以下の場合、 お客様のアプ リ ケーシ ョ ン を 公開す る 最 も 簡単な方法は、OEM リ ソ ース に付属す る demo-app お よ び default-app イ ン フ ラ ス ト ラ ク チ ャ を再利用す る こ と です。こ れ ら のアプ リ ケーシ ョ ンの WAR ファ イ ルは /dist/web-apps にあ り ま す。 その WAR フ ァ イ ルを いずれかのディ レ ク ト リ にコ ピ ーし 、 WAR フ ァ イ ル名を JRun ア プリ ケ ーショ ン の名前に変更でき ま す。 たと え ば、 YourApp.war を /demo-app ディ レク ト リ にコ ピーし 、YourApp.war を demo-app.war と い う 名前に変更 し ます。 ア プリ ケ ーショ ン のディ レ ク ト リ 構造に /demo-app ま たは /default-app と いう 名前 を 付けない場合、 あ る いは公開す る アプ リ ケーシ ョ ンが 3 つ以上あ る 場合は、 次のセ ク シ ョ ンの説明に従っ て く だ さ い。 メモ JRun イ ン ス ト ー ラ コ ンパ イ ルに変更を加え る 前に、 すべての フ ァ イ ルを必ずバ ッ ク ア ッ プ し て く だ さ い。 第 1 章 OEM リ ソ ース 22 Windows およ び UNIX のいずれのイ ン ス ト ールの場合も 、 makefile を 編集し て アプ リ ケーシ ョ ン を含め て /dist ツ リ ーに追加 し 、ア プ リ ケーシ ョ ン を イ ン ス ト ール フ ァ イ ルで使用で き る よ う に し ます。 Windows での Web ア プ リ ケーシ ョ ンの追加 Windows でア プ リ ケーシ ョ ン を追加するには 1 makefile を開 き ます。 2 大文字 と 小文字 を区別せずに文字列 DEMO を検索 し 、 独自の カ ス タ ム コ ー ド を 追加する 場所を すべて見つけま す。 demo-app 用のコ ード を コ ピ ーし て、 追加する 必要のあ る コ ー ド を確認 し ます。 3 makefile を保存 し ます。 4 /dist/web-apps ツ リ ーで、 makefile に指定 し た ア プ リ ケ ー シ ョ ン 名 を 持つ別の ディ レ ク ト リ を作成し ま す。こ れによ り 、アプリ ケーショ ンがイ ンス ト ール フ ァ イ ルで 使用でき る よ う になり ま す。 WAR フ ァ イ ルを 新規ディ レ ク ト リ にコ ピ ーし ま す。 5 InstallShield プロ ジェ ク ト フ ァ イ ルを 編集し て Web アプリ ケーショ ン を 含めま す。 InstallShield プロ ジェ ク ト では、 setup.rul から deployApp() 関数を 呼び出すこ と に よ っ てアプリ ケーショ ンが公開さ れま す。 たと えば、 setup.rul の次のコ ード によ っ て demo-app が公開 さ れます。 SdShowMsg ("Web ア プ リ ケーシ ョ ンのデモ を追加...",TRUE ); deployApp(TARGETDIR ^ "demo-app.war", "default", "demo-app", _ "/demo", TARGETDIR ^ "servers\\default\\demo-app", TARGETDIR); DeleteFile(TARGETDIR ^ "demo-app.war"); SdShowMsg ("Web ア プ リ ケーシ ョ ンのデモ を追加 し ています。 お待ち く だ さ い ...", FALSE); setup.rul フ ァ イ ルは /installers/JRun 3/Script Files にあ り ます。 6 InstallShield を 使用する 場合、 新規アプリ ケーショ ン に新規の FileGroup を追加す る こ と を忘れないで く だ さ い。 7 新規の FileGroup を 追加し た後で、 メ ディ ア を 再構築し てプロ ジェ ク ト を 保存する 必要があ り ま す。 Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ 23 UNIX でのア プ リ ケーシ ョ ンの追加 UNIX で Web ア プ リ ケーシ ョ ン を追加するには 1 makefile を開 き ます。 2 大文字 と 小文字 を区別せずに文字列 DEMO を検索 し 、 独自の カ ス タ ム コ ー ド を 追加する 場所を すべて見つけま す。 demo-app 用のコ ード を コ ピ ーし て、 追加する 必要の あ る コ ー ド を確認 し ま す。 3 makefile を保存 し ます。 4 /dist/web-apps ツ リ ーで、 makefile に指定 し た ア プ リ ケ ー シ ョ ン 名 を 持つ別の ディ レ ク ト リ を作成し ま す。こ れによ り 、アプリ ケーショ ンがイ ンス ト ール フ ァ イ ルで 使用でき る よ う になり ま す。 WAR フ ァ イ ルを 新規ディ レ ク ト リ にコ ピ ーし ま す。 5 コ ー ド を /dist/core-unix/bin/install フ ァ イ ルに追加 し て ア プ リ ケ ー シ ョ ン を 公開 し ます。 こ の install ファ イ ルには、公開さ れる アプリ ケーショ ンの一覧と deploy サブルーチン が含ま れていま す。 Web ア プ リ ケーシ ョ ンの公開 JRun には、 ユーザが JRun を イ ン ス ト ール し た後で Web アプ リ ケーシ ョ ン を公開、 再公開、 削除する ための WarDeploy ユーティ リ ティ があり ま す。 UNIX イ ンス ト ーラ で は JRun の イ ン ス ト ール時に WarDeploy が使用 さ れ ます。 ユーザは ア プ リ ケーシ ョ ン のユーザ イ ン タ ー フ ェ イ ス を介 し て WarDeploy を 呼び 出すので、 JRun 管理 コ ン ソ ールの イ ン タ ー フ ェ イ ス を使用 し て ア プ リ ケーシ ョ ン の 公開や削除 を行 う 必要はあ り ません。 WarDeploy ユーティ リ ティ は、 JMC の [Web アプリ ケ ーショ ン の公開] パネルと 同様の 機能を 果たし ま す。 こ のユーティ リ ティ は、 アプリ ケーショ ン の WAR フ ァ イ ルを 既存の JRun サーバーに公開し ま す。 WAR フ ァ イ ルは、 JSP、 サーブレ ッ ト 、 イ メ ージ、 お よ び Web ア プ リ ケーシ ョ ン のその他の関連 コ ン ポーネ ン ト で構成 さ れてい ま す。 こ れは サーブ レ ッ ト 仕様の定義に従っ て、構造化 さ れた階層に配置 さ れます。 こ の構造には、 記述子フ ァ イ ルの web.xml も 含まれます。 WarDeploy の使用 WarDeploy は jrun.jar フ ァ イ ル内の allaire.jrun.tools パ ッ ケージの一部です。 jrun.jar フ ァ イ ル を 使用す る に は、 こ の フ ァ イ ル を ク ラ ス パ ス に含め る 必要が あ り ま す。 WarDeploy を 使用 し て ア プ リ ケー シ ョ ン を 公開す る には、 コ マ ン ド ラ イ ン で 6 つ の必須パラ メ ータ を 渡すか、 - config オプショ ン と こ れら のパラ メ ータ を 含むフ ァ イ ル を使用 し ます。 WarDeploy を使用 し てアプ リ ケーシ ョ ン を削除す る には、 -remove オプシ ョ ン を使用 し てコ マン ド ラ イ ン で 3 つの必須パラ メ ータ を 渡すか、 -config オプショ ン を 使用し て こ れ ら の 3 つのパ ラ メ ー タ を含むフ ァ イ ルを参照 し ます。 第 1 章 OEM リ ソ ース 24 WarDeploy の構文は次の と お り です。 java -cp [classpath] allaire.jrun.tools.WarDeploy [-deploy|redeploy] [deploy.war.path=value deploy.server.name=value deploy.webapp.name=value deploy.context.path=value deploy.webapp.rootdir=value deploy.jrun.rootdir=value] [-config=property_file_name] [-remove] [deploy.server.name=value deploy.jrun.rootdir=value deploy.webapp.name=value] [-config=property_file_name] redeploy オプ シ ョ ン に よ っ て、 ア プ リ ケ ー シ ョ ン で remove が呼び出 さ れ、 次に deploy が呼び出さ れま す。 WarDeploy の使用例については、 24 ページの 「WarDeploy の使用例」 を参照 し て く だ さ い。 次の表では、 プ ロ パテ ィ について説明 し てい ます。 プ ロパテ ィ 説明 deploy.war.path 公開する WAR ファ イルまたはディ レクト リ へのファ イル システム パス deploy.server.name Web アプ リ ケーショ ン の公開先と なる JRun サーバー名 deploy.webapp.name サーバー内で JRun Web アプリ ケーショ ン に割り 当てる 名前。 こ の 名前は JRun サーバーと は異なる固有の名前でなければなり ません。 deploy.context.path Web ア プ リ ケーシ ョ ン にア ク セ ス する ためのコ ン テ キスト パス URI。 こ のパラ メ ータ は、 JMC の [Web アプリ ケーショ ン の公開] パネルの [アプリ ケーショ ンの URI ] に対応し ています。 deploy.webapp.rootdir Web アプリ ケーショ ン の公開先と なる ルート ディ レ ク ト リ 。 WarDeploy ユーティ リ ティ は WAR フ ァ イ ルまたは WAR ディ レ ク ト リ の内容を こ のディ レ ク ト リ にコ ピーし ます。 deploy.jrun.rootdir JRun ルート イ ン スト ール ディ レ ク ト リ を 指すパス。 jrun.rootdir シ ステ ム プ ロ パティ が定義さ れている 場合、 こ のプ ロ パテ ィ は オプ ショ ン です。 WarDeploy の使用例 こ のセ ク シ ョ ンでは、 WarDeploy ユーテ ィ リ テ ィ の使用例を示 し ます。 コ マ ン ド ラ イ ン での WarDeploy の使用 次の例では、 コ マ ン ド ラ イ ンでパ ラ メ ー タ を渡す こ と に よ っ て nickdanger JRun サーバー上に hws-app を公開 し ます。 Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ 25 c:\>java -cp "c:\Program Files\Allaire\JRun\lib\jrun.jar" allaire.jrun.tools.WarDeploy -deploy deploy.war.path="c:\temp\hws.war" deploy.server.name=nickdanger deploy.webapp.name="hws-app" deploy.context.path=/nickshardware deploy.webapp.rootdir="c:\Program Files\Allaire\JRun\servers\ nickdanger\hardware_store" deploy.jrun.rootdir="c:\Program Files\allaire\JRun" config フ ァ イルを指定 し た WarDeploy の使用 次の例では、 コ マ ン ド ラ イ ンにパ ラ メ ー タ を渡すのではな く 、 パ ラ メ ー タ の含まれ る フ ァ イ ルを指定 し ます。 c:\java -cp "c:\Program Files\Allaire\JRun\lib\jrun.jar" allaire.jrun.tools.WarDeploy -deploy -config="c:\temp\war.txt" war.txt フ ァ イ ルの内容は次の と お り です。 deploy.war.path="c:\temp\hws.war" deploy.server.name=nickdanger deploy.webapp.name="hws-app" deploy.context.path=/ nickshardware deploy.webapp.rootdir="c:\Program Files\Allaire\JRun\servers\nickdanger\ hardware_store" deploy.jrun.rootdir="c:\Program Files\allaire\JRun" ア プ リ ケーシ ョ ン削除時におけ る WarDeploy の使用 次の例では、 nickdanger JRun サーバーか ら hws-app を削除 し ます。 c:\java -cp "c:\Program Files\Allaire\JRun\lib\jrun.jar" allaire.jrun.tools.WarDeploy -remove deploy.server.name=nickdanger deploy.webapp.name=hws-app deploy.jrun.rootdir="c:\Program Files\Allaire\JRun" JSP ソ ース コ ー ド の非表示 Web アプリ ケーショ ンの一部と し て JSP ページを 公開する 場合、顧客にこ れら のページの ク リ ア テキス ト バージョ ン を 提供し ない場合も あり ま す。 代わり に、 こ れら のページの バ イ ナ リ (.class) バージ ョ ンのみを配布で き ます。 JRun では、 JSP ページが ク ラ イ ア ン ト に よ っ て初めて要求 さ れた場合、 ま たは要求 さ れた JSP ページが最後の要求後に変更 さ れていた場合に、 JSP ページが コ ンパ イ ル さ れ、 そのページの ク ラ ス フ ァ イ ルが作成 さ れます。 ただ し 、 公開 さ れてい る アプ リ ケーシ ョ ンで、 コ ンパ イ ルを行わずに JRun に よ っ てそのページの ク ラ ス フ ァ イ ルが 必ず読み込まれ る よ う に強制す る こ と も で き ます。 第 1 章 OEM リ ソ ース 26 JSP ページの コ ンパ イ ルを行わない理由 と し ては、 次の よ う な も のがあ り ます。 • パフ ォ ーマン ス : 静的な JSP ページのコ ンパイ ルによ っ て、 アプリ ケーショ ンに対す る 処理オーバーヘ ッ ド が最初に増加 し ます。 • セキュ リ ティ : JSP ページは、 誰でも 読み取り や編集ができ る テキス ト フ ァ イ ルです。 JSP ページのコ ン パイ ルを 行わない場合、アプリ ケーショ ン を 構成する JSP ページを 出荷す る 必要はあ り ません。 代わ り に、 対応す る Java バ イ ト コ ー ド 形式の ク ラ ス フ ァ イ ルのみを出荷 し ます。 JSP のコ ン パイ ル プロ セス と JSP コ ンパイ ラ の回避によ る 影響については、 『 JRun によ る アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 JSP ページの コ ンパイルの無効化 JSP ページ の コ ン パ イ ルを明示的に無効にす る には、 JMC を使用 し て JSP ページ を 処理す る JRun サーブ レ ッ ト を変更 し ます。 個別の Web アプ リ ケーシ ョ ン に対 し て コ ン パ イ ル を 有効 ま た は無効にす る こ と がで き る よ う に、 こ の設定は Web ア プ リ ケーシ ョ ン レベルで行い ます。 JSP の コ ンパイルを無効にするには 1 JMC で [ サーバー名 ] > [アプ リ ケーシ ョ ン ] > [ アプ リ ケーシ ョ ン名 ] > [サーブレ ッ ト URL のマ ッ ピ ング ] を選択 し ます。 [ サーブ レ ッ ト URL のマ ッ ピ ン グ ] パネルが JMC の右側に表示 さ れます。 2 [編集 ] ボ タ ン を ク リ ッ ク し ます。 サーブ レ ッ ト URL のマ ッ ピ ン グの編集ウ ィ ン ド ウ が表示 さ れます。 Web ア プ リ ケーシ ョ ンのカ ス タ マ イ ズ 3 [仮想パ ス / 拡張子] フ ィ ール ド に 「*.jsp」 と 入力 し ます。 4 [呼び出 さ れ る サーブ レ ッ ト ] フ ィ ール ド に 「jsprt」 と 入力 し ます。 5 [更新 ] ボ タ ン を ク リ ッ ク し ます。 6 JRun サーバーを再起動 し ます。 27 こ れで、 JSP ページに対する すべての要求が jsprt サーブレ ッ ト によ っ て処理さ れる よ う になり ま す。 こ のサーブレ ッ ト は JSP ページの存在を チェ ッ ク せず、 対応する ク ラ ス フ ァ イ ルのみを 検索し ま す。そのため、 公開さ れる Web アプリ ケーショ ン で は JSP ページを 公開する 必要があり ま せん。JSP フ ァ イ ルはソ ース コ ード フ ァ イ ルで ある ため、 公開さ れる アプリ ケ ーショ ン から ソ ース コ ード を 省略でき ま す。 JSP のプ レ コ ンパイル コ ンパ イ ル を オ フ にす る 場合は、 すべての JSP ページの対応す る ク ラ ス フ ァ イ ル を イ ン ス ト ールに含め る 必要が あ り ま す。 し た が っ て、 ア プ リ ケーシ ョ ン を公開す る 前に、 すべての JSP ページ を プ レ コ ンパ イ ル し て ク ラ ス フ ァ イ ルを作成す る 必要が あ り ます。 プ レ コ ンパ イ ルは次の ど ち ら かの方法で行い ます。 • JSP ページの コ ンパ イ ルを有効に し て、 アプ リ ケーシ ョ ンのすべての JSP ページ を 要求 し ます。 JSP ページ を要求す る と 、 すべての JSP ページが コ ンパ イ ル さ れ、 対応す る ク ラ ス フ ァ イ ルが確実に作成さ れま す。 こ の方法の短所は、 各 JSP ページを 手作業で要求 し な け ればな ら な いこ と です。 要求し て いな い JSP ページ が 1 つでも あ る と 、 ク ラ イ アン ト がそのページを 要求し てそのページがコ ン パイ ルさ れていない場合に エラ ーが発生し ま す。 • JSPC コ ン パイ ラ を 使用し て、コ マン ド ラ イ ン から すべての JSP ページを コ ン パイ ル し ま す。 JSPC コ ンパ イ ラ に よ っ て、 1 つの コ マ ン ド でアプ リ ケーシ ョ ン と 関連付け ら れた すべての JSP ページ を コ ンパ イ ルで き ます。 こ の方法では、 すべての JSP ページ を 確実にコ ン パイ ルでき ま す。 JSPC コ ン パイ ラ の使用方法については、 『JRun に よる アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 第 1 章 OEM リ ソ ース 28 Web ア プ リ ケーシ ョ ンの制御 JRun には WebAppController イ ン タ ーフ ェ イ ス があ り 、 こ れを 使用する と Web アプリ ケーシ ョ ンの起動、 停止、 再起動、 お よ び再公開を実行で き ます。 WebAppController イ ン タ ーフ ェ イ スは allaire.jrun パ ッ ケージに含まれてい ます。 こ のセ ク シ ョ ンでは、 こ の イ ン タ ーフ ェ イ ス の メ ソ ッ ド を定義 し 、 その使用例を示 し ます。 WebAppController の一部の機能は WarDeploy ユー テ ィ リ テ ィ で も 利用で き ま す。 詳細は、 23 ページの 「Web アプ リ ケーシ ョ ンの公開」 を参照 し て く だ さ い。 メ ソ ッ ド の詳細 restartWebapp void restartWebapp() throws ServletException 現在の Web アプ リ ケーシ ョ ン サービ ス を再起動 し ます。 サービ ス の destroy() メ ソ ッ ド を呼び出 し 、 サービ ス を再初期化 し ます。 startWebapp(String serviceName) void startWebapp(String serviceName) throws ServletException Web アプ リ ケーシ ョ ン サービ ス を起動 し ます。 JRun サーバーの local.properties フ ァ イ ルに新し いマッ ピ ン グを 追加し ま す。 こ の新し いマッ ピ ン グ は、 新し い Web アプ リ ケーシ ョ ン名にマ ッ プ さ れた Web アプ リ ケーシ ョ ン ルー ト です (/foo=foo な ど )。 次の表では、 パ ラ メ ー タ について説明 し てい ます。 パラ メ ータ 説明 serviceName Web ア プ リ ケーシ ョ ンの名前 ( 例 : demo、 admin)。 stopWebapp void stopWebapp() throws ServletException 現在の Web アプ リ ケーシ ョ ン サービ ス を停止 し ます。 サービ ス の destroy() メ ソ ッ ド を呼び出 し ます。 Web ア プ リ ケーシ ョ ンの制御 29 redeployWebapp(File warFile) void redeployWebapp(File warFile) throws ServletException WAR フ ァ イ ル を使用 し て現在の Web アプ リ ケーシ ョ ン を再公開 し 、 そのア プ リ ケーシ ョ ン を再起動 し ます。 次の表では、 パ ラ メ ー タ について説明 し てい ます。 パラ メ ータ 説明 warFile 再公開する既存の WAR フ ァ イルを参照する java.io.File を取 り ます。 WebAppController の使用例 次の例では、WebAppController イ ン タ ーフ ェ イ ス が使用さ れている かど う かがチェ ッ ク さ れま す。 使用さ れている 場合は、 Web アプリ ケーショ ン を 再起動し ま す。 ServletContext context = getServletContext(); if (context instanceof WebAppController) { WebAppController controller = (WebAppController) context; controller.restartWebapp(); } 第 1 章 OEM リ ソ ース 30 JRun プ ロパテ ィ のカ ス タ マ イ ズ JRun プロ パテ ィ フ ァ イ ルの 設定は、 OEM リ ソ ース に 付属の PropertyScript ユーテ ィ リ テ ィ を使用 し て、 変更、 追加、 お よび削除で き ます。 PropertyScript では、 JRun プロパテ ィ フ ァ イルを変更するデ ィ レ ク テ ィ ブが含まれている独立し たス ク リ プ ト フ ァ イ ルが処理 さ れま す。 JRun プ ロ パテ ィ フ ァ イ ルの詳細は、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 PropertyScript の使用 PropertyScript ク ラ ス は、 install.jar フ ァ イ ル内の allaire.jrun.install パ ッ ケージの 一部です。 次に例を示 し ます。 java -cp [classpath] allaire.jrun.install.PropertyScript script-file [property-file] PropertyScript を使用す る には、 ク ラ スパ ス に install.jar を含め る 必要があ り ます。 script-file オプショ ン は、 ディ レ ク ティ ブが含ま れている ス ク リ プト フ ァ イ ルを 指 すフ ァ イ ル シス テム パス です。 ス ク リ プト フ ァ イ ルの作成方法については、 30 ページ の 「ス ク リ プ ト フ ァ イ ルの作成」 を参照 し て く だ さ い。 property-file オプショ ンでは、 global.properties、 local.properties、 jvms.properties な ど の JRun プ ロ パテ ィ フ ァ イ ルを指定 し ます。 こ のオプシ ョ ンは現在の リ リ ース の JRun で推奨 さ れていないため、 必要あ り ません。 次に例を示 し ます。 C:\>java -cp "c:\program files\allaire\jrun\lib\install.jar" allaire.jrun.install.PropertyScript "c:\program files\allaire\jrun\servers\default\script.txt" ス ク リ プ ト フ ァ イルの作成 script-file オプシ ョ ンでは、 JRun プ ロ パテ ィ フ ァ イ ルの変更時に PropertyScript によ っ て 使用さ れる すべて のディ レ ク テ ィ ブ が含ま れる テ キ ス ト フ ァ イ ルを 指定 し ま す。 ス ク リ プ ト フ ァ イ ルの作成時に は、 少 な く と も 1 つの file コ マ ン ド と filename を 含め る 必要が あ り ま す。 各 file コ マ ン ド の下には、 前に示 し て あ る filename に対 し て実行する デ ィ レ ク テ ィ ブお よ びオプシ ョ ン を列挙 し ます。 ス ク リ プ ト フ ァ イ ルの構文は、 次の よ う にな り ます。 file filename directive1 [directive2] ... [file filename] [directive1] [directive2] ... JRun プ ロパテ ィ の カ ス タ マ イ ズ 31 ス ク リ プ ト フ ァ イ ル内のプ ロ パテ ィ フ ァ イ ルのセ ク シ ョ ン ご と に、 新 し い file コ マ ン ド を指定す る 必要があ り ます。 filename ( フ ァ イ ル名) には、 プ ロ パテ ィ フ ァ イ ル への完全なパ ス を指定す る 必要があ り ます。 通常、 ス ク リ プ ト フ ァ イル内の各デ ィ レ ク テ ィ ブは、 1 つのコ マン ド および 1 組のキーと 値か ら 成 り 立っ てい ます。 キーは、 JRun プ ロ パテ ィ フ ァ イ ル内のプ ロ パテ ィ に対応 し ま す。 次の例では、 add がコ マン ド 、 control.endpoint.main.port がキー、 53000 が 値です。 add control.endpoint.main.port=53000 一部の キーには複数の値 を指定で き ま す。 こ の場合、 値は ス ペー ス ま たはカ ン マで 区切 ら れ ます。 次の表では、 ス ク リ プ ト フ ァ イ ルのデ ィ レ ク テ ィ ブお よ びそのオプシ ョ ン につい て 説明 し ます。 ディ レクテ ィ ブ 説明 add キー 値 新 し いキー と 値を、 プ ロパテ ィ フ ァ イ ルの最後に追加 し ま す。 既存のキーを 追加する と 、 該当する キーと 値が PropertyScript に よ っ て上書き さ れます。 replace キー 値 指定し た キーの値を 新し い値に置き 換え ま す。 存在 し ないキーの値を 置き 換えよ う と する と 、こ のディ レ ク テ ィ ブ は PropertyScript に よ っ て add と し て処理 さ れます。 delete キー 指定 し たキー と その値を削除 し ます。 clear キー 指定 し たキーのすべての値を削除 し ますが、 キーは 削除 し ません。 append キー 値 指定 し たキーの最後の値の後に、 値を追加 し ます。 値の先頭には、 区切 り 文字 ( 通常は カ ン マ ) を指定する 必要があ り ます。 た と えば、jcp を servlet.services キーに追加する 場合は、 次のデ ィ レ ク テ ィ ブ を使用 し ます。 append servlet.services ,jcp 一部のキーは カ ン マ で な く スペースに よ っ て区切 ら れ ます。 こ の場合は append_space ディ レ ク ティ ブを 使用 し ます。 append_space キー 値 指定し たキーの最後の値の後にスペースを 入れてから 、 値を 追加し ます。スペースを 区切り 文字と し て使用する java.args キーを 変更する 場合に使用し ます。 token_remove キー 値 キーの中から 指定し た値を 検索し 、 その値およ び後に 続く 区切り 文字 (スペースま たはカ ン マ ) を 削除し ま す。 第 1 章 OEM リ ソ ース 32 ディ レクテ ィ ブ 説明 ejb_append jrun.services 値 global.properties フ ァ イ ル内の jrun.services キーを 変更する 場合にのみ使用し ま す。 servlet_services は ほかのすべてのサー ビ スが開始 し てか ら 開始す る必要 があ るので、 こ の メ ソ ッ ド を使用 し て {servlet_services} キーを 一覧の最後に表示し ます。 unplug [servlet|ejb] サーブレ ッ ト または EJB のいずれかの機能を JRun から 削除し ます。ユーザがコ ン ポーネン ト を 追加およ び削除 でき る よう にする場合に使用し ます。 また、イ ンスト ール フ ァ イ ルを 編集し て、 不要な コ ン ポーネン ト がイ ン ス ト ールさ れないよ う にする こ と も でき ます。 unplug に よ っ て コ ン ポーネ ン ト が無効にな り ますが、 実際にはア ン イ ン ス ト ール さ れません。 comment キー # テキス ト 文字列 テ キス ト 文字列 で構成 さ れ る コ メ ン ト 行 を、 指定 し た キーの上の行に追加し ます。テ キスト 文字列の前に必ず # を入れて く だ さ い。 adduser ユーザ名 パスワー ド 新規 JMC ユーザを 追加し ま す。PropertyScript では、 UnixCrypt を 使用 し てパス ワー ド が暗号化 さ れま す。 pass.properties フ ァ イ ルを変更す る場合にのみ使用 し ます。 新規 Web ア プ リ ケーシ ョ ン ユーザ を追加す る 場合は、 『JRun に よ る ア プ リ ケ ー シ ョ ン の開発』 の PropertyFileAuthentication ク ラ ス の説明を 参照し て く だ さ い。 port キー 最小値 , 最大値 イ ンスト ール時に JRun で設定さ れる、admin サーバーの アク セス可能ポート 範囲を 設定し ます。 最小値は最小の ポー ト 番号、 最大値は最大のポー ト 番号です。 PropertyScript で は、 こ の範囲内に あ る すべ て の ポー ト が試行 さ れます。 ポー ト デ ィ レ ク テ ィ ブは、 JRun サーバーの local.properties フ ァ イルご と に指定 し ます。 admin サーバーの既定範囲は 8000 ~ 8099 です。 default サーバーの既定範囲は 8100 ~ 8199 です。 JRun プ ロパテ ィ の カ ス タ マ イ ズ 33 サン プル ス ク リ プ ト フ ァ イル 次のス ク リ プト フ ァ イ ルの例は、 default JRun サーバーの local.properties フ ァ イ ルに 対 し て、 新 し い Web アプ リ ケーシ ョ ン "MyStocks" を追加 し 、 demo-app を削除す る 方法を 示し ま す。 最後の行は、 default JRun サーバーの JRun Web サーバーのポート を 、 8080 ~ 8089 の範囲で使用可能なポー ト に変更 し ます。 file c:\Progra~1\Allaire\JRun\servers\default\local.properties add webapp.mapping./mystocks /mystocks add /mystocks.rootdir C:\\Mycompany\\servers\\default\\mystocks add /mystocks.class {webapp.service-class} token_remove servlet.webapps demo-app append servlet.webapps ,/mystocks comment servlet.webapps #Added mystocks app, removed demo delete demo-app.rootdir delete demo-app.class delete webapp.mapping./demo port web.endpoint.main.port 8080,8089 サーブ レ ッ ト /JSP での PropertyScript の使用 PropertyScript ク ラ ス の main() メ ソ ッ ド を使用 し て、サーブ レ ッ ト ま たはその他の 種類の Java ア プ リ ケーシ ョ ン内か ら プ ロ グ ラ ム で JRun プ ロ パテ ィ フ ァ イ ル を変更 で き ま す。 こ の メ ソ ッ ド は 1 つの引数 script_file を 取 り ま す。 script_file は、 PropertyScript を 実行す る デ ィ レ ク テ ィ ブ を 含むテ キ ス ト フ ァ イ ルの場所です。 main() メ ソ ッ ド には文字列の配列が必要である ため、1 つの要素 (script_file) を 持つ 配列を渡 し ます。 main() の構文は次の と お り です。 main(String script_file) PropertyScript を呼び出すには、 install パ ッ ケージ を含め る 必要があ り ます。 次に 例を示 し ます。 import allaire.jrun.install.*; PropertyScript の使用例 次の Java アプ リ ケーシ ョ ン (PSTest.java) は、 PropertyScript の使用例を示 し てい ま す。 こ れに よ り 、 次の行が local.properties の最後に追加 さ れます。 frogprop=frogvalue propt.txt ス ク リ プ ト フ ァ イ ルには次の行が含まれてい ます。 file c:\Progra~1\Allaire\JRun\servers\default\local.properties add frogprop frogvalue 第 1 章 OEM リ ソ ース 34 PSTest.java フ ァ イ ルには次の コ ー ド が含まれてい ます。 import allaire.jrun.install.*; import java.io.*; class PSTest { public static void main (String args[]) { String result = new String(); result = PSTest.RunPS(); System.out.println(result); } private static String RunPS() { String[] sFile = new String[1]; sFile[0] = "c:\\temp3\\propt.txt"; String result = new String(); PropertyScript ps = new PropertyScript(); try { ps.main(sFile); result = "successful"; } catch (IOException ioe) { result = "unsuccessful"; } return result; } } JRun の組み込み 35 JRun の組み込み JRun にはい く つかの設定方法が あ る ため、 JRun はユーザに対 し て透過的で あ り 、 お客様の製品の妨げにな る こ と はあ り ません。 JRun OEM リ ソ ース を使用 し て製品を 設定す る 場合には、 次の点を考慮 し て く だ さ い。 設定方法 参照先 JRun の透過的なイ ン スト ール 「JRun イ ン ス ト ールの カ ス タ マ イ ズ」 8 ページ コ ネク タ の透過的なイ ン スト ール 「外部 Web サーバーへの JRun の接続」 40 ページ ア プ リ ケーショ ン の透過的な公開 「Web ア プ リ ケーシ ョ ンの カ ス タ マ イ ズ」 19 ページ JRun 管理コ ン ソ ールの非表示 「JRun 管理 コ ン ソ ールの非表示」 35 ページ JRun サーバーの開始、 停止、 およ び再起動 「JRun サーバーの開始、 停止、 およ び再起動」 36 ページ デスク ト ッ プ 上の JRun の非表示 「デス ク ト ッ プ上の JRun の非表示 (Windows のみ)」 36 ページ ラ イ セン ス キーおよ びラ イ セン ス 「JRun ラ イ セ ン ス キーお よび ラ イ セ ン ス契約の設定」 契約の設定 38 ページ JRun 管理 コ ン ソ ールの非表示 製品版のユーザは、JRun 管理コ ン ソ ール (JMC) を 使用し て JRun のイ ン ス ト ールおよ び 設定を 管理し 、ス レ ッ ド 管理やデータ ソ ース アク セス など の設定を 調整し ま す。ただし 、 ユーザが JRun のイ ン ターフ ェ イ ス を使用でき ないよ う にする一方、 個人設定については 独自に変更で き る よ う にす る 組み込み環境では、 JMC は優れた ソ リ ュ ーシ ョ ン と は 言え ません。 JMC は、 ユーザが JRun の設定を変更する ための主な手段です。 ただ し 、 JMC で行 う 作業のほ と ん ど は JRun プ ロ パテ ィ フ ァ イ ルの変更です。 PropertyScript ユーテ ィ リ テ ィ を使用 し て JRun プ ロ パテ ィ フ ァ イ ルを変更 し た り 、 PropertyScript を呼び 出す Java アプ リ ケーシ ョ ン を作成する こ と も で き ます。 PropertyScript ユーテ ィ リ テ ィ を 使用 し て JRun プ ロ パテ ィ フ ァ イ ル を変更す る 方法につい ては、 30 ページの 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 た と えば、 アプ リ ケーシ ョ ン を JRun Web サーバー上で実行 し てい る 場合に、 default JRun サーバーに対 し て Web サーバーが受信 し てい る ポー ト を ユーザが変更す る と し ま す。 既定値は 8000 です。 こ の場合、 JRun サーバーの local.properties フ ァ イ ル内の web.endpoint.main.port を ユーザが変更で き る よ う にす る イ ン タ ーフ ェ イ ス を作成 し ます。 第 1 章 OEM リ ソ ース 36 JRun サーバーの開始、 停止、 お よび再起動 JRun プ ロ パテ ィ フ ァ イ ルに変更を加えた場合は、そのたびに JRun サーバーを再起動 する 必要があ り ま す。 ただし 、 users.properties フ ァ イ ルは唯一の例外です。 こ のフ ァ イ ルは自動的に再ロード さ れる ので、Web アプリ ケーショ ンのユーザをリ アルタ イ ムで追 加、 変更、 ま たは削除で き ます。 JRun には、 JRun サーバーを開始、 停止、 再起動、 イ ン ス ト ール、 または削除する ための ユーテ ィ リ テ ィ があ り 、 Windows の場合は jrun.exe、 UNIX の場合は jrun シ ェ ル ス ク リ プ ト が こ れにあ た り ます。 こ のユーテ ィ リ テ ィ は、 コ マ ン ド ラ イ ン ま たはス ク リ プト から 呼び出せま す。 JRun コ マン ド ラ イ ン ユーティ リ ティ の使用方法については、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 デス ク ト ッ プ上の JRun の非表示 (Windows のみ ) JRun 名が表示さ れる 場所は、 JRun を Windows のサービ ス と し てイ ン ス ト ールする か、 ま たは ア プ リ ケーシ ョ ン と し て イ ン ス ト ールす る かに よ っ て異な り ま す。 こ のセ ク シ ョ ンでは、 イ ン ス ト ール タ イ プの選択方法 と 、 JRun の実装を非表示にす る 方法に ついて説明 し ます。 イ ン ス ト ール タ イ プの選択 製品版のイ ン ス ト ール時に、JRun のイ ン ス ト ール タ イ プを 選択する プロ ン プト が表示 さ れま す。 次の図は、 [JRun サービ ス のイ ン ス ト ール ] ウ ィ ン ド ウ を 示し ま す。 ユーザが [JRun サービ ス の イ ン ス ト ール ] を選択 し た場合は、 JRun サーバー (admin JRun サーバーや default JRun サーバー な ど ) が Windows NT サー ビ ス と し て認識 さ れ、 コ ン ト ロ ール パ ネルの [ サー ビ ス ] に名前が表示 さ れ ま す。 Windows 95/98 では、 サーバーは Windows レ ジス ト リ でのみ示さ れま す。 ユーザが [JRun サービ ス の イ ンス ト ール] を 選択し ない場合は、JRun サーバーはアプリ ケーショ ンと し て実行さ れ、 ア イ コ ンがシ ス テ ム ト レ イ に表示 さ れます。 JRun の組み込み 37 JRun がアプリ ケーショ ンと し て実行さ れる 場合、シス テム ト レ イ 内のアイ コ ンを非表示に す る こ と はで き ません。 InstallShield プ ロ ジ ェ ク ト フ ァ イ ルを変更 し て、 JRun の イ ン ス ト ール タ イ プ (サービ ス またはアプ リ ケーシ ョ ン ) をユーザが選択でき ない よ う にする こ と も 可能です。 [JRun サービス のイ ンス ト ール] ウ ィ ンド ウ のコ ード は、ComponentEvents.rul フ ァ イ ル 内の Main_Installed2 関数に表示さ れま す。 こ の関数では、 イ ン ス ト ールを Windows NT サービ ス と し てハー ド コ ー ド 化で き る だけでな く 、 コ ン ト ロ ール パネルの [ サー ビ ス ] に表示 さ れ る JRun サーバー名を変更で き ます。 メモ Windows 2000/NT では、 JRun を サー ビ ス と し て イ ン ス ト ールす る ためには管理者 権限が必要です。 Windows NT サービ ス名の変更 JRun サーバーは、 サーバーの local.properties フ ァ イ ルで定義 さ れて い る 表示名に よ っ て Windows の コ ン ト ロ ール パネルの [ サー ビ ス ] に表示 さ れ ま す。 た と えば、 既定 の イ ン ス ト ールの JRun サーバーは、 "JRun Admin Server" お よ び "JRun Default Server" と 表示 さ れます。 こ れ ら の名前は、 JRun サーバーの local.properties フ ァ イ ル内の JVM プ ロ パ テ ィ セ ク シ ョ ン に次の よ う に格納 さ れ ます。 ## jvm properties jrun.server.displayname=JRun Admin Server JRun イ ン ス ト ールでユーザの製品名 を使用す る 場合は、 名前の変更が必要な こ と も あ り ます。 前のセ ク シ ョ ン で説明 し た InstallShield フ ァ イ ル内の JRun サーバー名 を変更す る こ と も 、または PropertyScript ユーテ ィ リ テ ィ を使用し て イ ン ス ト ール後にサーバー名 を 変更する こ と も 可能です。 PropertyScript ユーティ リ テ ィ の使用方法について は、 30 ページの 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 設定の一部 と し て新 し い JRun サーバー を イ ン ス ト ールす る 場合は、 JRun コ マ ン ド ラ イ ン ユーテ ィ リ テ ィ を 使用し 、 -install オプシ ョ ン で表示名を 設定する こ と も でき ま す。 次に例を示 し ます。 % jrun -install "Foo Service" foo -quiet -install オプシ ョ ン と と も に jrun コ マ ン ド を使用 し て も 、 新 し い JRun サーバーは 作成 さ れないので注意 し て く だ さ い。 その代わ り 、 既存の JRun サーバーが NT サー ビ ス に変更 さ れ ま す。 JRun コ マ ン ド ラ イ ン ユーテ ィ リ テ ィ の使用方法 と 新規 JRun サーバーの作成方法については、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 第 1 章 OEM リ ソ ース 38 JRun ラ イ セ ン ス キーお よび ラ イ セ ン ス契約の設定 JRun イ ン ス ト ール コ ー ド を使用す る 場合は、 JRun の ラ イ セン ス契約をお客様自身の 契約に置 き 換え て、 シ リ ア ル番号検証シ ス テ ム を 変更で き ま す。 ま た、 ラ イ セ ン ス キーのプロ ンプト を JRun イ ンス ト ールから 削除し 、ユーザに対し て透過的にする こ と も 可 能です。 こ のセ ク シ ョ ンでは、 次の項目について説明 し ます。 • 「 ラ イ セン ス キーの概要」 38 ページ • 「Windows での ラ イ セン ス キーの処理」 38 ページ • 「UNIX での ラ イ セ ン ス キーの処理」 39 ページ ラ イ セ ン スキーの概要 製品版の イ ン ス ト ールでは、 ユーザはシ リ アル番号の入力を要求 さ れます。 シ リ アル 番号は、検証さ れた後で、全体のイ ン ス ト ールの終了時に serial_number.properties フ ァ イルに書き込まれます。 JRun サーバーを起動す る たびに、 こ の フ ァ イ ル内でシ リ アル 番号が確認 さ れます。 こ のプ ロ パテ ィ フ ァ イ ルに有効なシ リ アル番号が格納 さ れてい ない と 、 JRun サーバーは、 こ のエデ ィ シ ョ ン が Developer 版 ( 最大同時接続ユーザ 数 3) で あ る と 見な し ます。 Windows でのラ イ セ ン ス キーの処理 製品版では、 setup.rul によ っ て 、 イ ン ス ト ール時にシ リ ア ル番号の入力を ユーザに 求める [ 製品シ リ ア ル番号] パネルが作成さ れま す。 ユーザが入力し た シ リ ア ル番号 は szLicKey と し て 格納さ れま す。 次に、 setup.rul フ ァ イ ルによ っ て 、 szLicKey を 検証する license.rul の isValid30Key が呼び出さ れま す。 ラ イ セン ス キ ーの有効性 が確認さ れる と 、 setup.rul は writeSerialNumber 関数を呼び出 し てシ リ アル番号を serial_number.properties フ ァ イ ルに書 き 込みます。 JRun の OEM 版が製品版と 異なる 点は、 license.rul フ ァ イ ルに JRun ラ イ セン ス キーの 検証ロ ジ ッ ク でな く 検証関数のス タブだけが含まれている こ と です。つま り 、 ラ イ セン ス キー検証の独自の論理を含め る こ と がで き る わけです。 次に、 こ の関数ス タ ブの一覧 を示 し ます。 isValid30Key isValid30UpgradeKey isValid2xKey isValidOldKey JRun OEM ラ イ センス キーを setup.rul 内でハード コ ード 化し て serial_number.properties に書き 込むこ と によ り 、 ユーザによ る JRun キーの入力を省略でき ま す。 次に、 setup.rul 内の現在のラ イ セン ス キー プロ ン プト と license.rul 内の関数のう ち独自の検証関数を 使用し てキーを チェ ッ ク し ま す。 有効な JRun のシ リ アル番号については、 OEM/ ホ ステ ィ ング関連資料または Jumpstart ラ イ セ ン ス証明書を参照 し て く だ さ い。 JRun の組み込み 39 JRun に含まれてい る ラ イ セン ス契約の内容を変更す る には、 license.txt フ ァ イ ル (/dist/core/docs) を 変更す る か、 別の フ ァ イ ルに置 き 換 え ま す。 別の ラ イ セ ン ス フ ァ イ ルを使用す る 場合は、 setup.rul 内の次の行 を編集 し ます。 szLicenseFile = SUPPORTDIR ^ "license.txt"; UNIX でのラ イ セ ン ス キーの処理 UNIX では、 イ ン ス ト ール ス ク リ プ ト の License Key Handling セ ク シ ョ ン に よ っ て 有効な ラ イ セン ス キーの入力がユーザに要求 さ れます。 キーは $LICENSE と し て格納 さ れま す。 次に、 イ ン ス ト ール ス ク リ プト によ っ て LicenseChecker ユーティ リ ティ が 呼び出 さ れ、 $LICENSE の有効性がチ ェ ッ ク さ れ ま す。 ラ イ セ ン ス キーの有効性が 確認さ れる と 、 LicenseChecker によ っ てキーが serial_number.properties フ ァ イ ルに 書き 込ま れま す。 OEM ラ イ セ ン ス キーをハー ド コ ー ド 化 し 、 LicenseChecker を使用 し て serial_number.properties に書き 込むこ と ができ ま す。 こ の作業を 行う には、 次の行を 除 く License Key Handling セ ク シ ョ ン をすべて コ メ ン ト 化 し ます。 jrun -jrundir $JRUNROOTDIR -classpath "$INSTALL_CLASSPATH" -java "$JAVA" allaire.jrun.install.LicenseChecker -i -c "$LICENSE" 次に、 $LICENSE をお客様の OEM シ リ アル番号に設定 し ます。 有効な JRun のシ リ ア ル番号については、 OEM 契約を参照 し て く だ さ い。 ラ イ セ ン ス契約の内容は sh-install フ ァ イ ルの Display the End User License Agreement セ ク シ ョ ンに格納 さ れます。 テ キ ス ト は直接変更で き ます。 第 1 章 OEM リ ソ ース 40 外部 Web サーバーへの JRun の接続 JRun のイ ン ス ト ールと 設定が完了する と 、JRun を 外部 Web サーバーに接続でき ま す。 た と えば、 Apache に対 し て出 さ れた要求は、 JRun フ ィ ル タ に よ っ て検証 さ れ、 処理 さ れた後、 Apache Web サーバー経由で要求元の ク ラ イ ア ン ト に送信 さ れます。 各 JRun サーバーは、 既定では JRun Web サーバー (JWS) のイ ン ス タ ン ス に接続さ れる こ と に注意し てく ださ い。 ただし 、 JWS は軽量な Web サーバーです。 アプリ ケーショ ン に対する リ モート アク セス の保護や、 よ り 強力な環境内でのアプリ ケーショ ン の実行を 計画 し てい る 場合は、Apache、Netscape iPlanet、Microsoft IIS な ど の外部 Web サー バーに JRun サーバーを接続す る 必要があ り ます。 1 つの JRun サーバーに対 し て、 任 意の数の Web サーバーを接続で き ます。 接続の概要 JRun サーバーを外部 Web サーバーに接続す る には 2 つの方法があ り ます。 ど ち ら の 方法 も Web サーバーの コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イ ル を 変更す る こ と に よ り 、 Web サーバー と JRun サーバー間の通信を確立 し ます。 接続方法は次の と お り です。 • コ ネ ク タ ウ ィ ザー ド 製品版 ユー ザ は、 コ ネ ク タ ウ ィ ザー ド を 使用 し て JRun サーバー を 外部 Web サーバーに接続で き ます。 コ ネ ク タ ウ ィ ザー ド を使用す る には、 ユーザが管理者 と し て JRun 管理コ ン ソ ールにロ グイ ン する 必要があり ま す。 詳細は、 『JRun セッ ト アッ プ ガ イ ド 』 を参照 し て く だ さ い。 • ConnectorInstaller OEM リ ソ ー ス の allaire.jrun.admin パ ッ ケ ー ジ には ConnectorInstaller ユー テ ィ リ テ ィ が含まれてい ます。 こ のユーテ ィ リ テ ィ は、 コ マ ン ド ラ イ ン か ら 呼び 出す こ と がで き ます。 Microsoft IIS に JRun を接続す る 場合は、 metaset (IIS 4.0 の場合) ま たは regset (IIS 3.0 の場合) も 使用で き ます。 44 ページの 「IIS での コ ネ ク タ の イ ン ス ト ール と ア ン イ ン ス ト ール」 で説明し ている よ う に、 こ れら のユーティ リ ティ はメ タ ベース およ び Windows レ ジス ト リ の編集に使用さ れま す。 ConnectorInstaller の代わ り に こ れ ら のユーテ ィ リ テ ィ を使用で き ます。 ConnectorInstaller ユーテ ィ リ テ ィ の使用 ConnectorInstaller ユーテ ィ リ テ ィ は、 コ マ ン ド ラ イ ン、 Java アプ リ ケーシ ョ ン、 ま たはバ ッ チ フ ァ イ ルや ス ク リ プ ト か ら 実行で き ま す。 こ のユー テ ィ リ テ ィ では、 シス テム固有の設定が必要になり ま す。 こ の設定については、 コ マンド ラ イ ンでユーザに 対 し てプ ロ ンプ ト を出力す る か、 ConnectorInstaller が呼び出 さ れた と き に読み込 むフ ァ イ ルに含め る こ と がで き ます。 ConnectorInstaller ク ラ ス は、 jmc-app の WEB-INF/lib ディ レ ク ト リ 内の jmc-app.jar フ ァ イ ルに含まれてい ます。 外部 Web サーバーへの JRun の接続 41 次の手順は、 コ マ ン ド ラ イ ンか ら ConnectorInstaller を使用す る 方法を示 し ます。 バ ッ チ フ ァ イ ルか ら ConnectorInstaller を 使用す る 例につい て は、 43 ペー ジ の 「ConnectorInstaller と フ ァ イ ル転送の併用」 を参照 し て く だ さ い。 コ マ ン ド ラ イ ンか らの ConnectorInstaller の使用 コ マ ン ド ラ イ ンか ら ConnectorInstaller を使用するには 1 外部 Web サーバーを停止 し ます。 2 コ マ ン ド ラ イ ンか ら 、 次の よ う に し て ConnectorInstaller を呼び出 し ます。 java -cp [ ク ラ スパス ] allaire.jrun.admin.ConnectorInstaller JRun のルー ト デ ィ レ ク ト リ ク ラ スパ ス には、 少な く と も 次のパ ッ ケージ を指定す る 必要があ り ます。 jrun.jar servlet.jar jmc-app.jar 次に例を示 し ます。 C:\>java -cp "c:\program files\allaire\jrun\servers\admin\jmc-app \web-inf\lib\jmc-app.jar;c:\program files\allaire\jrun\lib\ jrun.jar;c:\program files\allaire\jrun\lib\ext\servlet.jar" allaire.jrun.admin.ConnectorInstaller "c:\program files\allaire\jrun" 次の よ う な メ ッ セージが表示 さ れます。 Welcome to JRun 3.0 Connector Wizard. Please stop your target web server before proceeding. Press 'Enter' to continue. 3 ConnectorInstaller ユーティ リ ティ によ っ て、 コ ネク タ ウ ィ ザード のフ ィ ールド に対応す る 補足情報の入力が要求 さ れま す。 次の表を参考に し て、 必要な値を設 定 し て く だ さ い。 プロンプ ト 説明 Available Web Application 外部 Web サーバー に接続す る JRun サーバー を 選 Containers 択するか、 Enter キーを押 し て既定値を適用 し ます。 Web Server JRun サーバーに 接続す る 外部 Web サー バーを 選 択する か、 Enter キーを 押し て 既定値を 適用し ま す。 Web Server Version Web サーバーのバージョ ン を 選択する か、 Enter キー を 押 し て既定値を適用 し ます。 Platform Web サーバーを 実行する プ ラ ッ ト フ ォ ームを 選択 する か、 Enter キーを 押し て 既定値を 適用し ま す。 第 1 章 OEM リ ソ ース 42 プロンプ ト 説明 Proxy Host 外部 Web サーバーのホスト の IP ア ド レ スを 入力し ま す。 JRun サーバーが Web サーバーと 同じ マシン 上で 実行さ れている場合は、既定の IP アド レ ス 127.0.0.1 のま まに し てお き ます。 Proxy Port JRun 接続 モ ジ ュ ール (JCM) が Web サーバー と の 通信で使用する ポー ト 番号を入力 し ます。 Web サーバーの HTTP ポート と 混同し な いで く ださ い。 『JRun セ ッ ト ア ッ プ ガ イ ド 』 内の例では 51000 を使用 し ています。 Config File Directory 外部 Web サーバーのコ ン フ ィ ギュ レ ーシ ョ ン フ ァ イ ル ディ レ ク ト リ の絶対パス を 入力し ま す。 たと え ば、 IIS の既定値は \inetpub\scripts です。 JRun サーバーを 接続し て いる Web サーバーの 種類によ っ て は、 上記以外にも 選択項目があ り ま す。 表示さ れる 可能性があ る そ の他のプロ ン プト について は、 次の表を 参照し て く ださ い。 Web サーバー プ ロ ン プ ト Apache DSO Support 説明 UNIX: JRun モジュ ールを Apache サーバー に コ ンパ イル し ていない場合は、 DSO サポー ト を選択 し ます。 Windows: DSO サポー ト を選択 し ます。 Microsoft IIS/ PWS Install as a Global Filter IIS の場合、 [はい ] を 選択する と 、 JRun は IIS の該当イ ン ス タ ン ス内のすべての仮想 サーバーに対 し て ISAPI フ ィ ル タ を イ ン スト ールし ます。単一の仮想サーバーだけに フ ィ ルタ を 適用する 場合は[いいえ ] を 選択 し ます。 PWS の場合は [ はい ] を選択 し ます。 Netscape iPlanet Use Native or Java Connector 4 Web サーバーを再起動 し ます。 5 JRun サーバーを再起動 し ます。 Netscape Web サーバーの場合は、 ネ イ テ ィ ブ ( 既定値 ) ま たは Java コ ネ ク タ の いずれか を 選択 し ま す。 詳細は、 『JRun セッ ト アッ プ ガイ ド 』 を 参照し てく ださ い。 ConnectorInstaller に よ っ て必要な フ ァ イ ルが コ ピ ー さ れ、 入力に基づい て Web サーバーの コ ン フ ィ ギ ュ レ ーシ ョ ン フ ァ イ ルが編集 さ れ ま す。 Web サーバーの コ ン フ ィ ギ ュ レーシ ョ ン フ ァ イ ルま たは JRun のプ ロパテ ィ に加え る 変更の詳細は、 『JRun セッ ト ア ッ プ ガ イ ド 』 内のコ ネ ク タ ウ ィ ザード に関する説明を参照し て く だ さい。 外部 Web サーバーへの JRun の接続 43 ConnectorInstaller と フ ァ イル転送の併用 簡単なプ ロ グ ラ ミ ン グ テ ク ニ ッ ク を使用す る と 、 ConnectorInstaller を自動化 し て 独自の イ ン ス ト ー ラ に組み込め ます。 た と えば、 プ ロ ンプ ト に対す る 応答を指定 し た フ ァ イルを作成し、 フ ァ イル転送と と も に ConnectorInstaller を呼び出し て、 コ マン ド ラ イ ン イ ン タ ーフ ェ イ ス の代わ り にその フ ァ イ ルか ら 入力を取得 し ます。 フ ァ イル転送 と と も に ConnectorInstaller を使用するには 1 コ ネ ク タ の イ ン ス ト ールを実行 し 、 プ ロ ンプ ト ご と に入力す る 応答を記録 し ます。 必ず正 し い順序で応答を記録 し て く だ さ い。 プ ロ ンプ ト は Web サーバーご と に異な る ため、 コ マ ン ド ラ イ ンか ら ConnectorInstaller を 何度か実行 し な ければ な ら な い場合が あ り ま す。 詳細は、 41 ページの 「 コ マ ン ド ラ イ ンか ら の ConnectorInstaller の使用」 を参照 し て く だ さ い。 2 ConnectorInstaller のプ ロ ンプ ト に対す る 応答を指定 し た テキ ス ト フ ァ イ ルを プ ロ グ ラ ム で作成す る か、 イ ン ス ト ール パ ッ ケージ内の フ ァ イ ルを編集 し ます。 1 行に 1 つずつ応答 を指定 し 、 各応答の後で改行 し ます。 た と えば、 テキ ス ト フ ァ イ ルの内容は次の よ う にな り ます。 1 4 2 1 127.0.0.1 8081 c:\inetpub\scripts 2 1 こ の場合、 最初の行には改行のみが入っ ている ので注意し てく ださ い。 こ れによ り 、 JRun イ ン ス ト ー ラ で既定値が使用 さ れ ます。 ま た、 こ の フ ァ イ ルはプ レ ーン テ キ ス ト と し て保存す る 必要が あ り ます。 3 ConnectorInstaller を呼び出 し 、 テ キ ス ト フ ァ イ ルを転送 し て入力を行い ます。 ConnectorInstaller を呼び出すには、 バ ッ チ フ ァ イ ルを使用する か、 Runtime.exec() を呼び出 し ます。 た と えば、 テ キ ス ト フ ァ イ ルが answers.txt で、 JRun のルー ト デ ィ レ ク ト リ が c:\Jrun であ る 場合は、 バ ッ チ フ ァ イ ルに次の行を含めます。 java allaire.jrun.admin.ConnectorInstaller c:\jrun < answers.txt "<" 記号に注意し てく ださ い。 こ の記号は、 プロ グラ ム の動作を 停止し てキーボード か ら の入力を待つのではな く 、 転送 さ れた フ ァ イ ルか ら 次の行を読み込む よ う に ConnectorInstaller に指示 し ます。 第 1 章 OEM リ ソ ース 44 ConnectorInstaller の出力を表示 し ない方が良い場合があ り ます。 UNIX では、 > /dev/null を 使用し て ConnectorInstaller の出力を ヌ ル デバイ ス に転送でき ま す。 Windows では、 > /temp/ci.tmp を 使用し て temp ディ レ ク ト リ 内の .tmp フ ァ イ ル に出力を転送で き ます。 IIS での コ ネ ク タ のイ ン ス ト ール と ア ン イ ン ス ト ール OEM リ ソ ー ス には、 Microsoft IIS 3.0 お よ び 4.0 に対応す る JRun コ ネ ク タ を イ ン ス ト ールま たはアン イ ン ス ト ールする ためのユーティ リ ティ が 2 つあり ま す。 ほと んど の 場合は、 40 ページの 「ConnectorInstaller ユーテ ィ リ テ ィ の使用」 で説明 し た ConnectorInstaller ユーティ リ ティ を使用し てコ ネク タ を IIS にイ ンス ト ールし ま すが、 Allaire では metaset お よ び regset と い う 2 つのユーテ ィ リ テ ィ も 提供 し てい ます。 たと えば、 分散環境において JRun を イ ン ス ト ールする 際に、 IIS と JRun を 別のマシン に 接続 し 、 ConnectorInstaller ユーテ ィ リ テ ィ がネ ッ ト ワ ー ク 間で使用で き ない場合 には、 こ の 2 つのユーテ ィ リ テ ィ を使用 し ます。 メモ metaset およ び regset ユーティ リ ティ を 使用し てコ ネク タ を イ ン ス ト ールする 場合は、 ほかの手順を手作業で実行する必要があ り ます。 この手順については、次のセ ク シ ョ ンで 説明 し ます。 IIS 3.0 は Windows のレ ジ ス ト リ を使用し て設定情報を格納し ます。 コ ネ ク タ を IIS 3.0 に イ ン ス ト ールするには、コマン ド ラ イ ン ユーテ ィ リ テ ィ の regset.exe を使用し ます。 IIS 4.0 お よ び 5.0 は メ タ ベー ス を 使用 し て設定情報 を 格納 し ま す。 メ タ ベー ス は Windows レ ジス ト リ に類似し ていま すが、 アク セス の高速化 (フ ァ イ ル サイ ズの縮小) によ り 重点が置かれていま す。 JRun 接続情報に関し て IIS 4.0/5.0 メ タ ベース を 更新する には、 metaset.exe を使用 し ます。 metaset と regset の構文 regset お よ び metaset ユーテ ィ リ テ ィ の構文は次の と お り です。 regset -[i|d] jrun.dll_path [-quiet] metaset -[i|d] /n jrun.dll_path [-quiet] metaset は JRun のルー ト デ ィ レ ク ト リ \connectors\isapi\intel-win \metaset.exe に、 regset は JRun のルー ト デ ィ レ ク ト リ \connectors \isapi\intel-win\regset.exe にあり ま す。 -quiet オプシ ョ ン を使用する と 、 操作の成否にかかわ ら ず、 出力結果が作成されません。 -i オプシ ョ ンは、 コ ネ ク タ を イ ン ス ト ールす る と き に使用 し ます。 -d オプ シ ョ ン は、 コ ネ ク タ を ア ン イ ン ス ト ール ま たは削除す る と き に使用 し ま す。 metaset お よ び regset のオプシ ョ ンについては、 以降のセ ク シ ョ ン を参照 し て く だ さ い。 外部 Web サーバーへの JRun の接続 45 metaset お よび regset を使用 し た IIS への コ ネ ク タ のイ ン ス ト ール regset ま たは metaset を 使用し てコ ネク タ を イ ン ス ト ールする 場合、 jrun.dll フ ァ イ ル お よ び jrun.ini フ ァ イ ルを適切な場所 (通常は /inetpub/scripts デ ィ レ ク ト リ ですが、 設定に よ っ ては異な る 場合 も あ り ます ) に コ ピーす る 必要があ り ます。 jrun.dll は ISAPI フ ィ ルタ であ り 、 Web サーバーに対する HTTP 要求を 中断し 、 JRun の 処理 と し て適切な要求 を JRun に渡 し ます。 jrun.ini フ ァ イ ルは jrun.dll を初期化 し ます。 場合に よ っ ては、 JRun コ ネ ク タ を正 し く 機能 さ せ る ために、 jrun.ini フ ァ イ ル内の 一部の設定を 変更する 必要があ り ま す。 jrun.ini フ ァ イ ルのプロ パティ と 分散環境での JRun の イ ン ス ト ールについては、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 メモ JRun コ ネ ク タ を イ ン ス ト ールす る と き は、 regset ま た は metaset を 使用す る 前に Web サーバーを停止 し て く だ さ い。 IIS 3.0 への コ ネ ク タ のイ ン ス ト ール regset ユーティ リ ティ は、 Windows レ ジス ト リ に JRun コ ネク タ 情報を 追加し て更新 し ま す。 IIS 3.0 はマルチホス ト を サポート し ないので、 各 Web サーバー イ ン ス タ ンス の ス ク リ プ ト デ ィ レ ク ト リ は 1 つだけです。 次に例を示 し ます。 regset -i c:\inetpub\scripts\ -quiet IIS 4.0 お よび 5.0 への コ ネ ク タ のイ ン ス ト ール metaset ユーテ ィ リ テ ィ は、 メ タ ベース に JRun コ ネ ク タ 情報を追加 し て更新 し ます。 次に例を示 し ます。 metaset -i /1 c:\virt2\inetpub\scripts -quiet -i オプシ ョ ンは、 仮想ホ ス ト 番号 n に新 し い コ ネ ク タ を追加 し ます。 こ の場合、 n は 1 と し て処理 さ れ ます。 仮想ホ ス ト には明確な番号が付け ら れ ませんが、 Microsoft 管理コ ン ソ ールで順序を 確認し て ホ ス ト を 識別する こ と は可能です。 n を 0 に設定 す る と 、 JRun は コ ネ ク タ を グ ロ ーバル フ ィ ル タ と し て イ ン ス ト ール し ま す。 こ の フ ィ ル タ は、 IIS の該当 イ ン ス タ ン ス内のすべての仮想ホ ス ト に適用 さ れます。 マルチホ ス ト で、 仮想サーバーが同 じ scripts デ ィ レ ク ト リ を共有 し ていない場合は、 jrun.dll と jrun.ini を必ず正 し いデ ィ レ ク ト リ に入れ、 グ ロ ーバル フ ィ ル タ を 削除 し て く だ さ い。 第 1 章 OEM リ ソ ース 46 metaset お よび regset を使用 し た IIS から の コ ネ ク タ のア ン イ ン ス ト ール metaset お よび regset ユーテ ィ リ テ ィ には、 JRun コ ネ ク タ を削除す る オプシ ョ ンが あ り ます。JRun またはお客様の製品をユーザのマシンか ら アン イ ン ス ト ールする と きは、 こ のユーテ ィ リ テ ィ を呼び出 し ます。 IIS か ら コ ネ ク タ を ア ン イ ン ス ト ールす る と 、 デバッ グを 簡単に行う こ と ができ ま す。 こ のセク ショ ン では、 metaset およ び regset を 使用 し て IIS か ら JRun コ ネ ク タ を削除す る 方法について説明 し ます。 metaset お よ び regset ユーテ ィ リ テ ィ では、 jrun.dll フ ァ イ ルや jrun.ini フ ァ イ ルを 実際に削除する のではなく 、 こ れら のフ ァ イ ルの登録を Web サーバーから 削除し ま す。 ア ン イ ン ス ト ール を完全に行 う には、 こ れ ら の フ ァ イ ル を手作業で削除す る 必要が あ り ます。 メモ JRun コ ネ ク タ を ア ン イ ン ス ト ールす る と き は、 regset ま たは metaset ユーテ ィ リ テ ィ を使用す る 前に Web サーバーを停止 し て く だ さ い。 IIS 3.0 からの コ ネ ク タ のア ン イ ン ス ト ール regset ユーテ ィ リ テ ィ は、 Windows レ ジ ス ト リ 内の設定を削除 し ます。 た と えば、 コ ネ ク タ を削除す る には、 次の コ マン ド を実行 し ます。 regset -d c:\inetpub\scripts -quiet IIS 4.0 お よび 5.0 から のコ ネ ク タ のア ン イ ン ス ト ール metaset ユーテ ィ リ テ ィ は、 IIS メ タ ベース内の設定を削除 し ます。 た と えば仮想ホ ス ト 番号 1 か ら コ ネ ク タ を削除す る には、次の コ マ ン ド を実行 し ます。 metaset -d /1 c:\virt2\inetpub\scripts -quiet グ ロ ーバル コ ネ ク タ を削除する には、 次の コ マ ン ド を実行 し ます。 metaset -d /0 c:\inetpub\scripts -d オプシ ョ ンは、 仮想ホ ス ト 番号 n の コ ネ ク タ を削除 し ます。 仮想ホ ス ト には明確な 番号が付け ら れま せんが、 Microsoft 管理 コ ン ソ ールで順序を確認 し て ホ ス ト を識別 する こ と は可能です。 n を 0 に設定する と 、 グ ロ ーバル フ ィ ルタ ( 設定さ れて いる 場合 ) が削除さ れま す。 JRun サーバーの追加 と 削除 47 JRun サーバーの追加 と 削除 JRun を イ ン ス ト ールする と 、 admin と default の 2 つの JRun サーバーがイ ン ス ト ール さ れて起動 さ れます。 JRun で提供 さ れて い る Server ク ラ ス を 使用す る と 、 JRun サーバーの追加 と 削除を 行っ たり 、 JRun サーバーが存在する かど う かを プロ グ ラ ム ま たはコ マン ド ラ イ ン から テ ス ト で き ます。 サーバー設定を最大限に制御す る ために、 こ のセ ク シ ョ ンの指示に 従っ て JRun サーバーの追加 と 削除を手作業で行 う こ と も で き ます。 JRun には、 JMC の [ 新規サーバーの構成 ] パネルに独自の フ ィ ール ド を追加す る 機能 も あ り ます。 こ のセ ク シ ョ ンでは、 次の項目について説明 し ます。 • 「プ ロ グ ラ ムに よ る JRun サーバーの追加 と 削除」 48 ページ • 「手作業での JRun サーバーの追加 と 削除」 51 ページ • 「JMC の [ 新規サーバーの構成] パネルの拡張」 54 ページ 新規 JRun サーバーについて コ マ ン ド ラ イ ン ま たは JMC を使用 し て新規 JRun サーバーの既定の イ ン ス ト ールを 実行す る と 、 その新規 JRun サーバーの概要を示す local.properties フ ァ イ ルが作成 さ れ ます。 こ の フ ァ イ ルには次のプ ロ パテ ィ が含 まれてい ます。 • • • • • • • jrun.server.displayname jrun.rootdir servlet.webapps servlet.services web.endpoint.main.port control.endpoint.main.port ejb.services 新規サーバーを Enterprise サーバーに指定し た 場合、 local.properties フ ァ イ ルには 次のプロ パティ も 含ま れま す。 • ejb.services • ejb.ejipt.enableMessaging • ejb.ejipt.classServer.port • ejb.ejipt.homePort • ejb.ejipt.classServer.host 第 1 章 OEM リ ソ ース 48 プ ログ ラ ムによ る JRun サーバーの追加 と 削除 こ のセ ク シ ョ ンでは、allaire.jrun.tools パ ッ ケージ内の Server ク ラ ス を使用 し て JRun サーバーの追加 と 削除 を行 う 方法について説明 し ます。 コ マ ン ド ラ イ ン か ら Server ク ラ ス を使用 し た り 、 Java アプ リ ケーシ ョ ン内か ら そのパブ リ ッ ク メ ソ ッ ド を呼び 出す こ と がで き ます。 Server ユーテ ィ リ テ ィ を呼び出すには、 ク ラ スパ ス に JRun のルー ト デ ィ レ ク ト リ /lib/jrun.jar を含め る 必要があ り ます。 Server ク ラ ス を使用 し て JRun サーバーを追加す る と 、 次の作業が実行 さ れます。 • 新規サーバーが jvms.properties フ ァ イ ルに追加 さ れます。 • • そのサーバー用のデ ィ レ ク ト リ が JRun のルー ト デ ィ レ ク ト リ /servers デ ィ レ ク ト リ の下に作成 さ れます。 そのサーバーの概要を示す local.properties フ ァ イ ルが作成 さ れます。 新規 JRun サーバーを使用す る には、 そのサーバー上で Web アプ リ ケーシ ョ ン を作成 す る 必要があ り ます。 詳細は、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 コ マ ン ド ラ イ ンか らの Server ク ラ スの使用 コ マ ン ド ラ イ ン から Server ユーテ ィ リ テ ィ を 使用する には、 次のコ マ ン ド を 入力 し ま す。 % java [-classpath classpath] allaire.jrun.tools.Server [add|remove|exists] server [local.properties enterprise] jrun-home 次に例を示 し ます。 % java -classpath c:\jrun\lib\jrun.jar allaire.jrun.tools.Server add |new_server c:\jrun\ add 新規 JRun サーバーを追加 し ます。 必要に応 じ て新規 local.properties フ ァ イ ルの 場所を指定 し 、 add ア ク シ ョ ン と と も に enterprise オプシ ョ ン を設定す る こ と も で き ます。 片方のオプシ ョ ン を指定 し た場合は、 両方 と も 指定す る 必要があ り ます。 enterprise オプシ ョ ンはブール値であ り 、 新規 JRun サーバーで EJB お よ び JMS Enterprise 版の機能 を 有効にす る か ど う か を 決定 し ま す。 既定値は true です。 47 ページの 「新規 JRun サーバーについて」 で説明 し た よ う に、 こ のオプシ ョ ン を 設定す る と Enterprise 関連のプ ロ パテ ィ が local.properties フ ァ イ ルに書 き 込 ま れます。 JRun サーバーの追加 と 削除 49 remove 既存の JRun サーバーを 削除し ま す。 削除する 前に JRun サーバーを 停止する 必要が あ り ます。 メモ admin JRun サーバーを削除 し ないで く だ さ い。 削除す る と JMC にア ク セ ス で き な く な り ます。 exists サーバーが存在す る 場合は、 "The server 'servername' exists" と い う メ ッ セージが返 さ れます。 存在 し ない場合は、 "The server 'servername' does not exist" と いう メ ッ セージが返さ れま す。 こ のアク ショ ン によ っ てサーバーの存在を 調べる 場合、 そのサーバーが実行中である 必要はあり ま せん。 次に例を 示し ま す。 % java allaire.jrun.tools.Server exists default c:\jrun\ The server 'default' exists. % java allaire.jrun.tools.Server exists nickdanger c:\jrun\ The server 'nickdanger' does not exist. Java ア プ リ ケーシ ョ ン での Server ク ラ スの呼び出 し 独自の Java アプリ ケーショ ン から Server ク ラ ス のパブリ ッ ク メ ソ ッ ド にアク セス し て、 プ ロ グ ラ ム で JRun サーバーの追加 と 削除 を 実行で き ま す。 こ の ク ラ ス を 使用 し て サーバーの存在を テ ス ト す る こ と も で き ます。 こ のセ ク シ ョ ンでは、 Server ク ラ ス の パブ リ ッ ク メ ソ ッ ド について説明 し ます。 コ ン ス ト ラ ク タ の詳細 Server public Server(java.lang.String serverName, java.lang.String jrunDir) throws java.io.IOException,allaire.jrun.tools.ServerException 新規サーバーを構築 し ます。 次の表では、 パ ラ メ ー タ について説明 し てい ます。 パラ メ ータ 説明 serverName 新規 JRun サーバーの名前 jrunDir JRun のルー ト デ ィ レ ク ト リ 第 1 章 OEM リ ソ ース 50 メ ソ ッ ド の詳細 add public void add() throws java.io.IOException, allaire.jrun.tools.ServerException 新規 JRun サーバーを 追加し ま す。 local.properties を 空のフ ァ イ ルと 見なし 、 サー バー デ ィ レ ク ト リ を {JRun のルー ト デ ィ レ ク ト リ }/servers/{ サーバー } と 見な し て、 既定に よ り EJB と JMS を有効に し ます。 add public void add(allaire.jrun.util.OrderedProperties ordProp) throws java.io.IOException, allaire.jrun.tools.ServerException 新規 JRun サーバー を追加 し ます。 サーバー デ ィ レ ク ト リ を {JRun のルー ト ディ レ ク ト リ }/servers/{ サーバー } と 見なし 、 EJB と JMS を 有効にし ま す。 次の表 では、 パ ラ メ ー タ について説明 し てい ます。 パラ メ ータ 説明 ordProp 新規サーバーの local.properties フ ァ イ ルに保存 さ れる プ ロパテ ィ add public void add(allaire.jrun.util.OrderedProperties ordProp, boolean enterprise) throws java.io.IOException, allaire.jrun.tools.ServerException 新規 JRun サーバーを追加 し ます。 新規サーバー デ ィ レ ク ト リ を {JRun のルー ト デ ィ レ ク ト リ }/servers/{ サーバー } と 見な し ます。 次の表では、 パ ラ メ ー タ につい て説明 し てい ます。 パラ メ ータ 説明 ordProp 新規サーバーの local.properties フ ァ イ ルに保存 さ れる プ ロパテ ィ enterprise 新規 JRun サーバーの EJB と JMS を有効に し ます。 JRun サーバーの追加 と 削除 51 add public void add(allaire.jrun.util.OrderedProperties ordProp, java.lang.String serverDirNew, boolean enterprise) throws java.io.IOException, allaire.jrun.tools.ServerException 新規 JRun サーバーを 追加し ま す。次の表では、パラ メ ータ について説明し ていま す。 パラ メ ータ 説明 ordProp 新規サーバーの local.properties フ ァ イ ルに保存 さ れる プ ロパテ ィ serverDirNew 新規 JRun サーバーのデ ィ レ ク ト リ の場所 enterprise 新規 JRun サーバーの EJB と JMS を有効に し ます。 remove public void remove() throws java.io.IOException, allaire.jrun.tools.ServerException JRun サーバーを削除 し ます。 削除す る 前に JRun サーバーを停止す る 必要が あ り ます。 exists public boolean exists() サーバーが存在す る か ど う かをチ ェ ッ ク し ます。 手作業での JRun サーバーの追加 と 削除 こ のセ ク シ ョ ンでは、 新規 JRun サーバーの追加 と 削除を手作業で行 う 方法について 説明 し ます。 JMC を使用 し て新規 JRun サーバーを作成す る 方法については、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 手作業での JRun サーバーの追加 新規 JRun サーバーを手作業で最 も 簡単に作成す る には、 既定のアプ リ ケーシ ョ ン を 含む default JRun サーバーの フ ァ イ ルおよ びディ レ ク ト リ 構造を コ ピ ーし 、 そ の コ ピ ーを 変更し て 新規サーバーの内容を 反映さ せま す。 第 1 章 OEM リ ソ ース 52 JRun サーバーを作成するには 1 新規サーバーの名前を付けたデ ィ レ ク ト リ (/servers/foo な ど ) に /servers/default デ ィ レ ク ト リ を コ ピー し ます。 2 新 し いデ ィ レ ク ト リ (/servers/foo) 内の local.properties フ ァ イ ルを開 き ます。 local.properties フ ァ イ ルでは JRun サーバー固有の設定を定義 し ま す。 こ の設定 には、 名前やポー ト 設定な ど の基本的なプ ロ パテ ィ だけでな く 、 そのサーバーで 公開す る アプ リ ケーシ ョ ン も 含まれます。 新 し い local.properties フ ァ イ ルを次の よ う に変更 し ます。 a サーバーの新規名 ( 表示名 ) を反映す る よ う に jrun.server.displayname プ ロ パテ ィ を変更 し ます。 こ の名前は JMC に表示 さ れ ます。 コ ー ド は次の よ う に な り ます。 ## jvm properties # was:jrun.server.displayname=Default Server jrun.server.displayname=Foo Server b 「Web Application Settings」 セク ショ ン から 不要なアプリ ケ ーショ ン を 削除し ま す。 default-app を残す場合は、 ほかの JRun サーバーの default-app マ ッ ピ ン グ と 競合し な いよ う に URL マッ ピ ン グ を 必ず変更し てく ださ い。 default サー バーに ア プ リ ケーシ ョ ン を 追加 し て い な い場合、 demo-app と invoice-app 以外のア プ リ ケーシ ョ ン を削除す る 必要はあ り ません。 た と えば、 各アプ リ ケーシ ョ ンには次の よ う なセ ク シ ョ ンがあ り ます。 invoice-app.rootdir=C:\\Program Files\\Allaire\\JRun\\ servers\\default\\invoice-app invoice-app.class={webapp.service-class} webapp.mapping./invoice=invoice-app 該当す る アプ リ ケーシ ョ ンの設定を削除 し ます。 c default アプリ ケ ーショ ン のみが含ま れる よ う に servlet.webapps プロ パティ を 再設定 し ます。 行は次の よ う にな り ます。 #was:servlet.webapps=default-app, demo-app servlet.webapps=default-app d ポー ト 設定を固有のポー ト に変更 し ます ( こ れ ら の設定はフ ァ イ ル内の別々の セ ク シ ョ ンにあ り ます)。 次に例を示 し ます。 web.endpoint.main.port=8101 #was:8100 (Web server port) control.endpoint.main.port=53001 #was:53000 (Control port) ejipt.classServer.port=2324 #was: 2323 ejipt.homePort=2334 #was 2333 メモ こ れ ら のポー ト 設定を変更 し ない と 、 バ イ ン ド の例外が発生す る 場合があ り ます。 JRun のポー ト については、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 JRun サーバーの追加 と 削除 53 3 local.properties フ ァ イ ルを保存 し ます。 4 default-app を含むすべてのアプ リ ケーシ ョ ンのデ ィ レ ク ト リ を /servers/foo か ら 削除 し ます。 default サーバーに ア プ リ ケーシ ョ ン を追加 し て い ない場合、 削除す る 必要があ る のは default-app デ ィ レ ク ト リ だけです。 5 JRun のルー ト デ ィ レ ク ト リ /lib デ ィ レ ク ト リ 内の jvms.properties フ ァ イ ル を 開 き ま す。 JRun では jvms.properties フ ァ イ ルを使用 し て、 イ ン ス タ ン ス 化す る 必要があ る サーバーが調べら れま す。 新規サーバーの行を 追加し ま す。 フ ァ イ ルは 次の よ う に な り ま す (NT の場合 )。 admin=C:/Program Files/Allaire/JRun/servers/admin default=C:/Program Files/Allaire/JRun/servers/default foo=C:/Program Files/Allaire/JRun/servers/foo サーバー名が行の先頭にあ り 、 デ ィ レ ク ト リ 名が行の末尾にあ る こ と に注意 し て く だ さ い。 6 新規 JRun サーバーを起動 し ます。 Windows の場合 a /JRun のルート ディ レ ク ト リ /bin 内の jrun-default.bat フ ァ イ ルを jrun-foo.bat に コ ピー し ます。 b jrun-foo.bat を編集 し て新規サーバーの名前を指定 し ます。 @echo off start jrun -start foo c jrun-foo.bat フ ァ イ ルを実行 し ます。 d オプシ ョ ン で (NT のみ )、 コ マ ン ド ラ イ ン ユーテ ィ リ テ ィ を使用 し て新規 サーバー を NT サー ビ ス と し て追加す る こ と も で き ます。 % jrun -install "Foo Service" foo -quiet e 次の コ マ ン ド を使用 し てサーバーを起動 し ます。 % jrun -start foo UNIX の場合 /jrun/bin 内の jrun コ マン ド ラ イ ン ユーテ ィ リ テ ィ を使用 し ます。 % jrun -start foo 7 JMC に ロ グ イ ン し てい る 場合は、 ロ グ ア ウ ト し てか ら admin サーバー を再起動 し ます。 次回の ロ グ イ ン時には、 新規 Foo サーバーが JMC の左側ペ イ ン に表示 さ れます。 Foo サーバーには Web アプ リ ケーシ ョ ンがあ り ません。 8 新規 JRun サーバーを使用する には、 そのサーバー上で Web アプ リ ケーシ ョ ン を 作成する必要があ り ます。詳細は、『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照し て く だ さ い。 第 1 章 OEM リ ソ ース 54 手作業での JRun サーバーの削除 JRun サーバーの削除は十分に検討 し た上で行 う 必要が あ り ます。 サーバー を削除す る 前に、 そのサーバー内に あ る 重要な フ ァ イ ル ま たはア プ リ ケーシ ョ ン を必ずバ ッ ク ア ッ プ し て く だ さ い。 こ のセ ク シ ョ ン では、 JRun サーバー を削除す る 方法につい て説明 し ます。 注意 admin JRun サーバー ま たは default JRun サーバー を削除 し ないで く だ さ い。 削除 す る と 、 こ れ ら のサーバー内の アプ リ ケーシ ョ ン が失われ ます。 JRun サーバーを削除するには 1 削除す る JRun サーバーを停止 し ます。 2 そのサーバーのデ ィ レ ク ト リ と すべてのサブデ ィ レ ク ト リ を削除 し ます ( た と えば、 /servers 内の /foo デ ィ レ ク ト リ を削除 し ます)。 3 JRun のルー ト デ ィ レ ク ト リ /lib デ ィ レ ク ト リ 内の jvms.properties フ ァ イ ル を 開 き 、 該当す る サーバーの行 を削除 し ます。 フ ァ イ ルは次の よ う にな り ます (NT の場合 )。 admin=C:/Program Files/Allaire/JRun/servers/admin default=C:/Program Files/Allaire/JRun/servers/default #foo=C:/Program Files/Allaire/JRun/servers/foo 4 サーバーの起動ス ク リ プ ト を削除 し ます。 5 サーバーを NT サービ ス と し て追加し た場合は、 コ マン ド ラ イ ン ユーティ リ ティ を 使用 し て こ のサービ ス を削除 し ます。 % jrun -remove "Foo Server" -quiet 6 JMC にロ グイ ンし ている 場合は、ロ グアウ ト し てから admin サーバーを 再起動し ま す。 次回の ロ グ イ ン時には、 こ のサーバーが JMC の左側ペ イ ンに表示 さ れません。 JMC の [ 新規サーバーの構成 ] パネルの拡張 前に説明し たよ う に、 JMC を 使用し て JRun サーバーを追加する と 、 新規 JRun サーバーの 概要を示す local.properties フ ァ イ ルのみが作成 さ れます。 JRun では、 JMC を使用 し て新規 JRun サーバーを追加す る 既定の機能を拡張す る ための方法がい く つか用意 さ れてい ます。 • JMC の [新規サーバーの構成] パネルに フ ィ ール ド を追加 し て、新規 JRun サーバー に関す る 情報の入力を ユーザに要求 し ます。 • 任意の数の既定のプ ロ パテ ィ を新規 JRun サーバーに自動的に追加 し ます。 こ のセ ク シ ョ ン では、 admin JRun サーバーの local.properties フ ァ イ ル を変更 し て こ れ ら の操作を実行す る 方法について説明 し ます。 admin サーバー上で動作 し てい る jmc-app に よ っ て JMC の内容が制御 さ れ る ため、 local.properties フ ァ イ ル を編集 す る 必要があ り ます。 admin サーバーの local.properties フ ァ イ ルの編集プ ロ セ ス は、 PropertScript ユーティ リ ティ を 使用し て自動化でき ま す。 詳細は、 30 ページの 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 JRun サーバーの追加 と 削除 55 [ 新規サーバーの構成 新規サーバーの構成] パネルへの フ ィ ール ド の追加 JMC の [新規サーバーの構成 ] パネルにフ ィ ールド を 追加し 、JMC ユーザの応答を プ ロ パテ ィ と し て新規 JRun サーバーの local.properties フ ァ イ ルに保存で き ます。 新 し い プ ロ パ テ ィ は、 既存の JRun プ ロ パテ ィ を 置 き 換え る こ と も 、 JRun サーバー ま たは Web ア プ リ ケーシ ョ ン の コ ン テ キ ス ト で特別な意味 を持つ固有のプ ロ パテ ィ にす る こ と も で き ます。 たと えば、[ 新規サーバーの構成] パネルに [Logging Level] と いう フ ィ ール ド を追加 し 、 その フ ィ ール ド を local.properties 内の logging.loglevel プ ロ パテ ィ にマ ッ ピ ン グ し 、 必要な ロ グ レベル (情報、 警告、 エ ラ ーな ど ) の入力を ユーザに要求で き ます。 こ のセ ク シ ョ ンでは、 [Logging Level] フ ィ ールド およ びプロ パティ の追加手順を 示し 、 JMC の [ 新規サーバーの構成] パネルに フ ィ ール ド を追加す る 方法について説明 し ま す。 [ 新規サーバーの構成 ] パネルに フ ィ ール ド を追加する には 1 JRun のルー ト デ ィ レ ク ト リ /servers/admin/local.properties にあ る admin JRun サーバーの local.properties フ ァ イ ルを開き ます。 2 AddServer セ ク シ ョ ン を見つけ ます。 3 新規 フ ィ ール ド の ト ー ク ン名 を jmcAddServer.items プ ロ パテ ィ に追加 し ます。 こ の名前は、 local.properties フ ァ イ ル内の新規プ ロ パテ ィ を参照す る と き に使用 さ れます。 たと えば、 新規プロ パティ の名前を logSetting にする 場合は、 カン マ区切り リ ス ト の 最後に logSetting を追加 し ます。 jmcAddServer.items=displayName,webPort,controlPort,enterprise,ejbCla ssPort,ejbHomePort,logSetting 4 次のプ ロ パテ ィ と 値 を追加 し ます。 こ の手順では、 logSetting の属性 を定義 し て い ます。 jmcAddServer.logSetting.title=Logging Level jmcAddServer.logSetting.name=logging.loglevel jmcAddServer.logSetting.type=string jmcAddServer.logSetting.description=Enter one or more of the following in a comma-delimited list:info, warning, error jmcAddServer.logSetting.optional=false 5 admin JRun サーバーの local.properties フ ァ イ ルを保存 し て閉 じ ます。 6 admin JRun サーバーを再起動 し ます。 第 1 章 OEM リ ソ ース 56 7 JMC で [ マシ ン名 ] を選択 し ます。 [新規サーバーの構成 ] パネルが新規フ ィ ール ド と と も に表示 さ れます。 ユーザが [Logging Level] フ ィ ールド に 「info」 と 入力し て [作成] ボ タ ンを ク リ ッ ク す る と 、既定のプロ パティ のほかに次の行が新規 JRun サーバーの local.properties フ ァ イ ルに書き 込ま れま す。 logging.loglevel=info 新規 JRun サーバーへの既定のプ ロパテ ィ の追加 こ のセク ショ ン の指示に従っ て、 すべての新規 JRun サーバーに追加する プロ パティ の 一覧を 作成でき ま す。 こ のプロ セス では、 新規フ ィ ールド の作成や新規サーバーを 作成 する ユーザに対する プロ ン プト の表示は行われま せんが、代わり にプロ パティ の一覧が フ ァ イ ルか ら 読み込まれ、 新 し い local.properties フ ァ イ ルに書き 込まれます。 新規 JRun サーバーに既定のプ ロパテ ィ を追加するには 1 JRun のルー ト デ ィ レ ク ト リ /servers/admin/local.properties にあ る admin JRun サーバーの local.properties フ ァ イ ルを開き ます。 2 AddServer セ ク シ ョ ン を見つけ ます。 3 jmcAddServer.file プ ロ パテ ィ で フ ァ イ ルを指定 し ます。既定値は次の と お り です。 jmcAddServer.file=/lib/jmcAddServer.file こ の場所は JRun のルー ト デ ィ レ ク ト リ か ら の相対パ ス です。 4 jmcAddServer.file ま たは jmcAddServer.file プ ロ パテ ィ で指定 し た フ ァ イ ル を 開 き ます。 こ の フ ァ イ ルの既定の内容は次の と お り です。 # Add here any properties that you wish to be added to a server # when created in the JRun Management Console. # See the admin server's local.properties for more information. JRun サーバーの追加 と 削除 5 57 JMC で作成し たすべての新規 JRun サーバーに追加する プロ パティ およ び値を 追加 し ま す。 た と えば、 すべての新規 JRun サーバーにカ ス タ ム ロ ガーを追加す る には、 jmcAddServer.file に次のプ ロ パテ ィ を追加 し ます。 logging.threadedlogger.listeners=filelogwriter,mydispatcher logging.mydispatcher.class=allaire.jrun.logging.DispatchLogger logging.mydispatcher.events=allaire.jrun.logging.MetricsLogEve nt logging.mydispatcher.destinations=metricswriter logging.metricswriter.class=allaire.jrun.logging.FileLogWriter logging.metricswriter.filename= {jrun.rootdir}/logs/ {jrun.server.name}-metrics.csv logging.metricswriter.heading.line1=# JRun 3.0 Metrics logging.metricswriter.heading.line2=# Date, JVM Free Memory,Requests,Avg Request Time logging.metricswriter.format={date MM/dd HH:mm:ss},{log.message} こ れ ら のプ ロ パテ ィ では mydispatcher と い う 新 し い リ スナが追加 さ れます。 こ の DispatchLogger に よ っ て MetricsLogEvent タ イ プ の ロ グ イ ベ ン ト が受信 さ れ、 metricswriter と いう ロ ガ ーに転送さ れま す。 ほかのすべて のタ イ プのロ グ メ ッ セージは無視 さ れ ます。 新し いロ グ ラ イ タ が設定さ れてロ グ イ ベン ト が FileLogWriter に server-metrics.csv と いう フ ァ イ ル名で送信さ れ、 出力がフ ォ ーマッ ト さ れま す。 メモ jmcAddServer.file の内容を 編集し ても 、 既存の JRun サーバーは影響を 受けま せん。 JMC を使用 し て追加 さ れた JRun サーバーのみが影響を受け ます。 6 jmcAddServer.file を保存 し て閉 じ ます。 7 admin JRun サーバーを再起動 し ます。 次に JMC の [新規サーバーの構成 ] パネルを使用 し て新規 JRun サーバーを作成す る と き 、 jmcAddServer.file 内のすべて のプロ パテ ィ が新規 JRun サーバーの local.properties フ ァ イ ルに書 き 込まれます。 第 1 章 OEM リ ソ ース 58 JMC の拡張 JRun を 使用する と 、 JMC の左側パネルにあ る JRun ナビ ゲーショ ン ツ リ ーにカ ス タ ム リ ン ク を 追加でき ま す。 追加でき る のは、 メ ニュ ー、 サブメ ニュ ー、 およ びオプショ ン です。 たと えば、 Web サイ ト 上のテク ニカ ル サポート ページや特別記事へのリ ン ク を 含める こ と ができ ま す。 数多く のテ ク ニ カ ル サポ ート 記事にリ ン ク する 場合は、 ト ピ ッ ク ご と に記事を グ ループ化し 、サブメ ニ ュ ーと し て ナビ ゲーシ ョ ン ツ リ ーに 含める こ と ができ ま す。 次の例では、 [JavaSoft] が メ ニ ュ ーであ り 、 [JDBC] がサブ メ ニ ュ ーであ り 、 [Servlets]、 [JSP]、 [Drivers]、 お よ び [Articles] がオプシ ョ ンです。 メ ニ ュ ー名 ま たはオプシ ョ ン名を ク リ ッ ク す る と 、 対応す る リ ン ク が JMC の メ イ ン タ ーゲ ッ ト ウ ィ ン ド ウ に表示 さ れます。 JMC 拡張の構文 JMC の拡張は、 admin JRun サーバーの local.properties フ ァ イ ルにプロ パティ を 追加 す る こ と に よ っ て行われます。 ト ッ プ レ ベルのオプ シ ョ ン ま たは メ ニ ュ ー を サーバーの項目 リ ス ト に追加す る 必要 があ り ます。 admin.jmcMenu.<server_name>.items=<options_list> server_name は、JMC ナビゲーシ ョ ン ツ リ ーで下に リ ン ク を表示す る サーバーの名前 です。 た と えば、 default な ど です。 options_list は、 ナビ ゲーシ ョ ン ツ リ ーに表示す る ト ッ プ レベル オプシ ョ ンのカ ン マ 区切 り リ ス ト です。 name お よ び link プ ロ パテ ィ を使用 し て、 オプシ ョ ンの リ ン ク 先お よ び表示名を追加 し ます。 admin.jmcMenu.<server_name>.<options_name>.name=<display_name> admin.jmcMenu.<server_name>.<options_name>.link=<target_link> JMC の拡張 59 option_name は、プロ パティ フ ァ イ ル内でこ のリ ンク を 参照する と き に使用する リ ンク の 名前です。こ の名前はス ペース や特殊文字を 含ま ない 1 つの単語でなければなり ま せん。 たと えば、 sun など です。 次に、 こ の option_name を 使用し てサブメ ニュ ー項目を 追加 し ます。 display_name では、 JMC ナビ ゲーショ ン ツ リ ーに表示する リ ン ク の名前を 定義し ま す。 た と えば、 JavaSoft な ど です。 こ の値にはスペース を含め る こ と がで き ます。 target_link は、 ユーザがリ ン ク を ク リ ッ ク し たと き に JMC のタ ーゲッ ト ウ ィ ン ド ウ に 表示 さ れ る Web ページです。 リ ン ク の項目 リ ス ト を使用 し てサブ メ ニ ュ ーを追加 し ます。 admin.jmcMenu.<server_name>.<options_name>.items=<sub-menu_list> sub-menu_list は、 options_name サブ メ ニ ュ ーの下に表示 さ れ る サブ メ ニ ュ ー オプ ショ ン のカンマ区切り リ ス ト です。 任意の数のネス ト さ れたメ ニュ ーを 作成でき ま す。 こ れ ら の変更を有効にす る には、 admin JRun サーバーを再起動 し て JMC に ロ グ イ ン し 直す必要があ り ま す。 新し いメ ニ ュ ーやオプシ ョ ン が表示さ れる JRun サーバー を 再起動する 必要はあ り ま せん。 JMC 拡張の追加 JMC ナビゲーシ ョ ン メ ニ ュ ーに新 し い リ ン ク を追加するには 1 admin JRun サーバーの local.properties フ ァ イ ルを開 き ます。 2 項目 リ ス ト に新 し いオプシ ョ ン を追加 し ます。 た と えば、sun と い う オプシ ョ ン を default JRun サーバーに追加す る には、 次の よ う に入力 し ます。 admin.jmcMenu.default.items=sun 新 し いオプシ ョ ン を JMC に初めて追加す る 場合は、 行全体を入力す る 必要があ り ます。 それ以外の場合は、 カ ンマ区切 り リ ス ト に新 し いオプシ ョ ン を追加 し ます。 3 新 し いオプシ ョ ンの名前お よ び リ ン ク を追加 し ます。 admin.jmcMenu.default.sun.name=JavaSoft admin.jmcMenu.default.sun.link=http://java.sun.com 4 必要な場合は、 項目 リ ス ト を使用 し てサブ メ ニ ュ ー内のオプシ ョ ン を現在のオプ シ ョ ン に追加で き ます。 サブ メ ニ ュ ー内の jdbc と い う オプシ ョ ン を sun に追加 す る には、 次の よ う に入力 し ます。 admin.jmcMenu.default.sun.items=jdbc 5 次に、 サブ メ ニ ュ ー内の jdbc オプシ ョ ンの名前お よ び リ ン ク を追加 し ます。 admin.jmcMenu.default.jdbc.name=JDBC admin.jmcMenu.default.jdbc.link=http://java.sun.com/jdbc 6 JMC か ら ロ グ ア ウ ト し ます。 7 admin JRun サーバーを再起動 し ます。 8 JMC に ロ グ イ ン し 直 し 、 新 し い リ ン ク を テ ス ト し ます。 第 1 章 OEM リ ソ ース 60 JMC 拡張の例 次の例は、admin JRun サーバーの local.properties フ ァ イ ルの内容です。 こ れに よ り 、 58 ページの画像に示 さ れてい る メ ニ ュ ー、 サブ メ ニ ュ ー、 お よ びオプシ ョ ン が表示 さ れ ます。 admin.jmcMenu.default.items=sun,microsoft admin.jmcMenu.default.sun.items=servlets,jsp,jdbc admin.jmcMenu.default.sun.name=JavaSoft admin.jmcMenu.default.sun.link=http://java.sun.com admin.jmcMenu.default.servlets.name=Servlets admin.jmcMenu.default.servlets.link=http://java.sun.com/products/ servlets admin.jmcMenu.default.jsp.name=JSP admin.jmcMenu.default.jsp.link=http://java.sun.com/products/jsp admin.jmcMenu.default.jdbc.items=jdbc_drivers,jdbc_articles admin.jmcMenu.default.jdbc.name=JDBC admin.jmcMenu.default.jdbc.link=http://java.sun.com/products/jdbc admin.jmcMenu.default.jdbc_drivers.name=Drivers admin.jmcMenu.default.jdbc_drivers.link=http:// industry.java.sun.com/products/jdbc/drivers admin.jmcMenu.default.jdbc_articles.name=Articles admin.jmcMenu.default.jdbc_articles.link=http://java.sun.com/ products/jdbc/articles.html admin.jmcMenu.default.microsoft.name=Microsoft admin.jmcMenu.default.microsoft.link=http://www.microsoft.com 次の図は、 ナビ ゲーシ ョ ン要素 と そのサブ要素が追加 さ れた JMC を示 し ます。 終了ハン ド ラ の使用 61 終了ハン ド ラの使用 JRun でカ ス タ ム終了ハン ド ラ を実装す る こ と に よ っ て、 OEM ユーザは JRun の終了 動作を 制御で き ま す。 た と え ば、 JRun の 終了やエラ ーが 発生し た 場合に、 独自の エラ ー メ ッ セージ を 表示し た り 、 フ ァ イ ルを 消去でき ま す。 既定では、 JRun は次の場合に System.exit() を呼び出 し ます。 終了 コ ー ド 名 説明 終了 コ ー ド 値 RESTART_EXIT 再起動 コ マ ン ド に よ っ て JRun が 終了 し ま し た。 戻 り 値は 5 です。 FATAL_ERROR_EXIT 重大な エ ラ ーに よ っ て JRun が 終了 し ま し た。 戻 り 値は 6 です。 STATUS_RUNNING_EXIT ス テー タ ス コ マ ン ド が受信 さ れ、 JRun は現在実行 さ れています。 戻 り 値は 7 です。 STATUS_NOT_RUNNING_EXIT ス テー タ ス コ マ ン ド が受信 さ れ、 JRun は現在実行 さ れていません。 戻 り 値は 8 です。 通常の終了時には、 JRun に よ っ て System.exit() が呼び出 さ れ ま せん。 jrun.exe (Windows) と シ ェ ル ス ク リ プ ト (UNIX) に よ っ て ス テー タ ス コ ー ド がチ ェ ッ ク さ れ、 JRun を再起動す る 必要があ る か ど う かが判断 さ れます。 OEM ユーザが独自の カ ス タ ム 終了ハ ン ド ラ を 作成で き る よ う に、 JRun には OEM ユーザ用の allaire.jrun.JRunExitHandler イ ン タ ー フ ェ イ ス が含 まれてい ます。 こ の イ ン タ ー フ ェ イ ス には 1 つの メ ソ ッ ド が あ り ます。 void exitJRun(int exitCode) JRunExitHandler を実装す る ク ラ ス の新 し い イ ン ス タ ン ス を生成 し た後、 その JRun ク ラ ス 上で新し い終了ハン ド ラ を 設定でき ま す。こ のイ ン ス タ ン ス は静的なフ ィ ールド に格納 さ れ る ため、 特定の時点でア ク テ ィ ブにで き る 終了ハン ド ラ は 1 つだけです。 第 1 章 OEM リ ソ ース 62 実装例は次の と お り です。 import java.io.*; import allaire.jrun.*; /** * ベース JRunExitHandler ク ラ ス を拡張 し て、 終了を無視する ための * カ ス タ ム実装を行い ます。 */ public class MyJRun implements JRunExitHandler { public static void main(String[] args) throws IOException { JRun.setExitHandler(new MyJRun()); JRun.main(args); } public void exitJRun(int exitCode) { // 終了条件に対応 し た終了 コ ー ド を使用 し て、 // こ こ に終了処理 コ ー ド を記述 し ます。 } } 上記の サ ン プル ク ラ ス では JRunExitHandler が実装 さ れ ま す。 main() メ ソ ッ ド に よ っ てク ラ ス がイ ン ス タ ン ス 化さ れ、 JRun 上で終了ハン ド ラ が設定さ れ、 次に JRun が 呼び出さ れま す。 JRun が異常終了する か、 再起動要求を 受信する と 、 JRun の既定の exitJRun() の代わり に、 新規のカ ス タ ム exitJRun() メ ソ ッ ド が呼び出さ れま す。 第2章 ホス テ ィ ン グ /ISP この章には、 イ ン ターネ ッ ト サービ ス プロバイ ダ (ISP)、 Web ホ ス テ ィ ング会社、 および その他の上級 JRun ユーザ向けの情報が含まれています。 目次 • JRun での ロ ー ド バ ラ ン ス と ク ラ ス タ リ ン グ .......................................................... 64 • JMC へのア ク セ ス の保護 .......................................................................................... 67 • JRun 環境の保護 ........................................................................................................ 71 • JRun での ロ グ記録 .................................................................................................... 81 • 既定のアプ リ ケーシ ョ ンの設定 ............................................................................... 82 • リ ソ ース使用率の制限............................................................................................... 83 • 平行処理の設定.......................................................................................................... 85 • 接続プール ................................................................................................................. 88 • Active Server Pages と JRun の統合 (IIS のみ)......................................................... 93 • JRun メ ト リ ッ ク の使用 ............................................................................................. 96 第 2 章 ホス テ ィ ン グ /ISP 64 JRun でのロー ド バラ ン ス と ク ラ ス タ リ ング 専用ホ ス テ ィ ン グ環境では、 JRun サーバー、 Web サーバー、 デー タ ベー ス、 お よ び その他のサーバーは異な る マシ ン上に配置で き ます。 JRun お よ び Web サーバーの複 数の イ ン ス タ ン ス を使用す る こ と に よ り 、複数のプ ロ セ ッ サ間に負荷を分散で き ます。 ロ ー ド バ ラ ン ス だけでな く 、 ア ラ ーム通知やフ ェ イ ルオーバのサポー ト も 利用で き ま す。 こ れ ら の機能は、 JRun の Enterprise 版に含まれ る Allaire ClusterCATS に よ っ て 提供 さ れます。 ClusterCATS は、 JRun Enterprise 版に含ま れている ソ フ ト ウ ェ アベース のロ ード バラ ン スおよびク ラ ス タ リ ング ソ リ ュ ーシ ョ ンです。ClusterCATS のロ ード バラ ンス およ びク ラ ス タ リ ング ツールを使用するには、 ク ラ ス タ内のすべてのサーバーに ClusterCATS を イ ン ス ト ールす る 必要があ り ます。 こ のセ ク シ ョ ン では、 ClusterCATS で提供 さ れ る テ ク ノ ロ ジ を紹介 し ま す。 詳細は、 『Allaire ClusterCATS の使用』 を参照 し て く だ さ い。 概要 ClusterCATS を 使用する と 、 Web アプリ ケーショ ン を サポート する 適切なク ラ ス タ を 簡 単に作成、 最適化、 お よ び保守で き ます。 ClusterCATS は、 Windows NT、 Solaris、 お よ び Linux プ ラ ッ ト フ ォ ーム で動作 し 、 Microsoft IIS、 Netscape Enterprise Server、 Apache などの主要な基幹業務 Web サーバーと 連動し ます。 ClusterCATS は、 リ モー ト で 管理で き ます。 ClusterCATS には次の強力な機能が含まれてい ます。 • 負荷 し き い値 と 転送 し き い値を サーバーご と に設定 し ます。 • アプリ ケーショ ン 対応ロ ード バラ ン ス 機能と セッ ショ ン 対応ロ ード バラ ン ス 機能を 使用 し て ロ ー ド バ ラ ン ス方式を最適化 し ます。 • エ ラ ーを自動的に検出 し て復旧 し ます。 • 使用可能なサーバーに ト ラ フ ィ ッ ク を自動的に転送 し ます。 • 管理者に問題を自動的に通知 し ます。 次のセ ク シ ョ ンでは、 こ れ ら の方法について簡単に説明 し ます。 フ ェ イルオーバ 使用不能になっ たサーバーを 冗長サーバーにフ ェ イ ルオーバする 機能は基幹業務アプリ ケーシ ョ ンに不可欠であ り 、 こ れに よ っ てアプ リ ケーシ ョ ンの信頼性の高い継続的な 動作が保証さ れま す。 サーバーのフ ェ イ ルオーバは、 ClusterCATS イ ンス ト ールの実行中 に選択する オプショ ンです。 JRun でのロ ー ド バ ラ ン ス と ク ラ ス タ リ ン グ 65 負荷 し き い値 ClusterCATS は、 ク ラ ス タ リ ン グ さ れたサーバーに対す る HTTP ト ラ フ ィ ッ ク の量を 識別 し て管理す る こ と に よ っ て、顧客の Web アプ リ ケーシ ョ ンが常に最適なパフ ォー マ ン ス で動作す る よ う に し ます。 ク ラ ス タ 内の各サーバーで負荷 し き い値を設定す る こ と に よ っ て、 Web サ イ ト の可用性お よ びパ フ ォーマ ン ス を制御 し 、 管理で き ます。 し き い値の設定は、多く の場合、Web サイ ト のアーキテク チャ と 一連の処理リ ソ ース を ど こ に割 り 当て る かに よ っ て決ま り ます。 HTTP 転送時に、 ClusterCATS は HTTP サーバーのス テート と JRun サーバーの負荷に 基づいて ク ラ ス タのステー ト を評価し ます。 この方式は、集中型および分散型のいずれの ClusterCATS 構成でも 同じ です。 すべての Web サーバーが 1 つのサイ ト 上にあ る 集中 型 ClusterCATS ク ラ ス タ の場合、 ClusterCATS は、 サーバーがビ ジー状態か、 ま たは動 作が制限 さ れてい る 場合に限 り 転送 し ます。 ク ラ ス タ メ ンバご と に、 2 つの負荷 し き い値を設定で き ます。 • 完全転送 し き い値 サーバーが、 そのパフ ォ ーマン ス を 著し く 低下さ せない程度に、 あ る いは使用不能にな ら ない程度に処理で き る 最大負荷を表 し ます。 • 漸次転送 し き い値 サーバーのパフ ォーマ ン ス が低下 し ない う ちに、 あ る いは使用 不能にな る 前に、 サーバーが ク ラ ス タ 内の負荷の少ないほかのサーバーに HTTP 要求の転送を開始す る 時点を表 し ます。 負荷 し き い値の設定方法の詳細は、 『ClusterCATS の使用』 を参照 し て く だ さ い。 JRun プ ローブの使用 JRun プ ロ ーブは、 顧客の ク ラ ス タ リ ン グ さ れたサーバー上で JRun サーバーが正常に 動作 し て い る こ と を 確認す る ClusterCATS の高可用性機能です。 こ れ ら は、 特定の JRun URL を定期的にテ ス ト し 、 返 さ れ る ページに含まれ る ユーザ定義文字列 と 比較 し てその妥当性を確認 し ます。 ト ラ フ ィ ッ ク の転送 妥当性テ ス ト が成功する と 、 着信 HTTP 要求はプ ロ ーブが存在する サーバーに引き続き 送信さ れま す。 ただし 、 テス ト が失敗し た場合は (URL が見つから ない、 タ イ ムアウ ト し た、 ま たはアク セス さ れたページ内のユーザ指定文字列が返さ れない場合)、 ClusterCATS はサーバーを制限 し 、 ク ラ ス タ 内の使用可能なほかのサーバーに要求を転送 し ます。 ClusterCATS は制限 さ れたサーバーのテ ス ト を続行 し 、 制限 さ れたサーバーはプ ロ ー ブが有効な値を返す と すぐ に使用可能であ る と みな さ れます。 第 2 章 ホス テ ィ ン グ /ISP 66 フ ェ イルオーバ JRun サーバーがハングするか故障し た場合、 ClusterCATS は障害のあ るサービ スの復旧 を試みます。 JRun サービ ス が復旧す る と 、 プ ロ ーブは JRun サーバーを再起動 し 、 そ のサーバーへの HTTP ト ラ フ ィ ッ ク の送信を開始 し ます。 JRun プロ ーブの使用方法の詳細は、 『Allaire ClusterCATS の使用』 を 参照し てく ださ い。 管理者ア ラ ーム通知の使用 ClusterCATS のア ラ ーム通知機能を使 う と 、 ク ラ ス タ 内で発生す る 重要な イ ベン ト に ついて即座に フ ィ ー ド バ ッ ク を得 る こ と がで き ます。 イ ベン ト に よ り ア ラ ームが発生 す る と 、 ClusterCATS が 1 人ま たは複数のユーザに電子 メ ールで通知 し ます。 次の表は、 発生する 可能性があ る イ ベン ト と 、 イ ベン ト ご と の通知ス ケ ジ ュ ールの 一覧です。 イ ベン ト タ イ プ 通知の タ イ ミ ング デ ィ ス ク の障害 即時 HTTP サーバーの障害 即時 サーバー ビ ジー警告 24 時間ご と サーバーへ未着信 即時 Web サーバー フ ェ イ ルオーバ 即時 JRun プ ロ ーブの障害 即時 選択し たイ ベン ト が発生する と 、 ClusterCATS によ っ て、 指定し たユーザに電子メ ール メ ッ セージが送信さ れま す。 アラ ーム 通知の使用方法の詳細は、 『Allaire ClusterCATS の使用』 を 参照し てく ださ い。 JMC へのア ク セ スの保護 67 JMC へのア ク セスの保護 JRun は、 JRun 管理 コ ン ソ ール (JMC) を使用 し て管理 さ れま す。 JMC は、 JRun サー バー、 JRun サーバーに関連付けら れている JRun Web サーバー 、 およ び外部 Web サー バー接続を設定す る ためのブ ラ ウ ザベース の管理ユーテ ィ リ テ ィ です。 既定では、 JMC は、 admin JRun サーバー上で、 admin JRun サーバーに関連付け ら れ ている JRun Web サーバー (JWS) と 連動し ま す。 外部 Web サーバーと は接続さ れま せん。 通常、 admin サーバーの JWS にはポー ト 8000 を介 し てア ク セ ス し ます。 JMC へのリ モート ア ク セス を 許可する 場合は、 その設定時に予防措置を 講じ て おく 必要があ り ます。 JMC を保護す る 方法には、 次の も のがあ り ます。 • ユーザの管理 • 外部 Web サーバーを介 し た admin JRun サーバーへの安全な リ モー ト ア ク セ ス の 提供 • JMC にア ク セ スす る 際の、 ホ ス ト ベース の認証の使用 こ のセ ク シ ョ ンでは、 こ れ ら の方法について説明 し ます。 JMC ユーザの管理 新規 JMC ユーザ ア カ ウ ン ト を追加する 際は、 次の点に注意 し て く だ さ い。 • Java の設定 ユーザは、 自分の JRun サーバーの [Java の設定] パネルにア ク セスでき ます。 これに よ り 、 JRun 環境にその他の変更を加え るだけでな く 、 Java 引数を追加および削除し、 それら の JVM の ク ラ スパス設定を変更でき ます。 こ れは、 リ ソースやセキ ュ リ テ ィ 上 の問題と な る可能性があ り ます。 [Java 引数] フ ィ ール ド の使用を制限する、 作成 し た ポ リ シーを強制す る か、ま たはネ ッ ト ワ ー ク OS を使用 し て フ ァ イ ル権限に制限を 加え る こ と を検討 し て く だ さ い。 • パス ワー ド JMC への リ モー ト ア ク セ ス を許可する 場合は、 JMC のユーザが必ず推測 し に く い パス ワ ード を 使用し 、 頻繁にパス ワ ード を 変更する よ う にし てく ださ い。現在の実装 では、 一定期間後にユーザにパ ス ワ ー ド を変更す る よ う に警告す る こ と も 、 推測 し にく いパス ワ ード を 選択する よ う に強制する こ と も あり ま せん。admin パス ワ ード を 推測 し に く い も のに し 、 頻繁に変更する よ う に し て く だ さ い。 • JWS の制限 JMC ア プ リ ケ ーシ ョ ン は、 既定では、 admin JRun サーバー上で実行 さ れ ま す。 admin JRun サーバーは、 ユーザのニーズを 満たすのに十分に強力な Web サーバー ではあり ま せん。 その場合は、 admin JRun サーバーを 外部の Web サーバーに接続 でき ま す。 詳細は、 68 ページの 「外部 Web サーバーを介 し た JMC への リ モー ト ア ク セ ス」 を参照 し て く だ さ い。 第 2 章 ホス テ ィ ン グ /ISP 68 各顧客に対し て、顧客独自の JRun サーバー、および 1 つ以上の JMC ユーザ アカ ウ ン ト を 提供で き ます。 顧客は、 データ ソ ースの変更、 アプ リ ケーシ ョ ンの追加 と 削除、 および その他の タ ス ク を行 う ために、 JMC 内の JRun サーバー設定値へのア ク セ ス権が必要 と な る場合があ り ます。 JRun 管理者は、 JMC の [ ユーザの管理 ] パネルを使っ てユーザ ア カ ウ ン ト を作成 し 、 1 つ以上の JRun サーバーへの顧客のア ク セ ス を制限で き ます。 ま た、 PropertyScript の adduser デ ィ レ ク テ ィ ブを使用 し て、 JMC ユーザの追加、 変更、 お よ び削除プ ロ セ ス を自動化で き ます。 PropertyScript ユーテ ィ リ テ ィ の使用方法の詳細は、 30 ページ の 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を参照 し て く だ さ い。 外部 Web サーバーを介 し た JMC への リ モー ト ア ク セス jmc-app を実行する JWS は、 ユーザのニーズを満たすこ と のでき る 強力な Web サーバー ではあ り ません。 その場合は、 admin JRun サーバーを Apach や IIS な ど の外部 Web サーバーに接続で き ます。 その後、admin サーバーの JWS を無効に し ます。 こ れによ り 、 ユーザや顧客は JMC に安全に リ モー ト ア ク セス を行 う こ と ができ ます。 外部 Web サーバーを介 し た JMC への リ モー ト ア ク セス を設定するには 1 admin JRun サーバーを外部 Web サーバーに接続 し ます。 こ れ ら のサーバーが分散環境にあ る 場合は、 コ ネ ク タ ウ ィ ザー ド を使用 し て接続 す る か、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 の説明に従っ て接続 し ます。 2 接続を テ ス ト し ます。 たと えば、 外部の Web サーバーがポート 8001 上で受信し ている 場合、 次の URL を 開 き ます。 http://www.yourdomain.com:8001/security/login.jsp JMC ロ グ イ ン ページが表示 さ れます。 3 JMC に接続 さ れてい る JWS を停止 し ます。 こ れに よ り 、 新たに接続 さ れた外部 Web サーバーを 介し てのみ JMC にアク セス でき る よ う になり ま す。 こ れを 行う には、 admin サーバーの local.properties フ ァ イ ル内の servlet.services プ ロ パ テ ィ か ら web サービ ス を削除 し ます。 # was:servlet.services=jndi,jdbc,{servlet.webapps},jcp,web servlet.services=jndi,jdbc,{servlet.webapps},jcp 4 admin JRun サーバーを再起動 し ます。 あ る いは、 admin サーバーを外部 Web サーバーに接続す る のではな く 、 admin サー バーの JWS の ク ラ イ ア ン ト IP フ ィ ル タ設定を編集す る こ と も 可能です。 こ の設定は、 JMC の [JRun Web サーバー] パネルで行 う こ と がで き ます。詳細は、69 ページの 「JWS へのホ ス ト ベース の認証の設定」 を参照 し て く だ さ い。 JMC へのア ク セ スの保護 69 JWS へのホス ト ベースの認証の設定 JWS 上で jmc-app を実行する 場合 (既定の設定) は、JMC の [JRun Web サーバー] パネルを 使用し てホ ス ト ベースの認証を指定で き ます。 ク ラ イ アン ト IP フ ィ ルタ設定は、 JWS に アク セス でき る IP ア ド レ ス の定義さ れている 一覧と 照合する こ と によ っ て、 要求元に 基づいてア ク セ ス を制御 し ます。 メモ 既定では、 JWS はすべての ク ラ イ ア ン ト か ら の要求を受け入れます。 JWS の ク ラ イ ア ン ト IP フ ィ ル タ を編集するには 1 JMC の左側のペイ ンで、 [ マシン 名 ] > [ JRun サーバー名 ] > [JRun Web サーバー ] を 選択 し ます。 [JRun Web サーバー ] パネルが表示 さ れます。 2 右側のペ イ ンで、 [ ク ラ イ ア ン ト IP フ ィ ル タ ] フ ィ ール ド を ク リ ッ ク し ます。 JRun Web サーバーの編集ウ ィ ン ド ウ が表示 さ れます。 第 2 章 ホス テ ィ ン グ /ISP 70 3 IP ア ド レ ス を入力 し ます (複数の場合はカ ンマで区切 り ます )。 上記の IP ア ド レ ス を使用する ク ラ イ アン ト のみが、JRun Web サーバーと そのアプ リ ケーショ ン にアク セス でき ま す。アス タ リ ス ク (*) は、すべてのク ラ イ アン ト がその Web サーバーにアク セス でき る こ と を 意味し ま す。 * を 、 リ モート 管理を 実行する ユーザの IP アド レ ス に変更でき ま す。 ク ラ イ アン ト IP フ ィ ルタ設定は、 こ こ で定義された IP ア ド レ ス と 照合する こ と によ って、要求元に 基づいてア ク セ ス を制御 し ます。 こ の方法は、フ ァ イ ア ウ ォールま たは ク ラ イ ア ン ト マシ ンの真の ID を マ ス ク す る ほかのサービ ス を介 し て JMC にア ク セ スす る 場合に問題 と な る こ と が あ り ます。 こ の場合、 68 ページの 「外部 Web サーバーを介 し た JMC への リ モー ト ア ク セ ス」 で説明 さ れてい る よ う に、 JWS を無効に し 、 外部 Web サーバーへの接続を介 し て jmc-app にア ク セ スする 必要があ り ます。 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 JRun 環境の保護 71 JRun 環境の保護 こ のセ ク シ ョ ン では、 共有ホ ス テ ィ ン グ環境での JRun アプ リ ケーシ ョ ン サーバーの 保護に関す る 問題について説明 し ます。 Java ア プ リ ケーシ ョ ン サーバーの概要 各 JRun サーバーは、 JRun サーバー起動時、 サーバー独自の Java Virtual Machine (JVM) に ロ ード さ れま す。 その JVM は、 JRun サーバーがコ ン パイ ルし て、 実行する サーブレ ッ ト 、 EJB、 およ び JSP のみを 実行し ま す。 こ れによ り 、 各 JRun サーバーがほかの JRun サーバーの動作に影響を与え る こ と がな く な り 、 JRun サーバーが保護されます。 その結 果、 default JRun サーバー と その JVM が応答を停止し て も 、 ほかのすべての JRun サー バーと その JVM は問題な く 動作し ます。 次は、JVM およびサーブレ ッ ト エンジンの特性の一部を示し た概要で、JRun サーバーが それ ら の関連 JVM と ど の よ う に対話す る かについて説明 し ます。 • JRun サーバーは、 サーブ レ ッ ト 、 EJB、 お よ び JSP ス レ ッ ド を処理 し ます。 • JVM は、 オブジ ェ ク ト ク ラ ス フ ァ イ ルを ロ ー ド し て検証 し ます。 こ れに よ り 、 ク ラ ス の不正な動作を防ぐ こ と がで き ます。 • JVM は、 アプ リ ケーシ ョ ンの メ モ リ 管理を処理 し ます。 JVM メ モ リ 使用率の監視 方法の詳細は、 83 ページの 「 リ ソ ース使用率の制限」 を参照 し て く だ さ い。 • JVM はガーベ ッ ジ コ レ ク シ ョ ン を実行 し ます。 • Java の例外処理に よ っ て、 例外は捕捉 さ れ る ま で、 呼び出 し 元の ス タ ッ ク に伝搬 さ れ ます。 例外が明示的に捕捉 さ れない場合は、 JVM が ク ラ ッ シ ュ す る こ と な く 例外を捕捉 し ます。 • JVM 命令セ ッ ト は メ モ リ を直接示 さ ず、 それ自体の入出力命令はあ り ません。 そ の代わ り 、 JVM は、 ネ イ テ ィ ブ ラ イ ブ ラ リ を介 し て下位シ ス テ ム と 通信 し ます。 こ れ ら のネ イ テ ィ ブ ラ イ ブ ラ リ は、 Java セキ ュ リ テ ィ マネージ ャ での権限の検証 後にのみア ク セ ス で き ま す。 Java セ キ ュ リ テ ィ マネージ ャ の使用方法の詳細は、 72 ページの 「Java セキ ュ リ テ ィ について」 を参照 し て く だ さ い。 第 2 章 ホス テ ィ ン グ /ISP 72 Java セキ ュ リ テ ィ について サーブレ ッ ト /JSP ホ ス テ ィ ング を提供する場合は、Java アプ リ ケーシ ョ ン環境に対し て 厳密なセキ ュ リ ティ マネージャ およ びポリ シー フ ァ イ ルを 設定する こ と でメ リ ッ ト が 得ら れま す。 こ れによ り 、 JVM のシャ ッ ト ダウ ンやシス テム フ ァ イ ルへの書き 込みなど 、 望ま し く ない結果を 生じ る サーブレ ッ ト ま たは JSP を 顧客が実行でき ないよ う にする こ と ができ ま す。 メモ ただ し 、 フ ァ イ ア ウ ォ ール、 OS レ ベルのセ キ ュ リ テ ィ 、 お よ びその他の従来の方法 な ど のセキ ュ リ テ ィ 方法に代わ る も のはあ り ません。 こ のセ ク シ ョ ンでは、 Java セキ ュ リ テ ィ マネージ ャ を使用 し て、 代表的な ISP アーキ テク チャ に対し て JRun イ ンス ト ールを設定する 方法を説明し ま す。 ただし 、 こ のト ピ ッ ク は内容が膨大で複雑なため、 ほかの参考資料も 参照する 必要があり ま す。 Java セキ ュ リ テ ィ マネージ ャ の使用 Java 言語で構築さ れたセキュ リ ティ マネージャ を使用し て、 ユーザがアク セス する ク ラ ス および メ ソ ッ ド を制御で き ます。 こ れを行 う には、 java.policy フ ァ イルを作成し、 その ポ リ シー フ ァ イルを JRun サーバーの Java 引数で指定し ます。 Java セキ ュ リ テ ィ マネージ ャ を使用するには 1 2 目的の権限が含まれてい る java.policy フ ァ イ ルを編集 し ます。 JRE の java.security フ ァ イ ルに、 こ の新規 java.policy フ ァ イ ルを参照す る policy.url を追加 し ます。 3 JMC の Java Arguments プ ロ パテ ィ を変更 し ます。 4 JRun サーバーを再起動 し ます。 次のセ ク シ ョ ンで、 手順 1 ~ 3 を詳 し く 説明 し ます。 JRun 環境の保護 73 java.policy フ ァ イルの編集 既定の java.policy フ ァ イ ルは、 <jdk>\jre\lib\security に あ り ま す。 新規のポ リ シー フ ァ イ ルを作成 し 、 目的の場所にその フ ァ イ ルを格納 し ま す。 ただ し 、 こ の場合は、 java.security フ ァ イ ル内に新規の場所を指定す る 必要があ り ます。 既定の場所を使用 する場合も 、 java.security フ ァ イル内でその場所を明示的に示す必要があ り ます。 後で、 Java 引数 と し て java.security フ ァ イ ルの場所を JMC 内で指定 し ます。 既定のポリ シー フ ァ イ ルでは、Java 拡張ディ レ ク ト リ から ロ ード さ れたすべてのク ラ ス に 対し てすべてのア ク セ ス権が与え ら れます。 シ ス テム以外の ク ラ スには、 リ ス ト さ れて いる シ ステム プ ロパテ ィ に対する読み取 り 権が与え ら れ、1024 よ り 大きいポー ト 番号を 持つ ソ ケ ッ ト を使用 し て応答で き ます。 その他の ク ラ スはすべて、 ス レ ッ ド の stop メ ソ ッ ド を 呼び出すこ と ができ ま す。 ポ リ シー フ ァ イ ルは、 手作業で編集す る か、 Sun の JDK に含まれてい る policytool アプリ ケ ーショ ン を 使っ て編集でき ま す。 policytool 使用方法の詳細は、 Sun の Java マニ ュ アルを参照 し て く だ さ い。 ポ リ シー フ ァ イルのサン プル こ のセク ショ ン に記載する サン プル ポリ シー フ ァ イ ルには、ISP に適し ている 設定値が 一部含ま れていま す。 サン プルでは、 顧客がサーブレ ッ ト と JSP の処理に default JRun サーバーを使用す る こ と を前提 と し てい ます。 こ のポ リ シー フ ァ イルは、 JRun の基本機能に必要な権限を提供し ます。 こ の権限には、 JSP の処理、サーブレ ッ ト の動的な再ロ ード 、シス テムおよ び JRun プロ パティ の読み取り 、 ロ グへの書き 込み、サーブレ ッ ト /JSP での sendRedirect およ び RequestDispatcher の 使用があり ま す。 ただし 、 複数ユーザのためのポリ シー、 JDBC ド ラ イ バを使用する データ ベース への接続に対する アク セス 権、 JNI のためのネイ ティ ブ ラ イ ブラ リ のロ ード など 、 よ り 複雑な設定には対応し ていま せん。 このフ ァ イルを使用するには、 自分のフ ァ イル システム と JRun イ ン ス ト ールに一致する よ う に、 すべてのディ レ ク ト リ と ポート を 変更し ま す。 こ のフ ァ イ ルは、 admin JRun サーバー (8000)、 default JRun サーバー (8100)、 およ び proxyport (55555) については 既定のポー ト を想定し ていますが、 設定に適合する よ う にポー ト を変更でき ます。 java.policy フ ァ イ ルのカ ス タ マ イ ズ、 独自の java.policy フ ァ イ ルの作成、 お よ び Java セキ ュ リ テ ィ アーキテ ク チャの知識に関する 追加情報については、Java のマニュ アルを 参照 し て く だ さ い。 第 2 章 ホス テ ィ ン グ /ISP 74 java.policy フ ァ イルのサン プル /* こ の フ ァ イルは例示を目的 と し てお り 、 実際の実装には適 し ていません。 */ grant { permission permission permission permission java.io.FilePermission java.io.FilePermission java.io.FilePermission java.io.FilePermission "D:\\JRun3", "read"; "D:\\JRun3\\-", "read"; "D:\\JRun3\\logs\\*", "read,write"; "D:\\JRun3\\lib\\*", "read"; /* /servlets デ ィ レ ク ト リ にサーブ レ ッ ト を格納する旧式 メ ソ ッ ド をサポー ト する には、 次のア ク セ ス権を コ メ ン ト 解除 し ます。 */ // permission java.io.FilePermission "D:\\JRun3\\servlets", "read, write"; permission java.io.FilePermission "C:\\jdk1.2.2\\jre\\lib\\-", "read"; permission java.io.FilePermission "C:\\jdk1.2.2\\lib\\tools.jar", "read"; permission java.io.FilePermission "D:\\JRun3\\servers\\default\\default-app\\WEB-INF\\-", "read, write"; permission java.io.FilePermission "D:\\JRun3\\servers\\default\\default-app\\WEB-INF\\jsp, "delete"; permission java.io.FilePermission "<<ALL FILES>>", "execute"; /* JRun を介 し てネ イ テ ィ ブ Web サーバーか ら ド キ ュ メ ン ト を使用可能にする場合は、 次のア ク セ ス権を コ メ ン ト 解除 し 、 Web サーバーの ド キ ュ メ ン ト ルー ト に一致 さ せます。 */ // permission java.io.FilePermission "C:\\Inetpub\\wwwroot\\-", "read"; permission permission permission permission permission permission permission permission permission permission permission permission } java.net.SocketPermission "127.0.0.1:8000", "accept,listen,resolve"; java.net.SocketPermission "127.0.0.1:8100", "accept,listen,resolve"; java.net.SocketPermission "127.0.0.1:1024-", "accept,resolve"; java.net.SocketPermission "127.0.0.1:51000", "accept,listen,resolve"; java.net.SocketPermission "*.com", "connect,resolve"; java.net.SocketPermission "*.org", "connect,resolve"; java.net.SocketPermission "*.net", "connect,resolve"; java.util.PropertyPermission "*", "read"; java.lang.RuntimePermission "setIO"; java.lang.RuntimePermission "exitVM"; java.lang.RuntimePermission "stopThread"; java.lang.RuntimePermission "createClassLoader"; JRun 環境の保護 75 java.security への policy.url の追加 JRE が新規の セ キ ュ リ テ ィ フ ァ イ ル を 認識す る 前に、 JRE の <java_home>/jre/lib/ security/java.security フ ァ イ ル内に、 java.policy フ ァ イ ルの policy.url を追加す る 必要があ り ます。 た と えば、 フ ァ イ ルに 次の 3 行を追加 し ます。 policy.url.1=file:${java.home}/lib/security/java.policy policy.url.2=file:${user.home}/.java.policy policy.url.3=file:/D:/path/to/your_jrun.policy 既定の java.policy フ ァ イ ル を 変更 し 、 それ を 既定の場所に配置 し ておい た場合は、 java.security フ ァ イ ル内に新 し い場所を指定す る 必要はあ り ません。 JMC での Java 引数の変更 新規のポ リ シー フ ァ イ ルを 参照する java.security フ ァ イ ルを JVM が読み込め る よ う に、 JVM への引数 と し て java.security.manager を追加す る 必要があ り ます。 JRun サーバーにはそれぞれ独自の Java 引数セッ ト があり 、 JVM の初期設定時に JVM に渡 さ れま す。 こ の設定値は、 JRun サーバーの local.properties ファ イ ル内に user.javaargs と し て格納さ れていま す。 こ のセク ショ ンでは、 JMC を使用し て user.javaargs プロ パ ティ の設定を変更する 方法について説明し ま す。 JVM の java.policy フ ァ イルを指定するには 1 JMC の左側のペ イ ンで、[ マシ ン名 ] > [JRun サーバー名 ] > [Java の設定] を選択 し ます。 [Java の設定] パネルが表示 さ れます。 2 右側のペ イ ンで [編集 ] を ク リ ッ ク し ます。 Java 設定値の編集ウ ィ ン ド ウ が表示 さ れます。 第 2 章 ホス テ ィ ン グ /ISP 76 3 [Java 引数] フ ィ ール ド で、 JRun が JVM を起動する と きに JVM 実行可能モジ ュール に渡す引数を入力し ます。 次に例を示し ます。 -Djava.security.manager 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 ポ リ シー フ ァ イルの保護 ポ リ シー フ ァ イ ルを保護する には次の よ う な方法があ り ます。 • JRun プ ロ セスがフ ァ イルへの書き込み権限を持っていないフ ァ イル シ ステム上に java.policy お よ び java.security フ ァ イ ルを保存 し ます。 • ユーザがポ リ シー フ ァ イルを制御で き ない よ う に、 JMC へのア ク セス権をユーザに 与え ない よ う に し ます。 • user.javaargs プ ロ パテ ィ は、 JRun サーバーの local.properties フ ァ イ ルに保存 さ れてい ます。 JRun サーバーの local.properties フ ァ イ ルを読み取 り 専用にす る こ と によ って、ユーザがポリ シー フ ァ イ ルを 制御でき ないよ う にする こ と ができ ま す。 こ の方法を 使用する と 、 ユーザに JMC へのア ク セス 権を 与え る 一方で、 それら の 設定値を ユーザが変更でき ないよ う にする こ と が可能です。 74 ページのサンプル ポリ シー フ ァ イ ルでは、JMC を 介し て JRun のプロ パティ フ ァ イ ルを 変更する 権限は設定さ れていま せん。 ユーザ独自の JRun サーバーの設定値を ユーザが 変更でき る よ う にする には、JMC へのアク セス 権を ユーザに与え、プロ パティ フ ァ イ ルの デ ィ レ ク ト リ 内のフ ァ イルへの書き込み権限を追加し ます。 JMC ユーザの詳細は、 67 ページの 「JMC ユーザの管理」 を参照 し て く だ さ い。 JRun シ ス テムの保護 分散環境でセキュ リ ティ を 実装する 場合には検討事項がいく つかあ り ま すが、こ のセク ショ ン では、 ユーザが実行でき る 次の JRun 固有のアク ショ ン について説明し ま す。 • admin サーバーの JWS を オ フ に し ます。 既定の JRun イ ン ス ト ールでは、 admin JRun サーバーなど の JRun サーバーご と に Web サーバーがセッ ト アッ プさ れま す。 JWS のシ ャ ッ ト ダ ウ ンの詳細は、 77 ページの 「JWS をオ フ にす る 方法」 を参照 し て く だ さ い。 • ホス ト ベース認証を設定 し ます。 。 JRun には、 JRun サーバー と 外部 Web サーバー 間の通信を 他者から 防御する 基本的なメ カ ニズム が用意さ れていま す。 こ の設定の 詳細は、 77 ページの 「コ ネ ク タ のホ ス ト ベース認証の設定」 を参照 し て く だ さ い。 • admin サーバーの JWS を SSL 対応にし ます。 。 JRun では、 Sun の JDK を 使用する 場合に JRun Web サーバー (JWS) を拡張する ための Secure Socket Layer (SSL) プ ロ ト コルの使用がサポー ト さ れています。 こ れによ り 、 ユーザが安全な ソ ケ ッ ト を介し て ア ク セ ス で き る よ う に、 admin JRun サーバーに SSL を 適用で き ま す。 詳細は、 『JRun セッ ト アッ プ ガイ ド 』 を 参照し てく ださ い。 • 既定サーブ レ ッ ト を無効に し ます。 JRun 環境の保護 77 JWS を オ フ にする方法 JRun を イ ン ス ト ールする と 、 default および admin の 2 つの JRun サーバー と 、 こ れら のサーバーに接続された 2 つの all-Java JWS が作成 さ れます。 既定では、 こ れ ら の Web サーバーはそれぞれ ポー ト 8000 と 8100 で応答し ます。 ほ と んどの ISP では受信ポー ト ア ク セ ス を フ ァ イ ア ウ ォールで制限 し てい ますが、 使用 し ないサービ スはオ フ にす る 必要があ り ます。 こ のセ ク シ ョ ンでは、 JRun サーバーの JWS をオフにする 方法につい て説明 し ます。 メモ admin サーバーの JWS を オフ にす る と 、 JMC を開 く こ と がで き な く な り ます。 JRun の リ モー ト 管理を行 う には、 admin JRun サーバーを よ り 強力な外部 Web サーバーに 接続す る 必要があ り ます。 リ モー ト 管理の詳細は、 68 ページの 「外部 Web サーバーを 介 し た JMC への リ モー ト ア ク セ ス」 を参照 し て く だ さ い。 JWS を オ フ にする には 1 JRun サーバーの local.properties フ ァ イルを開き ます。 このフ ァ イルは、 JRun の ルー ト デ ィ レ ク ト リ /servers/ サーバー名 /local.properties にあ り ます。 2 サーブレ ッ ト サービ スの一覧から web を削除する こ と によ って、 servlet.services プロパテ ィ から web サービ ス を削除し ます。 次に例を示し ます。 # was:servlet.services=jndi,jdbc,web,mail,url,{servlet.webapps},jcp servlet.services=jndi,jdbc,mail,url,{servlet.webapps},jcp 3 JRun サーバーを再起動 し ます。 コ ネ ク タ のホス ト ベース認証の設定 JRun を実行す る マシ ン と Web サーバーを実行す る も う 1 台のマシ ン間の接続を作成 し た ら 、承認さ れていないユーザが JRun サーバーにア ク セスでき ない よ う にする必要が あり ま す。 こ れを行う ために、 JRun には、 JRun コ ネク タ 用のホス ト ベース 認証が用意さ れ ていま す。 こ れに よ り 、 IP ア ド レ スの定義済みセ ッ ト のホ ス ト だけが、 JRun サーバーに 要求を送信でき る よ う にな り ます。 JRun 管理 コ ン ソ ール (JMC) の [外部 Web サーバー] パネルを使用す る と 、特定の JRun サーバー と 通信可能な IP ア ド レ ス を指定で き ます。 現在、 外部 Web サーバー と JRun サーバーの間の ト ラ フ ィ ッ ク を保護す る た めの SSL やその他の暗号化テ ク ノ ロ ジ を 使用す る こ と はで き ません。 メモ 既定の設定では、 JRun サーバーは 「すべての」 IP ア ド レ スか ら の要求を受け付け ます。 第 2 章 ホス テ ィ ン グ /ISP 78 Web サーバー と JRun 間の接続を ロ ッ ク するには 1 JMC の左側のペイ ン で、 [ マシン 名 ] >[JRun サーバー名 ] > [外部 Web サーバー ] を 選択 し ます。 メモ 外部 Web サーバーに JRun サーバーを接続す る 際に、 コ ネ ク タ ウ ィ ザー ド を ま だ 実行 し ていない場合は、 コ ネ ク タ ウ ィ ザー ド を実行す る よ う に要求 さ れます。 [外部 Web サーバー ] パネルが表示 さ れます。 2 右側のペ イ ンで、 [外部 Web サーバー ア ド レ ス ] フ ィ ール ド を ク リ ッ ク し ます。 外部 Web サーバーの編集 ウ ィ ン ド ウ が表示 さ れます。 3 IP ア ド レ ス を入力 し ます ( 複数の場合はカ ン マで区切 り ます )。 JRun サーバーは、 それ ら の IP ア ド レ ス を 持 っ て い る Web サーバーか ら の要求にのみ応答 し ま す。 「 *」 を 入力する と 、 すべての Web サーバーが JRun に要求を 送信でき る よ う になり ま す。 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 JRun 環境の保護 79 既定のサーブ レ ッ ト の無効化 セキ ュ リ テ ィ 上の理由か ら 、JRun に付属お よ び イ ン ス ト ール さ れてい る 既定のサーブ レ ッ ト を無効にで き ます。 こ れ ら のサーブ レ ッ ト には次の も のがあ り ます。 • allaire.jrun.servlets.JRunStats (global.properties 内でのエ イ リ ア スは JRunStats) • allaire.jrun.servlets.MetricsServlet こ れら のサーブレ ッ ト は、 すべて の JRun サーバーにイ ン ス ト ールさ れ、 ア ク ティ ブ にな っ て いま す。 既定値 "True" を 使用し て 、 こ れら のサーブレ ッ ト に対し て 新し い 初期化パ ラ メ ー タ “enabled” を指定で き ます。 こ のパ ラ メ ー タ を False に設定す る と 、 サーブ レ ッ ト 初期化時に UnavailableException が返 さ れます。 こ れに よ っ て、 サーブ レ ッ ト の起動が阻止 さ れます。 ブ ラ ウ ザでは、 こ のサーブ レ ッ ト にユーザがア ク セ ス し よ う と す る と 、 内部サーバー エ ラ ー (500) が表示 さ れます。 "enabled" パ ラ メ ー タ を False に設定す る には次の方法があ り ます。 • global.properties ま たは local.properties フ ァ イ ル内にグ ロ ーバル サーブ レ ッ ト エイ リ アス を 作成し 、"enabled" 初期化パラ メ ータ を False に設定し ま す。たと えば、 次の行を プ ロ パテ ィ フ ァ イ ルに追加 し ます。 allaire.jrun.servlets.MetricsServlet.class=allaire.jrun.servlets. MetricsServlet allaire.jrun.servlets.MetricsServlet.enabled=false プ ロ パテ ィ フ ァ イ ル内でサーブ レ ッ ト の初期化パ ラ メ ータ のエ イ リ ア ス を作成し 、 設定す る ための構文は次の と お り です。 [alias].class=[class] [alias].[initParam1]=[value1] 次に例を示 し ます。 file.class=allaire.jrun.file.FileServlet file.enabled=false すでにエイ リ ア ス が作成さ れて いる JRunStats の場合は、 次の行のみを 追加し て く だ さ い。 JRunStats.enabled=false PropertyScript ツールを使用す る と 、 JRun プ ロ パテ ィ フ ァ イ ルを プ ロ グ ラ ムで 変更でき ま す。 詳細は、 30 ページの 「JRun プ ロ パテ ィ のカ ス タ マ イ ズ」 を 参照 し て く だ さ い。 • web.xml フ ァ イ ル内で初期化パラ メ ータ を 設定し ま す。たと えば、次の行を web.xml フ ァ イ ルに追加し ま す。 <servlet> <servlet-name>allaire.jrun.servlets.MetricsServlet</servlet-name> <servlet-class>allaire.jrun.servlets.MetricsServlet</servlet-class> <init-param> <param-name>enabled</param-name> <param-value>false</param-value> </init-param> </servlet> 第 2 章 ホス テ ィ ン グ /ISP 80 invoker サーブ レ ッ ト の無効化 JRun は、 文字列/サーブレ ッ ト が含ま れている URI を JRun invoker サーブレ ッ ト に関 連付け る、 暗黙的なサーブレ ッ ト マ ッ ピ ン グ機能を備えてい ます。 invoker サーブレ ッ ト を使用する と 、サーブレ ッ ト の ク ラ ス フ ァ イルを、Web アプ リ ケーシ ョ ンの ク ラ スパ ス 内の任意のデ ィ レ ク ト リ に コ ピー し 、 サーブ レ ッ ト を登録せずに参照で き ます。 未登 録のサーブレ ッ ト を参照する には、 フ ォーム内で URL を使用し ます。 http://local_host/app1/servlet/ サーブ レ ッ ト の ク ラ ス名 セキ ュ リ テ ィ およびパフ ォーマン ス上の理由か ら 、必ず、すべてのサーブレ ッ ト について 明示的なマ ッ ピ ングを定義し て く だ さ い。 invoker サーブレ ッ ト に全面的に依存し ないで く ださ い。 運用ア プリ ケ ーショ ン では、 次のマッ ピ ン グ を global.properties フ ァ イ ル か ら コ メ ン ト 化し て く だ さ い。 webapp.servlet-mapping./servlet=invoker JRun でのロ グ記録 81 JRun でのログ記録 ISP は、JRun を利用す る 顧客にア ク テ ィ ビ テ ィ ロ グ を提供 し なければな ら ない場合が あ り ます。 JRun の ロ グは非常に便利で、 特にデバ ッ グや、 パフ ォーマン スお よ び ト ラ フ ィ ッ ク の測定に役立ち ます。 ロ グ フ ァ イ ルには、 次の 3 種類があ り ます。 • Event ロ グ • System.out ロ グ • System.err ロ グ 既定では、 JRun は、 こ れ ら の各 ロ グ フ ァ イ ル を JRun サーバー ご と に作成 し ま す。 フ ァ イ ルは次の命名構文に従っ て、 JRun のルート ディ レ ク ト リ /logs に保存さ れて いま す。 {jrun.server.name}-<log_file_type>.log た と えば、 JRun の既定の イ ン ス ト ールでは、 JRun のルー ト デ ィ レ ク ト リ /logs デ ィ レ ク ト リ 内に、 次の よ う な ロ グ フ ァ イ ルが作成 さ れます。 admin-err.log admin-out.log admin-event.log default-err.log default-out.log default-event.log 特に、 ロ グ に対す る 読み取 り お よ び書 き 込み権限 を すべて の顧客に与 え る 場合は、 JRun サーバーご と に個別の /log デ ィ レ ク ト リ を作成す る こ と をお勧め し ます。 JRun サーバーのログ フ ァ イルを新規デ ィ レ ク ト リ に転送するには 1 JMC の左側のペ イ ンで、 [ マシ ン名] > [JRun サーバー名] > [Java の設定] を選択 し ます。 [Java の設定] パネルが表示 さ れます。 第 2 章 ホス テ ィ ン グ /ISP 82 2 右側のペ イ ンで [編集 ] を ク リ ッ ク し ます。 Java 設定値の編集ウ ィ ン ド ウ が表示 さ れます。 3 Event ロ グ、 System.out ロ グ、 お よ び System.err ロ グ フ ィ ール ド の設定値を変更 し ます。 た と えば、 Event ロ グのロ グ フ ァ イルを転送するには、 [ イベン ト ロ グ ] フ ィ ール ド を {jrun.rootdir}/logs/{jrun.server.name}-event.log か ら /usr/logs/{jrun.server.name}/ {jrun.server.name}-event.log に変更し ます。こ れによ り 、既定サーバー上の JRun は、 c:\logs\default\default-event.log フ ァ イルに書き込みを行え る よ う にな り ます。 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 作業が終了し た ら 、 /usr/logs/default デ ィ レ ク ト リ のプロパテ ィ を編集し て、 その顧客 だけがその フ ァ イ ルの読み取 り お よ び書 き 込みを で き る よ う に設定で き ます。 ロ グ フ ァ イ ルおよびロ グ プ ロパテ ィ の詳細は、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 既定のア プ リ ケーシ ョ ンの設定 local.properties ファ イ ル内の application_name.use-webserver-root プロ パティ は、 JRun サーバーの既定の Web アプ リ ケーシ ョ ン を指定し ます ( アプ リ ケーシ ョ ンの コ ン テキ ス ト パス は / です )。 要求が既存の URL マッ ピ ン グ にマッ プさ れない場合、 JRun は、 その要求を 既定アプリ ケーシ ョ ンに転送 し ます。 use-webserver-root の既定の設定では、 default-app は true に設定さ れ、 ほかのアプ リ ケーショ ン は false に設定さ れる か、 ま たはプロ パティ フ ァ イ ルから 除外さ れま す。 た と えば、 default JRun サーバーの local.properties フ ァ イ ル内には、 次の よ う な行が 表示 さ れます。 default-app.use-webserver-root=true 既定の設定を上書きするには、 local.properties フ ァ イルを手作業で編集する こ と によ り 、 このプロパテ ィ を false に設定 し ます。 JSP では、 こ れを true に設定す る と 、 JRun はアプ リ ケーシ ョ ンのデ ィ レ ク ト リ では な く 、 Web サーバーのルー ト デ ィ レ ク ト リ に関連 し た JSP を検索 し ます。 JRun が要求 を サーブ レ ッ ト お よ び JSP に ど の よ う にマ ッ ピ ン グす る かについ ては、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 の第 6 章を参照 し て く だ さ い。 リ ソ ース使用率の制限 83 リ ソ ース使用率の制限 共有ホ ス テ ィ ング環境では、 各 JRun サーバーと その JVM の リ ソースの使用率を監視する こ と が重要です。 JRun を使用 し た メ モ リ リ ソ ー ス の使用状況の監視には次の 2 つの 方法があ り ます。 • 各 JRun サーバー と JVM の実際の メ モ リ 使用率を調べます。 • 各 JVM の使用可能な メ モ リ を削減ま たは制限 し ます。 次のセ ク シ ョ ンでは、 こ れ ら のオプシ ョ ンについて説明 し ます。 メ モ リ 使用率の判別 JRun には メ ト リ ッ ク ロ グ機能が用意 さ れてい ます。 こ の機能を使用す る と 、 指定 さ れた間隔で JVM ヒ ープ内の総 メ モ リ 容量 と 空 き 容量を詳 し く 記録で き ま す。 た と え ば、 メ ト リ ッ ク ロ グ機能を オンに し 、 次の行を JRun サーバーの local.properties フ ァ イ ルに追加す る と 、 こ のサーバーの JVM の時間の経過に応 じ た メ モ リ 使用率を ロ グ フ ァ イ ルに表示で き ます。 monitor.jcp-format=(jcp),{totalMemory},{{totalMemory}-{freeMemory}} こ れに よ り 、合計 メ モ リ 量 と 使用 メ モ リ 量 (合計量か ら 空 き 容量を引いた も の ) を示す カ ンマ区切 り リ ス ト が出力 さ れます。 ま た、 ス レ ッ ド の使用状況を監視 し て、 ど の仮想ホ ス ト がプ ロ セ ッ サを最 も 長い時間 使用し ている かを 調べる こ と ができ ま す。 JRun のロ グには、 次のよ う なス レ ッ ド メ ト リ ッ ク を 記録でき ま す。 • 現在の ス レ ッ ド 数 • 遅延ス レ ッ ド 数 • アイ ドル スレ ッ ド数 • 合計ス レ ッ ド 数 詳細は、 96 ページの 「JRun メ ト リ ッ ク の使用」 を参照 し て く だ さ い。 JVM メ モ リ 使用率の制限 JMC の [Java の設定] パネルを使用し て、 各 JRun サーバーの JVM の初期 ヒ ープ サ イ ズ と 最大 ヒ ープ サ イ ズ を設定で き ます。 1 JMC の左側のペ イ ンで、 [ マシ ン名] > [JRun サーバー名] > [Java の設定] を選択 し ます。 [Java の設定] パネルが表示 さ れます。 2 右側のペ イ ンで [編集 ] を ク リ ッ ク し ます。 Java 設定値の編集ウ ィ ン ド ウ が表示 さ れます。 3 [Java 引数] フ ィ ール ド で、 JRun が JVM を起動する と き に JVM 実行可能モジ ュール に渡す引数を入力し ます。 第 2 章 ホス テ ィ ン グ /ISP 84 次の表は使用可能な引数の一覧です。 引数 説明 最低 既定 -mx<val>[k|m] JVM の最大 ヒ ープ サ イ ズ 1K 16 MB -ms<val>[k|m] JVM の初期 ヒ ープ サ イ ズ 1K 1 MB -oss<val>[k|m] 各 Java ス レ ッ ド 内におけ る Java コ ー ド のス タ ッ ク サ イ ズ 1K 400 K -ss<val>[k|m] 各 Java スレ ッ ド 内における C コ ード のスタ ッ ク サイ ズ 1K 128 K 上記の各引数では、 キ ロ バ イ ト を示すには k を、 メ ガバ イ ト を示すには m を使用 し て く だ さ い。 値を キ ロバ イ ト (k) で指定する 場合、 値は 1024 の倍数であ る 必要が あ り ます。 こ れら の引数は、 どの JRE ま たは JDK を使用し てい る かに よ っ て異な り ます。 詳細は、 JVM のマニ ュ アルを参照 し て く だ さ い。 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 JVM セキ ュ リ テ ィ ユーザが JMC を 介し て JRun サーバーにアク セス でき る 場合は、[Java の設定] パネルの [Java 引数] フ ィ ール ド の値を変更でき ます。 こ れは、 リ ソースやセキ ュ リ テ ィ 上の問題と な る可能性があ り ます。 [Java 引数] フ ィ ール ド の使用を制限する、 記述されたポ リ シーを 作成および実行するか、 またはネ ッ ト ワーク OS を使用し てフ ァ イル権限に対し て制限を 加え る こ と を検討し て く だ さ い。 共有ホ ス テ ィ ン グ環境におけ る セキ ュ リ テ ィ の実施に ついては、 71 ページの 「JRun 環境の保護」 を参照 し て く だ さ い。 平行処理の設定 85 平行処理の設定 JRun と 外部 Web サーバー間のコ ネク タ の構成には、 並行処理設定の最適化が含ま れま す。 並行処理は、 HTTP 要求を プール し 、 分散す る 方法を定義 し ます。 こ れ ら の設定値を 変更す る こ と に よ っ て、 各 JRun サーバーに よ っ て処理 さ れ る ス レ ッ ド と 要求の数を 制限で き ます。 実際に、 その JRun サーバーの ト ラ フ ィ ッ ク を調節で き ます。 メモ 「同時要求数」 と 「同時ユーザ数」 は別の概念である こ と を忘れないでく ださ い。 たと え ば、 各仮想 Web サイ ト が 1000 個の同時要求をサポー ト する と し て も、 1000 人の同時ユー ザによ っ て同時に 50 個の要求し か生成さ れていない場合があ り ま す。 JRun によ っ て、 要求ご と に 1 つの ス レ ッ ド が割 り 当て ら れます。 JRun には、 Web サーバーへの接続に対す る 並行処理設定を構成す る 設定が 4 つあ り ます。 こ の設定は次の と お り です。 • ア イ ド ル ス レ ッ ド のタ イ ムアウ ト • 最小ス レ ッ ド カ ウ ン ト • 最大ア ク テ ィ ブ要求数 • 最大同時要求数 顧客の Web サ イ ト で ト ラ フ ィ ッ ク の増加が急激に発生す る 環境では、 Web サ イ ト の ト ラ フ ィ ッ ク が急激に増加し た場合にス レ ッ ド のグループを作成し な く て も済むよ う に、 最小ス レ ッ ド カ ウ ン ト を高 く 設定し ます。 また、 最小ス レ ッ ド カ ウ ン ト を、 予期される 安定し た状態の負荷の同時要求数に設定する こ と も でき ます。 た と えば、 Web サ イ ト で 常時 80 個の同時要求が発生する場合は、 最小ス レ ッ ド カ ウ ン ト は 80 に設定し ます。 た と えば、 3 段階の RMI-CORBA データベース ト ラ ンザ ク シ ョ ンを実行し ている ために、 顧客の Web サ イ ト の平均応答時間が長い場合、新 し い要求を拒否せずに スループ ッ ト を保持す る には、 よ り 多 く の要求を待ち状態に し なければな ら ない こ と があ り ます。 こ の場合、 最大同時要求数を予期 さ れ る 要求数 よ り も 大 き い値に設定す る 必要があり ま す。 最大同時要求数の設定値は、 リ ソ ース の安全弁と し ての役割を 果たし ま す。 メモ 既定の JRun 並行処理設定を 変更する 前に、 ト ラ フ ィ ッ ク パタ ーン が実際に監視でき る こ と を 確認し ま す。設定値を 変更し てし ま う と 、リ ソ ース を 消耗する 可能性があり ま す。 第 2 章 ホス テ ィ ン グ /ISP 86 外部 Web サーバーの並行処理設定を変更するには 1 JMC の左側のペイ ン で、 [ マシン 名 ] > [JRun サーバー名 ] > [外部 Web サーバー ] を 選択 し ます。 [外部 Web サーバー ] パネルが表示 さ れます。 2 右側のペ イ ンで [編集 ] を ク リ ッ ク し ます。 外部 Web サーバーの編集 ウ ィ ン ド ウ が表示 さ れます。 3 次の表の説明に従っ てプ ロ パテ ィ を編集 し ます。 プ ロパテ ィ 説明 外部 Web サーバー アド レス IP ア ド レ ス を 入力 し ま す ( 複数の場合は カ ン マ で区切 り ます )。こ の JRun 接続モジ ュ ール (JCM) は、それら のア ド レ スか ら の要求のみを JRun サーバーに渡 し ます。 既定値 * を 使用する と 、 こ の JCM がすべての IP ア ド レ ス から の要求を 受け入れます。 受信ア ド レ ス 外部 Web サーバーから の接続を 受信する ソ ケ ッ ト の IP アド レスを 入力し ます。サーバーに複数の IP アド レスがある (マルチホーミ ング ) 場合は、 こ の機能を使用し てく ださ い。 既定値 * を 使用する と 、 JRun はすべてのサーバー IP ア ド レ スにバイ ン ド さ れます。 受信ポー ト こ の JCM が外部 Web サーバーか ら の接続の受信に使用 する固有のポー ト 番号を入力 し ます。 こ のポー ト を 外部 Web サーバーの HTTP ポー ト と 混同 し ないで く だ さ い。 平行処理の設定 87 プ ロパテ ィ 説明 アイ ドル スレ ッ ドの タ イ ムアウ ト JRun によ っ て破棄さ れる までのスレ ッ ド のアイ ド ル状態の 秒数 を 入力 し ます。 こ のパ ラ メ ー タ は、 Web サーバーが ビジー状態から 休止状態に戻る速さ を 決定し ます。 スレ ッ ド が破棄さ れる たびに、 少量のシステム リ ソ ースが解放さ れ ます。 JRun は Java ス レ ッ ド メ カ ニズムを使用 し て同時要求を 処理し ます。要求ごと に新し いスレ ッ ド を作成する代わり に、 JRun は新し い要求のために準備さ れたハン ド ラ スレ ッ ド の プ ールを 保持し ます。 スレ ッ ド のこ のプ ールは、 Web サー バー で の要求数の変化に応 じ て 拡大 ま た は縮小 し ま す。 Web サーバーの ト ラ フ ィ ッ ク 負荷 と 能力のバ ラ ン スが取 れる よ う に プールのパ ラ メ ー タ を設定 し ます。 既定値は 300 秒です。 最小ス レ ッ ド カ ウ ン ト 初期プールに (開始時に) 作成 さ れるハン ド ラ ス レ ッ ド の 数を入力 し ます。 シ ス テム実行中、 ス レ ッ ド は作成 さ れて 破棄 さ れますが、 プール サ イ ズが こ の数よ り 小 さ く な る こ と はあ り ません。 既定値は 1 です。 最大ア ク テ ィ ブ要求数 JRun が処理する同時要求の数の上限を入力 し ます。 こ の 上限値を 超える 数の要求は、 ハン ド ラ スレ ッ ド がそれら を 処理で き る よ う にな る ま で遅れます。 こ のパ ラ メ ー タ は、 外部 Web サーバーで の並行処理を 制限する た めの JRun の基本的な メ カ ニズムです。 既定値は 100 です。 最大同時要求数 Web サーバーが処理で き る 要求の最大数 を 入力 し ま す。 サーバーは、 こ の絶対最大数を 超え る 要求を すべて 破棄 し ま す。 既定値は 1000 です。 接続モ ジ ュ ール こ の JCM を オ ン にする には、 こ のチ ェ ッ ク ボ ッ ク ス を オン にし ます。 こ の JCM を オフ にする には、 こ のチェ ッ ク ボ ッ ク ス を オ フ に し ます。 接続モジュ ールをオフ にすると 、JRun と 外部 Web サーバー 間の接続が切断さ れます。 そのため、 ユーザが JSP ページ ま たはサー ブ レ ッ ト に ア ク セ ス し よ う と す る と エ ラ ーが 発生する こ と があ り ます。 4 変更を適用す る には、 [更新 ] ボ タ ン を ク リ ッ ク し ます。 5 JRun サーバーを再起動 し ます。 JWS ま たは外部 Web サーバーの Web サーバー設定値の編集については、 『JRun セッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 第 2 章 ホス テ ィ ン グ /ISP 88 接続プール 1 台の コ ン ピ ュ ー タ 上で、 ま たは専用の並列配置セ ッ ト ア ッ プの場合で も 複数の仮想 ホス ト を実行する 場合は、 要求数の急激な増加に備える 必要があり ま す。 数十個、 数百個、 ま たは数千個の要求が同時に 1 つのサ イ ト で発生す る と 、 設計が不適切なアプ リ ケー シ ョ ンではすぐ に対応で き な く な り ます。 デー タ ベース接続を作成す る と 、 特に厄介なボ ト ルネ ッ ク にな る 可能性があ り 、 最 も 負荷の大 き いデー タ ベー ス 操作の 1 つは初期接続の確立です。 使用 し て い る デー タ ベース に よ っ ては、 プ ロ ト コ ル ハン ド シ ェ ー ク の実行、 ユーザ情報の確認、 デ ィ ス ク フ ァ イ ルのオープン、 ま たは メ モ リ キ ャ ッ シ ュ の作成が接続に必要 と な る 場合があ り ます。 標準的なサーブ レ ッ ト や JSP では、 エン ド ユーザが こ の接続のためのパフ ォー マ ン ス コ ス ト を負担する こ と にな り ます。 プールを使用 し ない場合は、 サーバーに よ っ て、 新規ユーザご と に新 し い接続が生成 さ れます。 帯域幅を使用する 上でピーク 負荷を処理する 方法の 1 つは、 あ る種のデータベース接続 プールを 実装する こ と です。 JRun はこ のために簡単なメ カ ニズム を 提供し ていま す。 接続プール と は 接続にかか る 時間を短縮す る こ と はで き ませんが、 ユーザの使用に備え て事前に接続 の コ レ ク シ ョ ン ( プール ) を設定 し てお く こ と が可能です。別個の ス レ ッ ド で こ れ ら の 接続を設定する こ と に よ っ て、 サーブレ ッ ト のパフ ォーマン スの低下を最小限に抑え る こ と がで き ます。 サーブ レ ッ ト はプールか ら 接続を取得 し 、 それを使用 し 、 完了後に 返 し ます。 これまで、 多 く の開発者は、 独自の接続プールを開発するか、 または、 市販の接続プール を利用し て き ま し た。 JRun 製品には強力な接続プールがバン ド ル されている ため、 接続 プールの開発と い う 作業が不要にな り ま し た。 接続プールは JMC で簡単に管理でき ます。 接続プール 89 接続プールを使用する理由 接続プールによ っ てパフ ォ ーマン ス が大幅に向上し ま す。その他にも 多数の利点があり ます。 こ れ ら の利点については、 次の表で説明 し ます。 利点 説明 拡張性 サーブ レ ッ ト の全体的なパフ ォ ーマン スが向上する こ と によ り 、 ア プ リ ケーシ ョ ン全体の拡張性 も 大幅に向上 し ます。 コ ード の再利用および 削減 接続プ ールを 使用する と 、記述し て維持する コ ード の量を 減ら す こ と が で き、 ま た、 す で に テ ス ト お よ び動作確認が行われた コ ー ド を再利用で き ます。 集中管理 サーブ レ ッ ト を 変更し たり 再コ ン パイ ルせずに、接続パラ メ ータ (ユーザ名、 パスワード 、 カ スタ ム引数など ) を 1 か所で変更でき ます。 セキ ュ リ テ ィ 接続を 使用する と き にサーブレ ッ ト に必要なのはデータ ソ ース名 のみなので、データ ベースのユーザ名と パスワード が公表さ れる こ と はあ り ません。 パ フ ォ ーマ ン ス パ フ ォ ーマ ン スの向上は、 サーブ レ ッ ト がデー タ ベース を使用 す る場合の最 も 注目すべ き最大の メ リ ッ ト の 1 つです。 接続プールの使用 JRun 接続プール メ カ ニ ズ ム を 使用で き る のは、 JMC で セ ッ ト ア ッ プ さ れた JDBC デー タ ソ ース と と も に使用す る 場合だけです。 JDBC の作成方法の詳細は、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 [JDBC デー タ ソ ース ] パネルの 使用方法については、 『JRun セ ッ ト ア ッ プ ガ イ ド 』 を参照 し て く だ さ い。 使用し て い る データ ベース ド ラ イ バに 独自のネ イ テ ィ ブ接続プール メ カ ニ ズ ム が 含まれている 場合は、 パフ ォーマン ス を最適化する ために、 JMC 内の JRun 接続プールを オフに し ます。 JDBC 接続プールの起動 こ のセ ク シ ョ ンでは、 接続プール メ カ ニズ ム を オンにす る 方法について説明 し ます。 JDBC 接続プールを起動するには 1 JRun 管理 コ ン ソ ールを開 き ます。 2 [ マシ ン名 ] > [JRun サーバー名 ] > [JDBC デー タ ソ ース ] を選択 し ます。 第 2 章 ホス テ ィ ン グ /ISP 90 [JDBC デー タ ソ ース ] パネルが表示 さ れます。 3 デー タ ソ ース の名前を ク リ ッ ク し ます。 JDBC デー タ ソ ース の編集ウ ィ ン ド ウ が表示 さ れます。 4 [ プール ] チ ェ ッ ク ボ ッ ク ス を オンに し て、 こ の JRun サーバーについて、 JRun の 接続プール メ カ ニズ ム を オンに し ます。 5 JRun サーバーを再起動 し ます。 プールを使用する には、 データ ソ ースについてプールを明示的に有効にする必要があ り ます。 既定では、 プールは使用可能になっていません。 実際の JDBC データベース接続の エ イ リ ア ス を作成す る と 、 プール機能のない JRun デー タ ソ ース で も サーブ レ ッ ト で 使用で き ます。 接続プール プ ロ セス 次に、 接続プール プ ロ セ ス の手順について説明 し ます。 1 JNDI InitialContext が作成さ れま す。 JNDI InitialContext は、 名前を指定し たルッ ク アッ プの実行に使用する コ ンテキス ト です。JNDI に よ っ て、名前でオブジ ェ ク ト を コ ン テキ ス ト にバ イ ン ド で き ます。 こ の よ う に し て、 JRun デー タ ソ ース にア ク セ ス し ます。 2 JDBC デー タ ソ ース オブジ ェ ク ト が JNDI コ ン テ キ ス ト か ら 取 り 出 さ れます。こ の オブジ ェ ク ト は、 JDBC 2.0 データ ソ ースの JRun 実装で、 指定し たデータ ソ ース名 のプールにある すべての接続を保持し ま す。検索では、次の形式によ る データ ソ ース 名 が必要にな り ます。 java:comp/env/jdbc/{Data Source name} 3 JDBC 接続がデー タ ソ ース か ら 取得 さ れます。 4 デー タ ベースは接続を介 し て操作 さ れます。 5 すべての操作は、"try/catch/finally" ブ ロ ッ ク で ラ ッ プ さ れます。最終ブ ロ ッ ク は、 例外が送出 さ れた場合で も 必ず実行 さ れます。 6 最終ブロ ッ ク 内で接続を 閉じ ま す。 こ れによ り 、 接続は解放さ れてプールに戻さ れ ます。 JDBC ス テー ト メ ン ト ま たは結果セ ッ ト を開いた ら 、 結果セ ッ ト 、 ス テー ト メ ン ト 、 お よ び接続の順で閉 じ る必要があ り ます。 接続プール 91 デー タ ソ ース を介 し てプールか ら 接続を要求す る 際に利用で き る 接続がない場合は、 JRun によ っ て新し い接続が作成さ れて返さ れま す (プールの初期サイ ズ、つま り プール 内の接続数はゼロであ る こ と に注意し て く ださい )。利用でき る接続があ る場合は、直ちに その接続が返 さ れます。 接続を一度使用し た ら、 それを閉じ る必要があ り ます。 JRun では、 接続を閉じ る代わ り に それを プールに返す接続プ ロ キ シ オブジ ェ ク ト が用意 さ れてい ます。 プールは、 指定 さ れたデー タ ソ ース名に対 し て、 同時ユーザの数だけ大 き く な り ます。 接続が タ イ ム ア ウ ト にな る と プールは縮小 し ます。 JSP を作成する場合は、 JRun カ ス タ ム タ グ ラ イ ブ ラ リ の使用を検討し て く だ さ い。 こ の ラ イ ブ ラ リ には、 JRun デー タ ソ ース を使用す る jrun:sql タ グが含まれてい ます。 接続プールの例 こ のセ ク シ ョ ン では、 サーブ レ ッ ト 、 EJB、 お よ び JSP での接続プールの使用方法に ついて説明 し ます。 メモ JRun 接続プールを 使用する 前に、『 JRun セッ ト アッ プ ガイ ド 』 の説明に従っ て JRun で JDBC デー タ ソ ース を セ ッ ト ア ッ プす る 必要があ り ます。 JRun は、 標準 API メ カニズム、 特に JNDI および JDBC 2.0 を介し てプールを提供し ます。 た と えば、 次のサンプル コー ド では、 JRun JDBC データ ソース を使用し たデータベース 接続が確立 さ れます。 import java.sql.*; import javax.naming.*; import javax.sql.*; ... InitialContext context = null; Connection con = null; try { // JNDI コ ン テキス ト を取得 し ます。 context = new InitialContext(); // デー タ ソ ースのル ッ ク ア ッ プ を行います。 DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/" + dsn); // デー タ ソ ースか ら 接続を入手 し ます。 con = ds.getConnection(); ... } catch (Exception ex) { throw new ServletException(ex.getMessage(), ex); } finally { if (con != null) { // 必ず接続を閉 じ ます。 第 2 章 ホス テ ィ ン グ /ISP 92 try { con.close(); } catch (SQLException ex) { // 閉 じ る際のエ ラ ーは無視 し ます。 } } if (context != null) { // 必ず コ ン テキス ト を閉 じ ます。 try { context.close(); } catch (NamingException ex) { // 閉 じ る際のエ ラ ーは無視 し ます。 } } } JRun デー タ ソ ース を利用す る には JDK 1.2 以降を使用す る 必要があ り ます。 こ れは、 こ の機能が JNDI お よ び JDBC 2.0 に依存 し てい る ためです。 ただ し 、 jndi.jar お よ び jdbc.jar を JRun の ク ラ スパ ス に追加す る こ と に よ っ て JDK 1.1.x も 使用で き る よ う に な り ます。 こ れ ら の jar フ ァ イ ルは、 JRun 3.0 と と も に JRun のルー ト デ ィ レ ク ト リ / lib/ext デ ィ レ ク ト リ に イ ン ス ト ール さ れます。 EJB での接続プール JRun 3.0 は、 現在、 データ ソ ース を指定する ために 2 つの異な る場所を提供し ています。 1 つはサーブレ ッ ト およ び JSP 用、 も う 1 つは EJB 用です。 EJB 内から データ ソ ース を 使用する場合は、 EJB の deploy.properties フ ァ イル内でデータ ソース を定義する必要が あ り ます。 こ の方法の例については、 『JRun サンプル ガ イ ド 』 を参照 し て く だ さ い。 JRun 接続プールを使用 し ない場合 使用 し てい る JDBC ド ラ イ バがすでに JDBC 2.0 接続プールをサポー ト し てい る 場合、 そのド ラ イ バには JRun 接続プール メ カ ニズム を 使用し ないこ と を お勧めし ま す。 ド ラ イ バのベン ダは、 一般の接続プール よ り も 効率的で強力なデー タ ベース専用の機能を 採用 し てい ます。 ま た、 サーブレ ッ ト コ ン テナ間のサーブレ ッ ト 相互運用性について不安があ る 場合は、 接続プールを使用 し ない こ と をお勧め し ます。 JDBC デー タ ソ ース を取得す る ための JNDI メ カ ニズ ムは J2EE 仕様の一部であ る ため、 こ の機能を使用す る サーブ レ ッ ト は J2EE 互換のサーブ レ ッ ト コ ン テナに移植可能にな り ます。 あいに く 、 一部のサーブ レ ッ ト コ ン テナでは こ の機能がサポー ト さ れていない場合があ り ます。 し たが っ て、 サーブ レ ッ ト で接続プール を使用す る 前に、 サーブ レ ッ ト が公開 さ れ る サーバーが JDBC デー タ ソ ース を サポー ト し てい る こ と を確認す る 必要があ り ます。 Active Server Pages と JRun の統合 (IIS のみ ) 93 Active Server Pages と JRun の統合 (IIS のみ) のみ JRun は、 顧客に提供す る アプ リ ケーシ ョ ン サーバー ス イ ー ト の一部 と し て組み込む こ と がで き ます。 ほかのテ ク ノ ロ ジ と 併せて よ く 提供 さ れる も のの 1 つに、 Microsoft Active Server Pages (ASP) があ り ます。 残念な こ と に、 ASP ページ を default-app ではな く JRun 3.0 Web アプ リ ケーシ ョ ンに 配置す る と 、 IIS は ASP ページ を処理で き な く な り ます。 こ のセ ク シ ョ ン では、 こ の 制限の回避策について説明 し ます。 JRun と ASP を統合するには 1 IIS を介 し て アプ リ ケーシ ョ ン を作成 し ます。 物理デ ィ レ ク ト リ は c:\inetpub\wwwroot\appname にする 必要があ り ます。 こ れは、 Microsoft Interdev を使用 し て行 う こ と も 可能です。 2 JRun 管理 コ ン ソ ールを開 き 、 [ マシ ン名 ] > [JRun サーバー名 ] > [Web ア プ リ ケー シ ョ ン ] を選択 し ます。 [ アプ リ ケーシ ョ ン ] パネルが表示 さ れます。 3 [ アプ リ ケーシ ョ ンの作成 ] リ ン ク を ク リ ッ ク し ます。 [Web アプ リ ケーシ ョ ンの作成 ] パネルが表示 さ れます。 4 [ アプ リ ケーシ ョ ンの URL] フ ィ ール ド に 「/appname」 と 入力 し ます。 URL は、 IIS アプ リ ケーシ ョ ンの名前 と 同 じ であ る 必要があ り ます。 5 [ アプ リ ケーシ ョ ンのルー ト デ ィ レ ク ト リ ] フ ィ ール ド で、 「c:\inetpub\wwwroot\appname」 と 入力 し ます。 第 2 章 ホス テ ィ ン グ /ISP 94 6 [作成 ] を ク リ ッ ク し ます。 JRun に よ っ てアプ リ ケーシ ョ ンが追加 さ れ、 c:\inetpub\wwwroot\appname\WEB-INF デ ィ レ ク ト リ が作成 さ れます。 7 JRun サーバーの local.properties フ ァ イ ルを開 き ます。 8 local.properties フ ァ イ ルの最後に次の行を追加 し ます。 JrunAppName.use-webserver-root=true フ ァ イ ルにはすでに次のプ ロ パテ ィ が含まれてい ます。 JrunAppName.rootdir=c:\\inetpub\\wwwroot\\appname JrunAppName.class={webapp.service-class} 9 local.properties フ ァ イ ルを保存 し て閉 じ ます。 10 Microsoft 管理 コ ン ソ ール (MMC) を開き ます。 11 手順 5 で作成 し た /appname/WEB-INF デ ィ レ ク ト リ を選択 し 、 [ プ ロ パテ ィ ] を 右 ク リ ッ ク し ます。 [ プ ロ パテ ィ ] ダ イ ア ロ グ ボ ッ ク ス が表示 さ れます。 Active Server Pages と JRun の統合 (IIS のみ ) 95 12 [読み取 り ] チ ェ ッ ク ボ ッ ク ス をオ フ に し 、 ア ク セ ス権を [ な し ] に設定 し ます。 こ のディ レ ク ト リ には JRun コ ンフ ィ ギュ レ ーショ ン フ ァ イ ルが格納さ れていま すが、 表示す る こ と はで き ません。 13 [OK] を ク リ ッ ク し 、 MMC を閉 じ て変更を保存 し ます。 14 JRun サーバーを再起動 し ます。 use-webserver-root=true フ ラ グが使用されている こ と に注意し て く だ さい。 これによ り 、 JRun がすべてのアプ リ ケーシ ョ ン要求を処理し ない よ う にな り ます。 default-app はま た、 こ の フ ラ グ を使用 し て Web サーバーのパ ス を把握 し ます。 こ れに よ り 、 JRun は、 明示的に定義 さ れたサーブ レ ッ ト マ ッ ピ ン グ を使用せずに、 すべての Web アプ リ ケーシ ョ ン要求に対す る 制御を Web サーバーに渡 し て処理 し ます。 ま た、 こ の フ ラ グ を True に設定す る と 、 パ ス を静的フ ァ イ ルに変換す る 際に、 Web サーバーのマ ッ ピ ン グ ルールは、 Web アプ リ ケーシ ョ ンのルー ト デ ィ レ ク ト リ 内の パ ス設定値に上書 き さ れます。 第 2 章 ホス テ ィ ン グ /ISP 96 JRun メ ト リ ッ クの使用 JRun には、 メ ト リ ッ ク サービス が用意さ れていま す。 メ ト リ ッ ク サービス を使用する と 、 JWS ま たは JCP サービ ス、 メ モ リ の使用状況、 ス レ ッ ド 、 セ ッ シ ョ ン、 およびその他の デー タ に関す る 情報を効率 よ く 柔軟に収集で き ます。 メ ト リ ッ ク サービ ス を使用 し て 収集で き る 情報の種類を把握 し た ら 、メ ト リ ッ ク サービ ス を ロ グ サービ ス に組み込む こ と に よ っ て、 独自の レ ポー ト を生成で き ます。 こ のセ ク シ ョ ンでは、 メ ト リ ッ ク サービ ス の概要を述べ、 一部のサンプルの使用例を 記載 し ます。 詳細は、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 メ ト リ ッ クの設定 メ ト リ ッ ク 情報のログ機能を有効にするには 1 JMC の左側のペ イ ンで、 [ マ シ ン名 ] > [ JRun サーバー ] > [ ログ フ ァ イルの設定] を選択 し ます。 [ ロ グ フ ァ イ ルの設定 ] パネルが表示 さ れます。 2 右側のペ イ ンで [編集 ] を ク リ ッ ク し ます。 [ ロ グ フ ァ イ ルの設定 ] 編集ウ ィ ン ド ウ が表示 さ れます。 3 [Logging Level] フ ィ ール ド で、 [Metrics] チ ェ ッ ク ボ ッ ク ス を オンに し ます。 これによ り 、 この JRun サーバーの local.properties フ ァ イル内の logging.loglevel プロパテ ィ に メ ト リ ッ ク が追加されます。 logging.loglevel=info,warning,error,metrics メ ト リ ッ ク サー ビ ス を すべて の サーバーが使用で き る よ う に、 メ ト リ ッ ク を global.properties フ ァ イ ルに手作業で追加で き ます。 4 JRun サーバーを再起動 し ます。 5 JRun サーバーの ロ グ フ ァ イ ル (JRun のルー ト デ ィ レ ク ト リ /logs 内) を調べます。 次の よ う なエン ト リ があ り ます。 10/02 12:48:04 metrics (JRun) (jcp+web) Heap=4263KB Listen=2 Idle=0 Queued=0 Busy=0 Total=2 Requests (count/total ms)=3/594 Delayed=0 TotalDelay=0 BytesIn=778 BytesOut=539 Sessions (active/in memory)=0/0 既定では、 メ ト リ ッ ク ロ グ エン ト リ は、 JRun サーバーの <server>-event.log フ ァ イル 内に表示さ れます。 すべての情報は同じ 行に表示さ れます。 独自の ロ グ フ ァ イ ルの 作成方法については、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 を参照し て く だ さ い。 既定の メ ト リ ッ ク ロ グ メ ッ セージには、 JRun Web サーバー (web サービ ス ) と サー ド パーテ ィ Web サーバーへの接続 (jcp サービ ス ) の両方の メ ト リ ッ ク が含まれてい ます。 ほかの JRun ロ グ メ ッ セージ と 同様に、 使用可能な メ ト リ ッ ク 変数を追加ま たは削除 す る こ と に よ っ て、 メ ト リ ッ ク の形式を制御で き ます。 使用可能な メ ト リ ッ ク 変数に ついての説明は、 97 ページの 「ロ グ形式について」 に記載 さ れてい ます。 JRun メ ト リ ッ ク の使用 97 ログ形式について メ ト リ ッ ク サービ スは複数の メ ト リ ッ ク 変数を使用し ます。 メ ト リ ッ ク 変数には、 JVM および JRun サーバー専用の も の と 、 JRun Web サーバー (JWS) ま たは外部 Web サーバー 接続専用の も のがあ り ます。 次のセ ク シ ョ ンでは、 こ れら の変数について説明し ます。 既定の メ ト リ ッ ク 形式 monitor.format プ ロ パテ ィ は、 メ ト リ ッ ク サービ ス の ロ グ メ ッ セージの形式を指定 し ます。 こ のプ ロ パテ ィ は、 あ ら か じ め定義 さ れた形式に指定す る か、 ま たは独自の 形式を作成で き ます。 次に例を示 し ます。 monitor.format={monitor.jcp-format} JRun には次のあ ら か じ め定義 さ れた形式が含まれてい ます。 monitor.web-format monitor.jcp-format monitor.combined-format こ れ ら の形式の構成を調べ る には、 global.properties フ ァ イ ルを参照 し て く だ さ い。 たと えば、 既定の jcp-format は、 こ のプロ パティ フ ァ イ ルでは、 次のメ ッ セージから 構成 さ れてい ます。 monitor.jcp-format=(jcp) Heap={totalMemory}KB Listen={jcp.listenTh} Idle={jcp.idleTh} Queued={jcp.delayTh} Busy={jcp.busyTh} Total={jcp.totalTh} Requests (count/total ms)={jcp.handledRq}/ {jcp.handledMs} Delayed={jcp.delayRq} TotalDelay={jcp.delayMs} BytesIn={jcp.bytesIn} BytesOut={jcp.bytesOut} Sessions (active/ in memory)={sessions}/{sessionsInMem} 形式フ ィ ール ド はすべて同 じ 行にあ る 必要があ り ます。 カ ス タ ム メ ト リ ッ ク形式 JRun は、 ロ グ メ ッ セージ を生成す る と き にすべての変数値を リ セ ッ ト し ます。 し た がっ て、 ロ グ内の各 ロ グ メ ッ セージ内には、 直前の時間間隔において発生 し た イ ベン ト を蓄積で き ます。 カス タ ム レ ポート では、 monitor.interval プロ パティ が非常に重要です。 こ のプロ パティ を秒単位で設定する こ と に よ っ て、 分、 時、 日、 ま たはどの よ う な間隔で も 統計を追跡 で き ます。 こ れは、 課金モデルのサポー ト に役立ち ます。 こ のセ ク シ ョ ンで取 り 上げ ら れてい る サンプル デー タ は 10 秒間隔で追跡 さ れてい ます。 たと えば、 JVM 空き メ モリ 容量、 処理する 要求の数、 JRun Web サーバーのク ラ イ アント に書き戻される総バイ ト 数のみを追跡する場合は、monitor.format プロパテ ィ は次のよ う に設定 し て く だ さ い。 monitor.format=Free={freeMemory}KB Requests={web.handledRq} Out={web.bytesOut} ロ グ フ ァ イ ル内の メ ト リ ッ ク ロ グ メ ッ セージは次の よ う に表示 さ れます。 10/02 13:16:11 metrics (JRun) Free=4271KB Requests=9 Out=1613 第 2 章 ホス テ ィ ン グ /ISP 98 ロ グ フ ァ イ ルの作成時は次の点に注意 し て く だ さ い。 • すべての メ ト リ ッ ク 変数を中カ ッ コ { } で囲みます。 • サーバー固有の各 メ ト リ ッ ク の前に jcp.( 外部 Web サーバーの場合 ) ま たは web.(JWS の場合) を付け ます。 • ( オプシ ョ ン ) 演算を中カ ッ コ で囲む場合は、 メ ト リ ッ ク デー タ に対 し て基本的な 数学演算を行い ま す。 た と えば、 {{totalMemory} - {freeMemory}} は、 2 つの メ ト リ ッ ク 間の差を返 し ます。 次の 2 つのセ ク シ ョ ンでは、メ ト リ ッ ク サービ スが利用で き る変数について説明し ます。 JVM 別および JRun サーバー別 メ ト リ ッ ク JRun には、 JVM お よ び JRun サーバー固有の メ ト リ ッ ク 変数がい く つか用意 さ れてい ます。 こ れ ら の変数を モニ タ 形式に追加す る と 、 JVM ま たは JRun サーバーに関す る 特殊情報を記録で き ます。 次の表で こ れ ら の メ ト リ ッ ク を説明 し ます。 変数 説明 freeMemory JVM ヒ ープ内の空き メ モ リ のキ ロバ イ ト 数 totalMemory JVM ヒ ープの総キ ロバ イ ト 数 ( 空 き メ モ リ およ び使用 メ モ リ ) sessions ア ク テ ィ ブ セ ッ シ ョ ンの現在の数 sessionsInMem メ モ リ 内のア ク テ ィ ブ セ ッ シ ョ ンの現在の数。セ ッ シ ョ ンの永続性は、 JRun の構成に よ り 、 セ ッ シ ョ ン レ ポジ ト リ ま で維持で き ます。 JRun Web サーバーまたはサー ド パーテ ィ Web サーバーの メ ト リ ッ ク また JRun には、JRun Web サーバー (JWS) および外部 Web サーバーに関する特殊情報を 反映す る メ ト リ ッ ク も 用意 さ れてい ま す。 こ れ ら の変数を モニ タ 形式に追加す る と 、 JWS ま たは JRun サーバーの外部 Web サーバーへの接続に関する 特殊情報を 記録でき ます。 これら の変数の前には jcp. (外部 Web ブ ラ ウザの場合) または web. (JWS の場合)を付ける 必要があ り ます。 次に例を示 し ます。 {web.bytesIn} {jcp.bytesIn} JRun メ ト リ ッ ク の使用 99 次の表で こ れ ら の メ ト リ ッ ク を説明 し ます。 変数 説明 [jcp|web].busyTh 現在動作中のス レ ッ ド の数 [jcp|web].delayTh 実行を待 っ てい る ス レ ッ ド の数 [jcp|web].idleTh 新 し い要求を待 っ てい る ス レ ッ ド の数 [jcp|web].listenTh 新 し い接続に応答する ス レ ッ ド の数 [jcp|web].totalTh ワー カ ス レ ッ ド の総数 [jcp|web].delayRq 高並列処理に よ る、 遅延 し た要求の数 [jcp|web].droppedRq 破棄 さ れた要求の数 [jcp|web].handledRq 処理 さ れた要求の数 [jcp|web].handledMs 要求の処理に要 し た ミ リ 秒数 [jcp|web].delayMs 遅延ス テー ト で要 し た ミ リ 秒数 [jcp|web].bytesIn すべての要求か ら 読み出 さ れたバ イ ト の数 [jcp|web].bytesOut すべての応答のために書き込まれたバ イ ト の数 メ ト リ ッ ク デー タ を使用 し た レ ポー ト の生成 JRun の メ ト リ ッ ク ロ グ メ カニズム を使用する と 、 データ を出力し て、 パフ ォーマン ス 解析ま たは ト ラ フ ィ ッ ク レ ポー ト な ど の さ ま ざ ま な種類のデー タ を生成で き ます。 このセ ク シ ョ ンでは、 JRun ロ グ情報を使用し て生成でき る、 簡単なカ ス タ ム レポー ト に ついて説明 し ます。 CSV フ ァ イルの作成 メ ト リ ッ ク デー タ の一般的な用途は、ス プ レ ッ ド シー ト アプ リ ケーシ ョ ンに直接 イ ン ポー ト で き る CSV (Comma Separated Value) フ ァ イ ルの出力です。CSV 出力を生成す る には、 メ ト リ ッ ク 変数お よ び定数間にカ ン マが挿入 さ れ る よ う にモニ タ 形式を変更 し ます。 次の例の よ う に、 必ずカンマで開始し て日付/時刻を区切 り ます。 monitor.jcp-format= ,{jcp.bytesIn},{jcp.bytesOut},{totalMemory}, {freeMemory},{{totalMemory}-{freeMemory}} こ の例では、 次の よ う な JRun サーバーの ロ グ フ ァ イ ルが作成 さ れます。 11/01 13:34:51 metrics (JRun) ,0,0,3191,944,2247 11/01 13:35:01 metrics (JRun) ,0,0,3191,1239,1952 11/01 13:35:11 metrics (JRun) ,0,0,3191,1180,2011 モニ タ 形式変更後に JRun サーバーを再起動 し て変更を有効にす る 必要があ り ます。 次のセ ク シ ョ ンでは一般的なモニ タ形式について説明し ます。 ま た、 データ を例示する サンプル グ ラ フ も 記載 し ます。 第 2 章 ホス テ ィ ン グ /ISP 100 メ モ リ の使用状況の追跡 JRun サーバーの JVM ヒ ープ統計は、 totalMemory およ び freeMemory メ ト リ ッ ク を 使 用する こ と に よ って記録でき ます。 仮に monitor.format プロ パティ が jcp-format を 参照する 場合は、 次の行を JRun サーバーの local.properties フ ァ イ ルに追加し ま す。 monitor.jcp-format=,{totalMemory},{{totalMemory}-{freeMemory}} こ のサンプルには、 日付/ 時刻の列のほかに次の 2 つの列があ り ます。 • totalMemory: JVM ヒ ープの総キロ バイ ト 数 (空き メ モリ およ び使用メ モリ ) を表し ます。 • freeMemory: JVM ヒ ープ内の空き メ モリ のキロ バイ ト 数を表し ま す。 ロ グ エ ン ト リ のサン プル 10/27 10/27 10/27 10/27 15:29:55 15:30:05 15:30:15 15:30:25 metrics metrics metrics metrics (JRun) (JRun) (JRun) (JRun) ,3191,2518 ,3267,2811 ,4291,2866 ,4291,2912 サン プル グ ラ フ 次のサンプル グ ラ フは、 使用メ モ リ が一定の場合に、 ヒ ープ サイ ズが増加し ている こ と を 示 し ます。 使用メモリ 5000 4000 3000 2000 1000 0 1 2 合計メモリ (KB) 3 4 使用メモリ (KB) JRun メ ト リ ッ ク の使用 101 転送量の追跡 転送量の追跡は、非常に重要なレポー ト 要素です。 ト ラ フ ィ ッ ク 量の周囲に収益モデルを 設計し た り 、JRun サーバーの使用量のレポー ト をベースに ト ラ フ ィ ッ ク を制限でき ます。 仮に monitor.format プ ロ パ テ ィ が jcp-format を 参照す る 場合は、 次の行 を JRun サーバーの local.properties フ ァ イ ルに追加 し ます。 monitor.jcp-format=,{jcp.bytesIn},{jcp.bytesOut} こ のサンプルには、 日付/ 時刻の列のほかに次の 2 つの列があ り ます。 • bytesIn: すべての要求か ら 読み出 さ れたバ イ ト の数 • bytesOut: すべての応答のために書 き 込まれたバ イ ト の数 ロ グ エ ン ト リ のサン プル 10/27 10/27 10/27 10/27 10/27 10/27 10/27 10/27 10/27 10/27 16:41:46 16:41:56 16:42:06 16:42:16 16:42:26 16:42:36 16:42:46 16:42:56 16:43:06 16:43:16 metrics metrics metrics metrics metrics metrics metrics metrics metrics metrics (JRun) (JRun) (JRun) (JRun) (JRun) (JRun) (JRun) (JRun) (JRun) (JRun) ,1925,12596 ,5320,25503 ,0,0 ,20841,179626 ,1491,4017 ,14580,23002 ,13113,74097 ,26674,29309 ,115106,107670 ,14529,64132 サン プル グ ラ フ 次のサンプル グ ラ フは、 一般的に ト ラ フ ィ ッ ク が増大傾向にあ る場合の負荷量の急激な 増加をバ イ ト 単位で示 し ます。 200000 180000 160000 140000 120000 要求バイト数 100000 応答バイト数 80000 60000 40000 20000 0 1 2 3 4 5 6 7 8 9 10 第 2 章 ホス テ ィ ン グ /ISP 102 要求の追跡 も う 1 つの ト ラ フ ィ ッ ク 解析方法は要求を利用 し た も のです。 こ の場合、 JCP 要求を 追跡す る 際に、 Web サーバー と JRun サーバー間の通信 を チ ェ ッ ク し ま す。 仮に monitor.format プロパテ ィ が jcp-format を参照する場合は、 次の行を JRun サーバー の local.properties フ ァ イ ルに追加 し ます。 monitor.jcp-format=,{jcp.handledRq},{jcp.handledMs},{jcp.bytesOut} こ のサンプルには、 日付/ 時刻の列のほかに次の 3 つの列があ り ます。 • handledRq: 処理 さ れた要求の数 • handledMs: 要求の処理に要 し た ミ リ 秒数 • bytesOut: すべての応答のために書 き 込まれたバ イ ト の数 ロ グ エ ン ト リ のサン プル 10/27 10/27 10/27 10/27 10/27 16:38:08 16:38:18 16:38:28 16:38:38 16:38:48 metrics metrics metrics metrics metrics (JRun) (JRun) (JRun) (JRun) (JRun) ,4,110,13440 ,14,241,52907 ,6,190,23828 ,31,401,143053 ,58,560,302296 サン プル グ ラ フ 次のサンプル グ ラ フは、 こ の要求について、 各要求の平均キ ロ バ イ ト 数が一定であ る こ と を示 し ます。 要求を処理す る MS の平均数は実際には、 要求数が増え る につれて 小 さ く な り ます。 70 60 50 処理された要求の数 40 MS の平均数 30 平均キロバイト数 20 10 0 1 2 3 4 5 JRun メ ト リ ッ ク の使用 103 NOC と の統合 こ のセ ク シ ョ ンで説明し て き たレポー ト のほかに、 次の JRun メ ト リ ッ ク 変数に も 留意し て く だ さ い。 こ れ ら の変数を使用す る と 、 カ ス タ ム レ ポー ト を生成 し た り 、 Netcool や BMC Software の PATROL な ど の NOC に対 し て、カ ス タ ム デー タ を提供で き ます。 • delayTh • delayRq • droppedRq • delayMS • busyTh た と えば、 droppedRq (破棄 さ れた要求) を ロ グに含め、 monitor.interval を 60 に設 定し ます。 PATROL ナレ ッ ジ モジ ュ ール エージ ェ ン ト にカ ス タ ム ロ グ フ ァ イ ルを解 析 さ せ、 droppedRq をチ ェ ッ ク さ せ ます。 エージ ェ ン ト のルールの一環 と し て、 1 分 間に破棄 さ れた要求の数が 5 を超え たか ど う か をチ ェ ッ ク し ます ( エ ラ ーに備え て少 し 余裕を残 し てお き ます)。 JRun サーバーが要求の破棄を開始する と 、 NOC に よ っ て ユーザに通知 さ れます。 104 第 2 章 ホス テ ィ ン グ /ISP 第3章 EJB エ ン ジ ンの設定 EJB エン ジン には多く の機能があり 、 高度な技術を 持つ開発者は、 こ れら の機能を 使用 し て基本機能を カ ス タ マイ ズおよ び拡張でき ま す。 こ れら の機能を 利用する と 、 エン ド ツ ー エン ド ソ リ ュ ーショ ン を 提供し ながら 、 同時に EJB プロ グ ラ ミ ン グ を 完全に活用 する こ と ができ る よ う になり ま す。 目次 • フ ェ イ ルセーフ モー ド ............................................................................................ 106 • EJB エン ジ ンの埋め込み ......................................................................................... 108 • EJB エン ジ ンのサブ ク ラ ス化.................................................................................. 108 • サー ド パーテ ィ JDBC ド ラ イ バの使用 .................................................................. 110 • デバ ッ グ モー ド での実行 ........................................................................................ 110 • /deploy お よ び /runtime デ ィ レ ク ト リ の移動...................................................... 111 • 作成 と 作成後............................................................................................................ 112 • コ ン テキ ス ト フ ァ ク ト リ ........................................................................................ 113 • プ ロ パテ ィ の操作 .................................................................................................... 114 • AutoCaller メ ソ ッ ド ................................................................................................ 119 • 詳細情報 ................................................................................................................... 120 第 3 章 EJB エ ン ジ ンの設定 106 フ ェ イルセー フ モー ド フ ェ イ ルセーフ モー ド での実行時は、 JRun が リ モー ト 起動に よ る 自動復旧機能を提 供 し ます。 サーバーが停止 し てい る 場合に ク ラ イ ア ン ト が接続を試み る と 、 RMID が 自動的にそのサーバーを再起動 し ます。 フ ェ イ ルセーフ モー ド でサーバーを起動す る 前に、 RMID を起動 し てお く 必要があ り ます。 RMID を起動せずにサーバーを起動 し よ う と す る と 、 エ ラ ー メ ッ セージが表示 さ れ、 サーバーは起動 さ れません。 RMID RMID は、Java 2 プラ ッ ト フ ォ ーム のリ モート 起動エージェ ン ト であり 、EJB エン ジン は RMID を 使用 し て フ ェ イ ルセー フ 操作 を提供 し ま す。 特定のサ ーバー上でフ ェ イ ル セーフ モード で実行し ている JRun のすべてのイ ン ス タ ン ス が、 RMID を 使用し て管理 さ れま す。 JRun のあ る イ ン ス タ ン ス が停止し た場合、 次のク ラ イ ア ン ト がそのイ ン ス タ ン スに接続し よ う と し ている こ と を RMID が検知する と 、 自動的にそのイ ン ス タ ン ス を 再起動し ます。 RMID は、実行ディ レ ク ト リ のすぐ下に log ディ レ ク ト リ を作成し ます。 このディ レ ク ト リ には、 RMID が JRun の イ ン ス タ ン ス を再起動する 際に使用する 情報が含まれています。 開発およ びテ ス ト 時は RMID を 毎回ク リ ーン な 状態で起動する こ と が望ま し いため、 RMID を再起動する前に log ディ レ ク ト リ を削除し て く ださい。 詳細は、JDK のマニ ュ アル ま たは http://java.sun.com/products/jdk/rmi を 参照し てく ださ い。 JRun を フ ェ イ ルセー フ モー ド で起動す る 前に、 RMID を起動す る 必要が あ り ま す。 RMID を起動す る には、 コ マン ド ウ ィ ン ド ウ を 開いて作業ディ レ ク ト リ に移動し 、 次の 手順を 実行し ま す。 Solaris 上の RMID Solaris 上の RMID を起動するには • 次の コ マ ン ド を入力 し ます。 % cd /tmp % rmid 既定では、 [rmid log] ウ ィ ン ド ウ に出力 メ ッ セージが表示 さ れます。 Solaris 上の RMID を停止するには • 次の コ マ ン ド を入力 し ます。 % rmid -stop Windows 上の RMID Windows 上の RMID を起動するには 1 コ マ ン ド プ ロ ンプ ト ウ ィ ン ド ウ を開き ます。 フ ェ イルセー フ モー ド 2 107 次の コ マ ン ド を入力 し ます。 C:\> cd \temp C:\temp> start rmid rmid.exe と い う タ イ ト ルの新し いウ ィ ン ド ウが表示されます。既定では、 この新しい ウ ィ ン ド ウ に出力 メ ッ セージが表示 さ れ ます。 こ の ウ ィ ン ド ウ は、 RMID が停止 さ れ る ま で開いた ま ま にな り ます。 Windows 上の RMID を停止するには • 次の コ マ ン ド を入力 し ます。 C:\temp> rmid -stop サーバー ツール サーバー ツールを使用し て、 EJB エンジン を フ ェ イ ルセーフ モー ド で起動および停止し ます。 -start オプシ ョ ンを使用する と 、 /deploy デ ィ レ ク ト リ のフ ァ イルを使ってサー バーが起動 さ れます。 こ の と き、 Deploy ツールが以前に処理 し た Bean Jars が、 生成 さ れた runtime.properties フ ァ イ ル と と も に /deploy デ ィ レ ク ト リ か ら /runtime デ ィ レ ク ト リ に コ ピー さ れます。 ま た、 ejipt_objects.jar お よ び ejipt_exports.jar フ ァ イ ル も コ ピー さ れます。 そ し て、 EJB エン ジ ン を起動 し ます。 EJB エ ン ジ ン を フ ェ イルセー フ モー ド で起動するには • 次の コ マ ン ド を入力 し ます。 % cd /jrun % java -Djava.security.policy=lib/jrun.policy -classpath lib/ejipt_tools.jar allaire.ejipt.tools.Server -start -restart オプショ ン を 使用する と 、 jar フ ァ イ ル、 およ び /runtime ディ レ ク ト リ に コ ピー済みの runtime.properties フ ァ イ ルを使っ てサーバーが起動 さ れます。 事前に準備 し た runtime フ ァ イルを使用 し て EJB エ ン ジ ン を再起動するには • 次の コ マ ン ド を入力 し ます。 % cd /jrun % java -Djava.security.policy=jrun.policy -classpath lib/ejipt_tools.jar allaire.ejipt.tools.Server -restart -stop オプシ ョ ン を使用す る と 、 サーバーが停止 し ます。 EJB エ ン ジ ン を停止するには • 次の コ マ ン ド を入力 し ます。 % cd /jrun % java -Djava.security.policy=lib/jrun.policy -classpath lib/ejipt_tools.jar allaire.ejipt.tools.Server -stop EJB エンジンのフ ェ イルセーフ モード での起動および停止に関する 追加情報については、 JRun 文書のページで提供さ れている allaire.ejipt.tools.Server API JavaDocs を 参照し て く だ さ い。 第 3 章 EJB エ ン ジ ンの設定 108 EJB エ ン ジ ンの埋め込み EJB エン ジ ンは、アプ リ ケーシ ョ ン内で ク ラ ス と し て イ ン ス タ ン ス化す る こ と に よ り 、 イ ンプ ロ セ ス で実行で き ます。 次のサンプル コ ー ド はその例です。 // こ れは JRunInstallDirectory/lib/ejipt.jar にあ り ます。 import allaire.ejipt.*; Ejipt.prepareEnvironment(true); Ejipt.prepareProperties(null); final Ejipt ejipt = new Ejipt(true); ejipt.start(); ejipt.export(0); Ejipt.prepareEnvironment(true) ス テート メ ント によ り 、ス タ ブやプロ パティ など の 必須フ ァ イ ルが、 /deploy サブディ レ ク ト リ から /runtime サブディ レ ク ト リ にコ ピ ー さ れま す。 Ejipt.prepareProperties(null) ス テ ート メ ン ト によ り 、 さ ま ざ ま な プ ロ パテ ィ フ ァ イ ルか ら プ ロ パテ ィ が ロ ー ド さ れます。 final Ejipt ejipt = new Ejipt(true) ス テ ート メ ン ト によ り 、 EJB エン ジ ン の イ ン ス タ ン スが作成されます。 ejipt.start() ステー ト メ ン ト で リ モー ト オブジ ェ ク ト およ びホ ーム オブジ ェ ク ト がロ ード さ れ、ejipt.export(0) ス テート メ ン ト で EJB エ ンジンのポー ト が設定さ れます。 0 引数によ り 、 未指定の空 き ポー ト を使用する よ う に サーバーに指示が与え ら れます。 自動復旧は、 こ のモー ド では使用で き ません。 完全なサンプルについては、『JRun サンプル ガ イ ド 』 のサンプル 1a を参照し て く だ さい。 EJB エ ン ジ ンのサブ ク ラ ス化 こ れは、 EJB エンジンをス タ ンド アロ ン モード で実行し ている と き 、 およ び EJB エンジン を JRun サービ ス と し て実行 し てい る と き に機能 し ます。 カ ス タ ム サーバーの コ ーデ ィ ング allaire.ejipt.Ejipt ク ラ ス を サブ ク ラ ス化 し 、 選択 し た メ ソ ッ ド を上書 き す る カ ス タ ム サーバーのコード を作成でき ます。 こ の場合も、EJB エンジンはス タ ン ド ア ロ ン モード で 実行 さ れてい ます。 allaire.ejipt.Ejipt 内の メ ソ ッ ド に関する追加情報については、 JRun 文書のページで提供 さ れてい る allaire.ejipt.Ejipt JavaDocs を参照 し て く だ さ い。 EJB エ ン ジ ンのサブ ク ラ ス化 109 ス タ ン ド ア ロ ン EJB エ ン ジ ン と し てのカ ス タ ム サーバーの使用 こ のサンプルでは、 サブ ク ラ ス化し た EJB エンジンの名前を MyServer と し ます。 また、 MyServer.class は、 現在の作業デ ィ レ ク ト リ に含まれてい る も の と し ます。 /jrun を、 適切なホーム デ ィ レ ク ト リ のパス に置き 換え ます。 java -Djava.security.policy=policy file -Dejipt.home=/jrun -classpath “.;/jrun/lib/ejipt.jar” MyServer メモ こ のサン プルを 使用する には、 jms.jar、 ejb.jar、 jta.jar、 およ び jndi.jar フ ァ イ ルが シ ス テ ム のク ラ ス パス に対し て 定義 さ れてい る 必要が あ り ま す。 ま た は、 こ れら の フ ァ イ ルを -classpath 引数で指定 し ます。 JRun サービ ス と し てのカ ス タ ム サーバーの使用 allaire.ejipt.Ejipt を 拡張 し て、 そ れを allaire.ejipt.Ejipt の代わ り に使用 し て JRun サーバーで実行す る 場合は、global.properties フ ァ イ ルを開 き 、 ejb.ejipt.classname プ ロ パテ ィ を、 allaire.ejipt.Ejipt を拡張する ク ラ ス の名前に変更 し ます。 ま た、ク ラ ス が含まれてい る JAR フ ァ イ ルを追加 し て ejb.classpath プ ロ パテ ィ を更新 し ます。 第 3 章 EJB エ ン ジ ンの設定 110 サー ド パーテ ィ JDBC ド ラ イバの使用 サー ド パーテ ィ JDBC ド ラ イ バ を 使用す る 場合は、 こ れを サーバー マ シ ン に イ ン ス ト ールする 必要があ り ま す。 サーバーを 起動する 前に、 ド ラ イ バの JAR フ ァ イ ルを ク ラ スパスに含める必要があ り ます。 EJB サンプルを make フ ァ イルを使用し て実行する 場合は、 次の行を入力 し ます。 その際、 ド ラ イ バの正 し いパ ス を指定 し て く だ さ い。 bash$ export JDBC_DRIVERS=/path/ ド ラ イバ名 ま た、 deploy.properties フ ァ イ ル内の ejipt.sourceDriverClassName も 必ず設定 し て く だ さ い。 デバ ッ グ モー ド での実行 EJB エン ジ ンは、 Java Debugger を使用 し て実行で き ます。 た と えば、 JRun サンプル を Java Debugger で実行で き ま す。 EJB エ ン ジ ン を こ の よ う に実行す る こ と に よ り 、 Bean の手順を追っ て示 し 、 デバ ッ グ処理を非常に単純かつ明瞭な も のにで き ます。 Java Debugger でサーバーを実行するには 1 次のコ マン ド を 入力し ま す ("java" ではなく "jdb" であ る こ と に注意し てく ださ い) 。 jdb -Djava.security.policy=/jrun/lib/jrun.policy -Dejipt.home=/jrun -classpath ".;/jrun/lib/ejipt.jar" Server メモ こ のサンプルを使用する には、 jms.jar、 ejb.jar、 jta.jar、 お よ び jndi.jar フ ァ イルを シ ス テ ム の ク ラ ス パ ス に含め る 必要が あ り ま す。 ま た は、 こ れ ら の フ ァ イ ル を -classpath 引数で指定し ます。 Windows NT では、- classpath 引数に JAR フ ァ イ ルを指定す る 場合、 スペース が足 り なければフ ァ イ ルの短縮名を使用 し ます ( た と えば、 Program Files の代わ り に Progra~1 を使用 し ます )。 2 プ ロ ンプ ト に、 次の コ マ ン ド を入力 し ます。 % stop at ejbeans.BalanceBean:39 % run 3 別のコ マン ド プロ ン プト ウ ィ ン ド ウ を 開き 、 ク ラ イ アン ト を 起動し ま す (Windows では必ず makew を 使用し てく ださ い )。 C:\> bash bash$ export JRUN_HOME=/jrun bash$ cd /jrun/samples/sample2a bash$ make run /deploy お よび /runtime デ ィ レ ク ト リ の移動 4 111 ロ グ イ ン し て ト ラ ンザ ク シ ョ ン を実行 し ます。 サーバーは、 BalanceBean の 40 行目で停止 し ます。 5 プ ロ ンプ ト に 「cont」 と 入力 し て、 処理を続行 し ます。 追加情報およびコ マン ド については、「help」 と 入力する か、 ま たは、 Java Debugger のマニ ュ アルを参照 し て く だ さ い。 /deploy および /runtime デ ィ レ ク ト リ の移動 /deploy お よ び /runtime デ ィ レ ク ト リ は、 公開す る Bean だけでな く 、 JRun が生成 し た ホ ーム およ びオブジ ェ ク ト の実装が含ま れて いる ペア です。 そ のペア の共通の 親デ ィ レ ク ト リ は、 ejipt.ejbDirectory と 呼ばれ ま す。 こ の親デ ィ レ ク ト リ は、 JRun サーバーご と に JRun のルー ト デ ィ レ ク ト リ /servers/ サーバー名 と い う デ ィ レ ク ト リ に設定 さ れます。 ただ し 、 次の よ う に ejipt.ejbDirectory プ ロ パテ ィ を変更する と 、 /deploy お よ び /runtime デ ィ レ ク ト リ を別の場所か ら 使用で き ます。 • EJB エ ン ジ ン を JRun サービ ス と し て実行する場合 JRun サーバーの local.properties フ ァ イ ルを 開き 、- Dejipt.ejbDirectory を 、 {jrun.server.rootdir} か ら 、 /deploy お よ び /runtime デ ィ レ ク ト リ が含まれてい る デ ィ レ ク ト リ の完全 指定パ ス に変更す る こ と に よ っ て、 ejb.javaargs プ ロ パテ ィ を変更 し ます。 • ス タ ン ド ア ロ ン EJB エ ン ジ ン を実行する場合 Java コ マン ド ラ イ ン パ ラ メ ー タ と し て -Dejipt.ejbDirectory="full directory path" を追加 し ます。 同 じ ホ ス ト 上で 複数の EJB エ ン ジ ン を 実行す る 場合は、- Dejipt.classServer.port=classserverport お よ び -Dejipt.homePort=homeport と い う Java コ マ ン ド ラ イ ン パ ラ メ ー タ を使 用 し て、 エン ジ ン ご と に個別のポー ト 番号を指定す る 必要があ り ます。 ス テージ ング と 運用環境 EJB のテ ス ト が可能な 状態にな っ た ら 、 ス テ ージ ン グ 領域を 設定し て 実行時環境を シ ミ ュ レ ー ト で き ま す。 こ の ス テージ ン グ 領域 を 使用 し て シ ス テ ム テ ス ト を 行い、 runtime 実行可能モジ ュ ールを作成 し ます。 最終的な運用環境では、/deploy ディ レ ク ト リ はオプショ ン です。テス ト を 終了し たら 、 /runtime デ ィ レ ク ト リ を圧縮 し 、運用環境で /runtime デ ィ レ ク ト リ を複製で き ます。 ス テ ージ ン グ 領域では、 javac ま た はそ の他の Java コ ン パイ ラ を 使用でき る よ う に し てお く 必要があ り ます。 第 3 章 EJB エ ン ジ ンの設定 112 作成 と 作成後 必要に応じ 、 ejbPostCreate() メ ソ ッ ド は、 実際の 作成を 実行し ま す。 そ のた め、 イ ン ス タ ン ス フ ィ ールド の必須検証を 行う には通常、 ejbCreate() メ ソ ッ ド が使用 さ れ ます。 ejbCreate() お よ び ejbPostCreate() メ ソ ッ ド の引数 リ ス ト は同 じ であ る 必要があ り ます。 次の ejbPostCreate() メ ソ ッ ド の実装ではま ず、 データ ベース への接続を 取得し 、 そのプ ラ イ マ リ キーに よ っ て表 さ れ る オブジ ェ ク ト がデー タ ベー ス 内に存在す る か ど う かが調べら れま す。存在する 場合は、Bean イ ン ス タ ン ス のス テート が設定さ れま す。 Select が結果を返さ ない場合は、 オブジェ ク ト が作成さ れてデータ ベース に挿入さ れま す。 public void ejbPostCreate(final int accountId) throws CreateException, RemoteException{ try{ final Statement statement = ResourceManager.getConnection(“source1”).createStatement(); final ResultSet results = statement.executeQuery("SELECT value FROM account WHERE id = " + _context.getPrimaryKey()); if (!results.next()){ statement.executeUpdate("INSERT INTO account (id, value) VALUES ("+_context.getPrimaryKey() +"," + _value +")"); }else{ _value = results.getInt(1); results.close(); } } catch (final Exception exception){ exception.printStackTrace(); throw new RemoteException("create failed"); } } コ ン テナは、 createSQL ス テー ト メ ン ト を実行する こ と に よ っ て作成引数の妥当性を チェ ッ ク し ます。 createSQL は、 プ ラ イ マ リ キー フ ィ ール ド が含まれている結果セ ッ ト を返し ま す。 結果が返さ れない場合は、 CreateException が返さ れ、 作成引数が無効 で あ る こ と を示 し ます。 結果が返 さ れた場合は、 コ ン テナに よ り 、 返 さ れた フ ィ ール ド を基に し てプ ラ イ マ リ キーが生成されます。 さ らにコ ンテナによ り 、 そのプラ イマ リ キーを持つオブジェ ク ト が サーバー内に存在す る か ど う かが調べ ら れます。 サーバー内にプ ラ イ マ リ キーが存在 し 、 ejipt.isCreateSilent が true に設定 さ れ なかっ た場合は、 javax.ejb.DuplicateKeyException が返 さ れます。 コ ン テキス ト フ ァ ク ト リ 113 コ ン テキス ト フ ァ ク ト リ ホ ー ム オブ ジ ェ ク ト の LDAP デ ィ レ ク ト リ へのバ イ ン デ ィ ン グ を 可能にす る JNDI Referenceable のサポー ト が提供されています。 すべてのホーム参照は、 LDAP サービ ス プ ロ バ イ ダに よ っ て供給 さ れてい る も の を含む、 任意の JNDI コ ン テ キ ス ト に含め る こ と がで き ます。 コ ン テキス ト フ ァ ク ト リ を 作成する こ と によ っ て、 カス タ ム JNDI コ ン テキス ト を 使用 でき ま す。 カ ス タ ム コ ン テ キ ス ト ま た はサード パーテ ィ コ ン テ キ ス ト のいずれかの インス タ ンス へのアク セス が一度確立する と 、こ れに応じ て参照がホーム オブジ ェ ク ト に バイ ン ド ま た は再バイ ン ド さ れま す。 ホ ーム オブジ ェ ク ト 参照は、 通常の検索メ カ ニ ズ ム を使用 し て既定の EJB エン ジ ン コ ン テ キ ス ト か ら 取 り 出 さ れます。 JNDI を使用し てネーム サーバーま たはディ レ ク ト リ サーバーのサービ ス にアク セス する 場合は まず、 JNDI コ ン テキ ス ト の イ ン ス タ ン ス を作成 し ます。 JNDI には、 こ の コ ン テキ ス ト 作成プロ セス を 標準化する ための InitialContext API が用意さ れていま す。 JNDI に よ って作成さ れる コ ンテキ ス ト の タ イ プは、InitialContext API を呼び出す前に サービス プロ バイ ダ固有のコ ンテキス ト ファ ク ト リ を指定する こ と によ って制御し ま す。 JRun には、 JNDI コ ン テキ ス ト を作成す る ための コ ン テキ ス ト フ ァ ク ト リ が含まれて い ます。 こ れ ら の コ ン テ キ ス ト は、 標準 bind メ カ ニズ ム を使用 し て、 EJB エン ジ ンに よ っ て取 り 込まれた後に ク ラ イ ア ン ト に割 り 当て ら れます。 ディ レ ク ト リ サーバー (LDAP) へのア ク セス を 提供する オプシ ョ ン な ど 、 JNDI コ ン テキス ト をカ ス タ マ イ ズする ためのオプシ ョ ンが多数あ る ため、 EJB エンジンは、 ホーム オブジ ェ ク ト を サード パーテ ィ コ ン テ キ ス ト にはバイ ン ド し ま せん。 こ れに よ り 、 拡大し 続ける カス タ マイ ゼーショ ン オプショ ン リ ス ト を制御する ための専用のプロ パティ セ ッ ト を指定す る 必要はあ り ません。 カ ス タ ム コ ン テ キ ス ト フ ァ ク ト リ を作成する には、 java.naming.spi.InitialContextFactory イ ン タ ー フ ェ イ ス を、 1 つの メ ソ ッ ド getInitialContext(...) を 持つク ラ ス 内に組み込む必要があ り ま す。 こ のメ ソ ッ ド 内で、 EJB エン ジン の初期コ ン テキス ト を 作成し 、 任意のカ ス タ ム オブジェ ク ト を こ の コ ン テ キ ス ト にバイ ン ド し ま す。 ま た、 ク ラ イ ア ン ト コ ー ド 内では、 カ ス タ ム コ ン テキ ス ト フ ァ ク ト リ の名前 と と も に allaire.ejipt.ContextFactory INITIAL_CONTEXT_FACTORY プ ロ パテ ィ も 必ず設定 し て く だ さ い。 EJB エン ジ ンは、JRun に よ っ てエ ク ス ポー ト さ れたホーム オブジ ェ ク ト を持つサー ド パーテ ィ JNDI コ ン テキ ス ト を カ ス タ マ イ ズす る のに、 標準 コ ン テ キ ス ト フ ァ ク ト リ メ カ ニズム に依存し ま す。 LDAP ディ レ ク ト リ など のサード パーティ コ ン テキス ト から ホーム オブジェ ク ト にア ク セスする場合はまず、 コ ンテキス ト フ ァ ク ト リ を作成し ます。 さ ら に、 こ の コ ン テ キ ス ト フ ァ ク ト リ は、 JRun お よ びサー ド パーテ ィ デ ィ レ ク ト リ サーバーの両方に接続し 、選択さ れている カ ス タ マイ ゼーショ ン オプショ ン を 使用し て ホーム オブジ ェ ク ト をバ イ ン ド し ます。 第 3 章 EJB エ ン ジ ンの設定 114 プ ロパテ ィ の操作 こ のセ ク シ ョ ン には、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 で扱われていない EJB プ ロ パテ ィ の操作方法に関す る 情報が含まれてい ます。 コ ン テナのプ ロパテ ィ EJB エ ン ジ ン に よ っ て作成 さ れたすべての コ ン テナには独自のプ ロ パテ ィ リ ス ト が あ り ます。 こ のプ ロ パテ ィ リ ス ト は、 既定では、 サーバーのプ ロ パテ ィ リ ス ト に設定 さ れます。 JAR の ト ッ プ レベルの default.properties フ ァ イ ルは、 こ のプ ロ パテ ィ リ ス ト に ロ ー ド さ れ、 以前に ロ ー ド さ れたサーバー プ ロ パテ ィ に上書 き さ れます。 公開さ れたすべての Bean は、 すべてのシス テム プ ロパテ ィ 、 ejipt.properties、 コ マン ド ラ イ ン プロ パテ ィ 、 およ び local.properties への読み取り 専用のア ク セ ス 権限を 持っ ていま す。 下位レ ベルのプロ パティ にアク セス する と 、 上位レ ベルでは常にプロ パ ティ が上書 き さ れます。 Bean プ ロパテ ィ こ のセ ク シ ョ ンには、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 で扱われていない Bean プ ロ パテ ィ に関す る 情報が含まれてい ます。 命名 Bean 命名 Bean ま たはそれら のイ ン タ ーフ ェ イ ス には必要条件も 制限事項も あ り せん。命名 規則では一切仮説を 立て ら れま せん。 し た がっ て、 Bean 開発者は、 Bean のホ ーム イ ン タ ーフ ェ イ ス、Bean の リ モー ト イ ン タ ーフ ェ イ ス、お よ び Bean の実装の名前を Bean のプ ロ パテ ィ フ ァ イ ル内で指定する こ と が必要です。 た と えば、 次のエン ト リ ( 推奨規則) を含め る こ と がで き ます。 ejb.homeInterfaceClassName=ejbeans.CustomerHome ejb.remoteInterfaceClassName=ejbeans.Customer ejb.enterpriseBeanClassName=ejbeans.CustomerBean # 次のエ ン ト リ を含める こ と も で き ます。 ただ し 、 推奨は し ません。 #ejb.homeInterfaceClassName=ejbeans.Abc #ejb.remoteInterfaceClassName=ejbeans.Xyz #ejb.enterpriseBeanClassName=ejbeans.SomeBean エン テ ィ テ ィ Bean のプラ イ マリ キー ク ラ ス タ イ プを 指定する 必要があ り ま す。 こ の プ ラ イ マ リ キー ク ラ ス タ イ プは、 Deploy ツールが ク ラ ス 実装を作成す る 際に使用 し た り 、 コ ン テナが コ ン テナ管理パーシ ス タ ン ス を使用す る 際に使用 し ます。 # プ ラ イ マ リ キー ク ラ ス タ イ プ ejb.primaryKeyClassName=ejbeans.PK プ ロパテ ィ の操作 115 Home 名 開発者は、JNDI ネーム空間内の Bean に関連付け ら れている Home 名を指定する必要が あ り ま す。 こ のプロ パティ は、 JNDI コ ン テキス ト 内のホ ーム オブジェ ク ト を バイ ン ド す る のに使用 さ れます。 ejb.beanHomeName=sample2a.BalanceHome ス テー ト 管理 ejb.stateManagementType プ ロ パテ ィ は、 セ ッ シ ョ ン Bean の ス テー ト の管理方法を 指定し ま す。 有効な値は、 stateful_session と stateless_session です。 指定し な い場合、 EJB エン ジ ンは、 Bean を エン テ ィ テ ィ Bean と 想定 し ます。 ejb.stateManagementType=stateful_session 許容 ID 開発者は、 allowedIdentities プロ パテ ィ を 使用し て、 Bean のすべて のメ ソ ッ ド ま たは特定のメ ソ ッ ド を 呼び出す権限を 与える ID ま たはロ ールの一覧を 指定する こ と に よ っ て、 ロ ールベースのセキ ュ リ テ ィ を実装でき ます。 指定し ない場合、 プ ロパテ ィ は、 デフ ォ ル ト では、 すべての認証 さ れたユーザに設定 さ れます。 メ ソ ッ ド レベルの セキ ュ リ テ ィ を指定す る には、 メ ソ ッ ド 名を接頭辞 と し て使用 し ます。 特殊な値 system を 指定する と 、 system ID を 使用し た呼び出し のみが、メ ソ ッ ド を 実行 で き ます。 remove.ejb.allowedIdentities=system 特殊な値 all は、 認証に関係な く すべてのユーザを示 し ます。 次の例では、 すべての ユーザが create お よ び getValue メ ソ ッ ド を使用で き ますが、 save メ ソ ッ ド は貯蓄 者 ロ ール内のユーザ し か使用で き ず、 spend メ ソ ッ ド は支出者 ロ ール内のユーザ し か 使用で き ない よ う に制限 し ます。 create.ejb.allowedIdentities=all getValue.ejb.allowedIdentities=all save.ejb.allowedIdentities=saver spend.ejb.allowedIdentities=spender オブ ジ ェ ク ト の タ イ ムアウ ト Bean は、 ejb.sessionTimeout を 使用し て、 セッ ショ ン オブジェ ク ト のタ イ ム ア ウ ト ま での秒数を 指定でき ま す。指定し ない場合、 既定では、 900 (15 分) に設定さ れま す。 ejb.sessionTimeout=300 ejipt.isTimeoutFromCreate は、 セ ッ シ ョ ン オブジ ェ ク ト の タ イ ム ア ウ ト を、 オブ ジ ェ ク ト 作成直後か ら 始め る か、 ま たは直前のア ク セスか ら 始め る かを指定する ための プロ パティ です。 こ のプロ パティ を 指定し ない場合、 既定では、 直前のアク セス に設定 さ れます。 ejipt.isTimeoutFromCreate=true Bean には、 追加のプ ロ パテ ィ を指定で き ま す。 利用可能なプ ロ パテ ィ の詳細な一覧 については、JRun JavaDocs の API マニュ アルの EjiptProperties を 参照し てく ださ い。 第 3 章 EJB エ ン ジ ンの設定 116 既定のプ ロパテ ィ default.properties フ ァ イ ルは通常、 コ ン テ ナ レ ベルの プロ パテ ィ を 指定し ま す。 コ ン テナ内のすべての Bean は、 こ の フ ァ イ ル内で設定 さ れてい る プ ロ パテ ィ にア ク セ ス で き ます。 た と えば、 すべての Bean が利用で き る コ ン テ キ ス ト の数を設定 し た り 、 特定の Bean について コ ン テ キ ス ト の数を制限で き ます。 ま た、 各 Bean のプ ロ パ テ ィ フ ァ イ ル内でプ ロ パテ ィ を指定す る のではな く 、 JAR 内のすべての Bean に適用 さ れ る プ ロ パテ ィ の指定 も で き ます。 ejipt.maxContexts=100 BigBean.ejipt.maxContext=5 default.properties フ ァ イ ル内で設定 さ れ る プ ロ パテ ィ は、その コ ン テナ内の Bean にのみ影響を与え ます。 プ ロ パテ ィ の先頭に Bean の名前を付け る と 、 その Bean のプ ロ パテ ィ のみが設定 さ れます。 マニ フ ェ ス ト 記述子 フ ァ イ ル を 使用 し な い場合は、 JAR フ ァ イ ル内の Bean を 識別す る manifest フ ァ イ ルを含め る 必要があ り ます。 公開す る 各 Bean のプ ロ パテ ィ フ ァ イ ルは、 'Enterprise-Bean : True' と い う エン ト リ と と も に manifest フ ァ イ ル内に リ ス ト さ れてい る 必要があ り ます。サブデ ィ レ ク ト リ /ejbenas 内の EJB ご と に、 次の 2 つのエン ト リ があ り ます。 Name:ejbeans/Customer.properties Enterprise-Bean:True プロパテ ィ フ ァ イルのパスは、 ス ラ ッ シ ュ を除き 、 manifest フ ァ イル内に リ ス ト されて い る パ ス と 同 じ で あ る 必要が あ り ま す。 こ の ス ラ ッ シ ュ には、 manifest フ ァ イ ルに よ っ て常に フ ォ ワ ー ド ス ラ ッ シ ュ が含まれます。 ま た、 name と Enterprise-Bean の ペアは空白行で区切 る必要があ り ます。 公開プ ロパテ ィ deploy.properties フ ァ イルには通常、サーバーレベルのプロパテ ィ が含まれています。 こ の フ ァ イ ルは、 公開す る Bean、 ホ ス ト 名、 デー タ ソ ー ス、 お よ び接続制限を指定 す る 際に Deploy ツールに よ っ て使用 さ れます。 deploy.properties フ ァ イ ルは、 /deploy ディ レ ク ト リ 内に保存し ま す。 次の例は、 簡単な deploy.properties フ ァ イ ルを 示 し ます ( 接頭辞 と し て # が付いてい る プ ロ パテ ィ は コ メ ン ト です )。 ejipt.classServer.host=localhost ejipt.ejbJars=sample_ejb.jar ejipt.jdbcSurces=source1 source1.ejipt.sourceURL=jdbc:odbc:sampledb #source1.ejipt.sourceUser=xyz #source1.ejipt.sourcePassword=pass ejipt.logStackTrace=true ejipt.userHomeName=sample.CustomerHome ejipt.roleHomeName=ejipt.RoleHome ejipt.loginSessionHomeName=sample.CustomerSessionHome ejipt.storeName=default プ ロパテ ィ の操作 117 ejipt.classServer.host はホス ト 名を 識別し ま す。 ロ ーカルで実行する 場合は、 値を localhost のま ま にでき ま す。 ただし 、 リ モート ク ラ イ アン ト が接続する 場合は、 値を サーバーのホ ス ト 名に設定する 必要があ り ま す。 値を 指定し ない場合、 既定では、 プロ パテ ィ は現在のホ ス ト の名前に設定 さ れます。 公開す る JAR フ ァ イ ルの一覧を指定する には、 ejipt.ejbJars プ ロ パテ ィ を使用 し ま す。 プ ロ パテ ィ の値は、 公開す る JAR フ ァ イ ルを カ ン マ区切 り の リ ス ト にす る 必要が あ り ます。 リ ス ト し た JAR フ ァ イ ルは、 /deploy デ ィ レ ク ト リ 内に格納 さ れてい る 必 要があ り ます。 指定 し ない場合、 既定では、 プ ロ パテ ィ は /deploy デ ィ レ ク ト リ 内の すべての JAR フ ァ イ ルに設定 さ れます。 各 JAR フ ァ イ ルは、 サーバー内に各 JAR フ ァ イ ル独自の コ ン テナを持っ てい ます。 ejipt.jdbcSources お よ び source1.ejipt.source... プ ロ パテ ィ は、 デー タ ベース 情報を 指定し ま す。詳細は、『JRun によ る アプ リ ケーシ ョ ンの開発』 を参照し て く だ さい。 ejipt.logStackTrace=true は、すべてのス タ ッ ク ト レ ース が詳し く 記録さ れる よ う に 指定 し ます。 ejipt.userHomeName、 ejipt.roleHomeName、 およ び ejipt.loginSessionHomeName は すべて、 ユーザ認証 と セキ ュ リ テ ィ を参照 し ます。 詳細は、 『JRun に よ る アプ リ ケー シ ョ ンの開発』 を参照 し て く だ さ い。 instance.store は、 サーバー内のすべての コ ン テナに よ っ て使用 さ れ る 既定の ス ト アです。 instance.store の固有の名前は、 ejipt.storeName プロ パティ を 設定する こ と に よ っ て指定で き ま す。 ま た、 次の よ う に、 Bean の名前を プ ロ パテ ィ の前に付け る こ と に よ っ て、 その Bean の イ ン ス タ ン ス ス ト ア も 指定で き ます。 Customer.ejipt.storeName=Customer.store デー タ ソ ースの定義 deploy.properties フ ァ イ ルには、データ ソ ース を 定義する ためのプロ パティ も 含ま れて います。 次の ス ニペ ッ ト は、 source1、 すなわちデー タ ソ ース の定義を示 し ます。 ejipt.jdbcSources=source1 source1.ejipt.sourceURL=jdbc:odbc:sample source1.ejipt.sourceUser=xyz source1.ejipt.sourcePassword=pass ejipt.jdbcSource プ ロ パテ ィ は ソ ース に名前を付け ます。 ejipt.sourceURL は標準 Java URL 定義です。 こ の場合、 標準 JDBC/ODBC ド ラ イ バを 使用し て sample と いう 名前の データ ベース に接続し ま す。 ejipt.sourceUser およ び ejipt.sourcePassword プロ パティ には、 デー タ ベース のユーザの名前 と パ ス ワ ー ド が含まれてい ます。 サー ド パーテ ィ JDBC ド ラ イ バを使用す る 場合は必ず、 ejipt.sourceDriverClassName お よ び ejipt.sourceURL プ ロ パテ ィ を設定 し て く だ さ い。 source1.ejipt.sourceDriverClassName=oracle.jdbc.driver.OracleDriver source1.ejipt.sourceURL=jdbc:oracle:thin:@host:1521:orcl 正 し いプ ロ パテ ィ 値は、 特定の ド ラ イ バに固有の も のでなければな り ません。 必ず、 ド ラ イ バに付属 し てい る マニ ュ アルを読んで く だ さ い。 こ れ ら のプ ロ パテ ィ の詳細は、 『JRun に よ る アプ リ ケーシ ョ ンの開発』 を参照 し て く だ さ い。 第 3 章 EJB エ ン ジ ンの設定 118 コ ン テナ管理パーシ ス タ ン スの使用 EJB が CMP を使用す る こ と を示すには、 ejb.containerManagedFields プ ロ パテ ィ 内 の コ ン テナに よ っ て管理 さ れ る フ ィ ール ド を指定 し ます。 Bean のプ ロ パテ ィ フ ァ イ ル内に ejb.containerManagedFields が存在す る と 、 CMP の使用が ト リ ガ さ れ ま す。 ejb.containerManagedFields は、CMP を instance.store と 併用す る 場合に設定す る 唯 一のプ ロ パテ ィ です。 次は、 id はプ ラ イ マ リ キー フ ィ ール ド で、 value は保存す る デー タ フ ィ ール ド であ る 例を示 し ます。 ejb.containerManagedFields= id,value イ ンス タ ンス ス ト ア instance.store を使用す る 場合は、 Bean に finder メ ソ ッ ド を完全に実装す る 必要が あ り ます。 すべてのコ ンテナ管理フ ィ ールド は、 ejb.containerManagedFields リ ス ト 内に表示さ れ、 instance.store を使用する 場合は直列化可能であ る 必要があ り ます。 すべての コ ン テナ管理フ ィ ール ド は、公開記述子 ejb.containerManagedFields リ ス ト 内の <cmp-fields> 要素内に表示 さ れ、 instance.store を使用す る 際は直列化可能であ る必要があ り ます。 ま た、 Bean は、 SQL ク エ リ で使用す る デー タ な ど の一時デー タ の保存に使用で き る 追加の イ ン ス タ ン ス変数 も 定義で き ます。 AutoCaller メ ソ ッ ド 119 AutoCaller メ ソ ッ ド EJB エ ン ジ ンは、 EJB オブジ ェ ク ト に対す る メ ソ ッ ド 呼び出 し の ス ケ ジ ュ ー リ ン グ を サポー ト し てい ます。 こ の タ ス ク は、 ResourceManager.createAutoCaller() お よ び ResourceManager.removeAutoCaller() メ ソ ッ ド を使用 し て管理 し ます。 AutoCaller を作成する には、 createAutoCaller() メ ソ ッ ド を、 オブジ ェ ク ト 、 メ ソ ッ ド 、 パラ メ ータ 、およ び間隔 (ミ リ 秒) と と も に呼び出し ます。createAutoCaller() メ ソ ッ ド は、 AutoCaller の固有の ID を返 し ます。 次に、 サーバーは、 AutoCaller が削除 さ れ る か、 ま たはサーバーが停止する まで、指定さ れた メ ソ ッ ド を指定された間隔で呼び出し ます。 AutoCaller を削除す る には、 ResourceManager.removeAutoCaller() メ ソ ッ ド を ID と と も に呼び出 し ます。 AutoCaller メ ソ ッ ド の永続性は、 サーバーがシ ャ ッ ト ダ ウ ン し てい る 間は失われます。 EJB サンプル 7C の次の例は、 createAutoCaller() メ ソ ッ ド を呼び出 し ます。 ... try { Method method = Customer.class.getMethod("updateWorth", new Class[] {}); long interval = Long.parseLong(getEnvironment().getProperty("updateInterval", "1000")); _callerId = ResourceManager.createAutoCaller(customer, method, new Object[] {}, interval); } catch (Exception exception) { exception.printStackTrace(); } ... 詳細は、 JRun JavaDocs フ ァ イ ルに付属の API マニュ アル ResourceManager を 参照し て く だ さ い。 第 3 章 EJB エ ン ジ ンの設定 120 詳細情報 こ のセク ショ ン には、 『JRun によ る アプリ ケ ーショ ン の開発』 で扱われていない高度な EJB 機能に関する 詳細情報が記載 さ れてい ます。 ト ラ ンザ ク シ ョ ン属性 Bean レベルの ト ラ ンザ ク シ ョ ン属性を設定する には、 次の例の よ う に、 ejb.transactionAttribute env-entry を使用 し ます。 ejb.transactionAttribute=Supports save.ejb.transactionAttribute=Mandatory spend.ejb.transactionAttribute=Required ト ラ ンザ ク シ ョ ンの管理 Bean 管理 ト ラ ンザ ク シ ョ ン (BMT) は、 セ ッ シ ョ ン Bean にのみ使用で き ます。 エ ン ティ ティ Bean はこ の機能を使用でき ま せん。 BMT を使用する 場合は、 Bean のプロ パティ フ ァ イ ル内の ト ラ ンザ ク シ ョ ン属性を次の よ う に設定す る 必要があ り ます。 spend.ejb.transactionAttribute=BeanManaged セキ ュ リ テ ィ の無効化 EJB セキ ュ リ テ ィ チ ェ ッ ク を無効にする には、 Bean のプ ロ パテ ィ に ejb.allowedIdentities=all プロ パティ を 追加し ま す。EJB セキュ リ ティ を 使用し ない 場合は、 必ずセキ ュ リ テ ィ チ ェ ッ ク を完全に無効にす る よ う にプ ロ パテ ィ を指定 し て く だ さ い。 以上のプ ロ パテ ィ を使用す る と 、 すべての呼び出 し 側は Bean のすべての メ ソ ッ ド にア ク セ ス で き ます。プ ロ パテ ィ の前に メ ソ ッ ド の名前を付けた場合は、all に よ っ て、 その メ ソ ッ ド のみを呼び出す こ と がで き ます。
© Copyright 2024 Paperzz