GlassFish v3.x Administration Hands On
 

Like this? Share it with your network

Share

GlassFish v3.x Administration Hands On

on

  • 6,813 views

This is hands on material for GlassFish administration. You can use this hands on for v3.0 but

This is hands on material for GlassFish administration. You can use this hands on for v3.0 but

Statistics

Views

Total Views
6,813
Views on SlideShare
6,116
Embed Views
697

Actions

Likes
6
Downloads
121
Comments
0

9 Embeds 697

http://yoshio3.com 496
http://www.slideshare.net 157
url_unknown 28
http://paper.li 6
https://twimg0-a.akamaihd.net 3
http://static.slidesharecdn.com 2
http://webcache.googleusercontent.com 2
https://si0.twimg.com 2
https://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GlassFish v3.x Administration Hands On Document Transcript

  • 1. Oracle GlassFish Server 管理ハンズオンセミナーdirChange HistoryDate Author Contents of Modification RevisionJul 23, 2010 Yoshio Terada 既存の資料を基に作成 Ver. 1.0 誤字・脱字を修正 Ver. 1.1 「詳細アーキテクチャ」のページを追加 Ver. 2.0- Oracle GlassFish v3 管理ハンズオン - 2
  • 2. Oracle GlassFish Server 管理ハンズオンセミナーGlassFish v3.0.1 管理ハンズオン資料 Creation Date: Jul 05, 2010 Last Update: Aug 22, 2010 Version: 1.2- Oracle GlassFish v3 管理ハンズオン - 3
  • 3. Oracle GlassFish Server 管理ハンズオンセミナー目次 目次 ..................................................................................................................................... 4 1. ハンズオンラボの目的 ..................................................................................................... 6 2. 事前準備......................................................................................................................... 6 3. ディレクトリ構成の確認 (目標:5 分) .......................................................................... 13 4. asadmin コマンドの基本(目標:10 分) ......................................................................... 16 標準コマンドシェル(シングルモード) ..................................................................... 16 マルチコマンドモード(マルチモード) ..................................................................... 16 asadmin コマンドのヘルプ ......................................................................................... 16 サブコマンドの一覧表示 .............................................................................................. 17 サブコマンドの実行とヘルプ表示 ................................................................................ 19 list / set / get コマンドについて .................................................................................. 20 追加課題 1: ファイルからサブコマンドを実行 ........................................................... 22 5. Web 管理コンソールの基本(目標:10 分) ..................................................................... 24 管理コンソールへのアクセス ....................................................................................... 24 GlassFish のメンバー登録 .......................................................................................... 26 オープンソース版と製品版の確認 ................................................................................ 27 管理コンソールの概要 .................................................................................................. 27 6. REST インタフェースによる管理(目標:10 分) ........................................................... 29 REST インタフェースへのアクセス ............................................................................ 29 コンテキストルートパスとドット表記名のマッピング ............................................... 31 REST メソッドの種類と処理内容 ................................................................................ 33 XML、JSON フォーマットの取り扱い ....................................................................... 33 REST インタフェースのその他の操作 ........................................................................ 36 7. Apache Felix コンソール (目標:10 分) ....................................................................... 37 Apache Felix Remote Shell へ接続 ............................................................................. 37 ヘルプの表示................................................................................................................. 37 インストール済みの OSGi バンドルの表示 ................................................................. 38 OSGi バンドルの検索 ................................................................................................... 38 バンドルが提供するサービスの参照 ............................................................................ 39 追加課題1:独自バンドルの作成と配備 ..................................................................... 39 8. ドメインの管理(目標:10 分) ........................................................................................ 42 ドメインの作成 ............................................................................................................. 42 ドメインの一覧表示...................................................................................................... 43- Oracle GlassFish v3 管理ハンズオン - 4
  • 4. Oracle GlassFish Server 管理ハンズオンセミナー ドメインとドメイン管理サーバーの起動 ..................................................................... 43 ドメインとドメイン管理サーバーの停止 ..................................................................... 44 ドメインとドメイン管理サーバーの再起動 ................................................................. 44 ドメインの削除 ............................................................................................................. 44 追加課題 1:ログアウト時シャットダウンを防ぐ ....................................................... 45 9. パスワードの管理(目標:10 分)..................................................................................... 46 管理パスワードの変更 .................................................................................................. 46 マスターパスワードの変更........................................................................................... 47 10. アプリケーションの配備(目標:10 分) ........................................................................ 51 Web Application の配備 ............................................................................................... 51 Web Application の配備取り消し ................................................................................ 55 11. JDBC の設定(目標:10 分) .......................................................................................... 58 JDBC ドライバのインストールとパス設定 ................................................................. 58 JDBC 接続プールの作成 .............................................................................................. 60 JDBC リソースの設定 .................................................................................................. 64 12. 仮想サーバーの作成(目標:10 分) ............................................................................... 66 ホスト名の追加 ............................................................................................................. 66 仮想サーバー毎のディレクトリを作成 ........................................................................ 67 仮想サーバー毎のコンテンツを作成 ............................................................................ 67 仮想サーバーの作成...................................................................................................... 67 管理コンソールから仮想サーバーの作成 ..................................................................... 69 仮想サーバー単位のアプリケーション配備 ................................................................. 70 13. Java VM(JRockit VM)への切り替え(目標:15 分) ..................................................... 73 JRockit Mission Control のインストール ................................................................... 73 GlassFish に対する JRockit の設定............................................................................ 76- Oracle GlassFish v3 管理ハンズオン - 5
  • 5. Oracle GlassFish Server 管理ハンズオンセミナー1. ハンズオンラボの目的 このハンズオンラボは、Oracle GlassFish Server v3.0.1 の管理に必要な機能を把握することが目的です。本ラボを完了すると GlassFish v3.0.1 の管理概要を把握することができます。2. 事前準備 このハンズオンラボでは GlassFish Server Open Source Edition ではなく OracleGlassFish Server v3.0.1 を使用して行います。そこで NetBeans でインストールした OpenSource Edition とは別途、Oracle GlassFish Server をインストールしてください。インストールを開始する前に NetBeans、GlassFish Server Open Source Edition を停止してください。それでは Oracle GlassFish Server のインストーラーを起動しましょう。 図 1:Oracle GlassFish Server のインストーラー 起動すると下記の画面が表示されます。画面の指示に従い「次へ」ボタンを押下します。 図 2:Oracle GlassFish Server インストールウィザード- Oracle GlassFish v3 管理ハンズオン - 6
  • 6. Oracle GlassFish Server 管理ハンズオンセミナー ボタンを押下すると下記の画面が表示されます。インストールディレクトリはデフォルト(C:¥glassfishv3)のまま「次へ」ボタンを押下します。 図 3:Oracle GlassFish Server インストールウィザード ボタンを押下すると下記の画面が表示されます。管理者用のパスワード(adminadmin)を入力し「次へ」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 7
  • 7. Oracle GlassFish Server 管理ハンズオンセミナー 図 4:Oracle GlassFish Server インストールウィザード ボタンを押下すると下記の画面が表示されます。このラボでプロキシサーバは使用しませんので空白のまま「次へ」ボタンを押下します。 図 5:Oracle GlassFish Server インストールウィザード- Oracle GlassFish v3 管理ハンズオン - 8
  • 8. Oracle GlassFish Server 管理ハンズオンセミナー ボタンを押下すると下記の画面が表示されます。インストーラーがデフォルトで検知した JDK(JDK 1.6.0_21)を使用します、そのまま「次へ」ボタンを押下します。 図 6:Oracle GlassFish Server インストールウィザード ボタンを押下すると下記の画面が表示されます。内容を確認した後「インストール」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 9
  • 9. Oracle GlassFish Server 管理ハンズオンセミナー 図 7:Oracle GlassFish Server インストールウィザード インストールが開始すると下記のような画面が表示されます、しばらくお待ちください。 図 8:Oracle GlassFish Server インストールウィザード インストールが完了すると下記の画面が表示されます。この段階では製品の登録をスキ- Oracle GlassFish v3 管理ハンズオン - 10
  • 10. Oracle GlassFish Server 管理ハンズオンセミナーップします。「次へ」ボタンを押下してください。 図 9:Oracle GlassFish Server インストールウィザード ボタンを押下すると下記の画面が表示されます。以上でインストールは完了です。「終了」ボタンを押下してインストールを終了してください。- Oracle GlassFish v3 管理ハンズオン - 11
  • 11. Oracle GlassFish Server 管理ハンズオンセミナー 図 10:Oracle GlassFish Server インストールウィザード- Oracle GlassFish v3 管理ハンズオン - 12
  • 12. Oracle GlassFish Server 管理ハンズオンセミナー3. ディレクトリ構成の確認 (目標:5 分) Oracle GlassFish Server をインストールすると下記のディレクトリ構成を確認できます。各ディレクトリを参照し、各ディレクトリにどのようなファイルが含まれるか確認してください。また各ディレクトリの役割について理解してください。 表 1:GlassFish のディレクトリ構成GlassFish のディレクトリ構成 各ディレクトリの役割.org.opensolaris,pkg IPS パッケージディレクトリbin/ 共通ユーティリティコマンドへのリンクglassfish/ GlassFish の本体glassfish/bin/ 実行可能コマンド(asadmin 等)glassfish/config/ インストール全般の設定glassfish/docs/ ドキュメントglassfish/domains/ ドメイン管理用ディレクトリglassfish/domains/domain1/ デフォルトで作成されるドメインglassfish/domains/domain1/applications/ アプリケーション配備ディレクトリglassfish/domains/domain1/autodeploy/ オートデプロイ(自動配備)用ディレクトリglassfish/domains/domain1/bin/ 空ディレクトリ(削除予定,startserv の削除により不要)glassfish/domains/domain1/config/ ドメイン固有の設定glassfish/domains/domain1/docroot/ デフォルトのドキュメントルートglassfish/domains/domain1/lib/ ドメイン固有のライブラリglassfish/domains/domain1/logs/ ドメインのログファイルglassfish/icons/ アイコンファイルglassfish/legal/ 法務関連ファイル(ライセンス、コピーライト)glassfish/lib/ GlassFish 全般で使用するライブラリ( dtd,xsd 等)glassfish/modules/ モジュール(各機能の jar 等)glassfish/osgi/ OSGi フレームワークのファイル/install/ インストール時使用ファイル/javadb/ 内蔵 JavaDB の本体/mq/ 内蔵 OpenMQ の本体/pkg/ IPS コマンドツール/updatetool/ 更新ツール GUI ツール/var/ インストール時使用- Oracle GlassFish v3 管理ハンズオン - 13
  • 13. Oracle GlassFish Server 管理ハンズオンセミナー GlassFish の管理者が使用するコマンドは GlassFish のインストールディレクトリ配下の binデ ィ レ ク ト リ (C:¥glassfishv3¥bin) 、 も し く は glassfish¥bin デ ィ レ ク ト リ(C:¥glassfishv3¥glassfish¥bin)に含まれます。bin ディレクトリ配下には管理者が頻繁に使用する asadmin コマンド、パッケージ管理用の updatetool, pkg コマンドが含まれます。それぞれのbin ディレクトリにどのようなコマンドが含まれるか確認してください。 > cd c:¥glassfishv3 C:¥glassfishv3> cd bin C:¥glassfishv3¥bin>dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥bin のディレクトリ 2010/08/05 17:18 <DIR> . 2010/08/05 17:18 <DIR> .. 2010/08/05 17:18 428 asadmin 2010/08/05 17:18 543 asadmin.bat 2010/08/05 17:18 7,766 pkg 2010/08/05 17:18 8,730 pkg.bat 2010/08/05 17:18 7,766 updatetool 2010/08/05 17:18 8,730 updatetool.bat 6 個のファイル 33,963 バイト 2 個のディレクトリ 3,223,691,264 バイトの空き領域 glassfish¥bin ディレクトリ配下には数多くの管理用コマンドが含まれます。 > cd C:¥glassfishv3¥glassfish¥bin C:¥glassfishv3¥glassfish¥bin> dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥glassfish¥bin のディレクトリ 2010/08/05 17:06 <DIR> . 2010/08/05 17:06 <DIR> .. 2010/08/05 17:06 13,374 appclient 2010/08/05 17:06 2,342 appclient.bat 2010/08/05 17:06 11,913 appclient.js 2010/08/05 17:06 493 asadmin 2010/08/05 17:06 514 asadmin.bat 2010/08/05 17:06 263 asupgrade 2010/08/05 17:06 233 asupgrade.bat 2010/08/05 17:06 767 capture-schema 2010/08/05 17:06 503 capture-schema.bat 2010/08/05 17:06 826 jspc 2010/08/05 17:06 884 jspc.bat 2010/08/05 17:06 2,269 package-appclient 2010/08/05 17:06 2,345 package-appclient.bat 2010/08/05 17:06 353 schemagen 2010/08/05 17:06 303 schemagen.bat 2010/08/05 17:06 260 startserv- Oracle GlassFish v3 管理ハンズオン - 14
  • 14. Oracle GlassFish Server 管理ハンズオンセミナー 2010/08/05 17:06 204 startserv.bat 2010/08/05 17:06 251 stopserv 2010/08/05 17:06 193 stopserv.bat 2010/08/05 17:06 430 wscompile 2010/08/05 17:06 351 wscompile.bat 2010/08/05 17:06 429 wsdeploy 2010/08/05 17:06 350 wsdeploy.bat 2010/08/05 17:06 335 wsgen 2010/08/05 17:06 286 wsgen.bat 2010/08/05 17:06 339 wsimport 2010/08/05 17:06 289 wsimport.bat 2010/08/05 17:06 337 xjc 2010/08/05 17:06 288 xjc.bat 29 個のファイル 41,724 バイト 2 個のディレクトリ 3,223,678,976 バイトの空き領域 C:¥glassfishv3¥glassfish¥bin> また GlassFish のドメインを起動した後、管理者が頻繁にアクセスするディレクトリ確認します。各ドメイン配下の config ディレクトリ(C:¥glassfishv3¥glassfish¥domains¥domain1¥config)とlogs ディレクトリ(C:¥glassfishv3¥glassfish¥domains¥domain1¥logs)の2つのディレクトリは管理上必要な情報が含まれます。config ディレクトリには各ドメインの設定ファイル、証明書キーストア等が含まれます。また logs ディレクトリにはサーバーのログ(server.log)が含まれます。GlassFish の動作上、何か問題があった場合には、logs ディレクトリ配下のログを参照し原因を突き止めます。サーバーログの内容を確認しどのような情報が出力されるか確認してください。- Oracle GlassFish v3 管理ハンズオン - 15
  • 15. Oracle GlassFish Server 管理ハンズオンセミナー4. asadmin コマンドの基本(目標:10 分) GlassFish は asadmin と呼ばれるコマンド行管理ユーティリティーを含んでいます。asadminコマンドユーティリティーを使用して、アプリケーションサーバの起動・停止のほかアプリケーションの配備やリソース設定等の管理操作を行います。asadmin コマンドは標準コマンドシェル(シングルモード)もしくはマルチコマンドモード(マルチモード)のいずれかの方法で利用できます。またasadmin コマンドは複数のサブコマンドから構成されており指定するサブコマンドに応じて管理・監視を行うことができます。ここでは標準コマンドシェル、マルチコマンドモードのいずれかを使用し asadmin コマンドでどのようなサブコマンドが存在するか、またどのようなコマンドを実行できるかを確認してください。 標準コマンドシェル(シングルモード) 標準コマンドシェルはシェルのプロンプトからサブコマンドとオプション、オ ペランドを指定して実行します。 > asadmin [サブコマンド [オプション] [オペランド]] マルチコマンドモード(マルチモード) マルチコマンドモードはマルチモード用の専用シェルを起動した後サブコマン ドとオプション、オペランドを指定して実行します。 > asadmin multimode asadmin> asadmin> [サブコマンド [オプション] [オペランド]] asadmin コマンドのヘルプ asadmin コマンドの使用方法はコマンドの引数に -- help をつけて確認します。 C:¥glassfishv3¥glassfish¥bin> asadmin --help Utility Commands asadmin(1M) NAME asadmin - utility for performing administrative tasks for Oracle GlassFish Server SYNOPSIS asadmin [--host host] [--port port] [--user admin-user] [--passwordfile filename] [--terse={true|false}]- Oracle GlassFish v3 管理ハンズオン - 16
  • 16. Oracle GlassFish Server 管理ハンズオンセミナー [--secure={false|true}] [--echo={true|false}] [--interactive={true|false}] [--help] [subcommand [options] [operands]] DESCRIPTION Use the asadmin utility to perform administrative tasks for Oracle GlassFish Server. You can use this utility instead of the Administration Console interface. Subcommands of the asadmin Utility The subcommand identifies the operation or task that you are performing. Subcommands are case-sensitive. Each subcommand is either a local subcommand or a remote subcommand. o A local subcommand can be run without a running domain administration server (DAS). However, to run the subcommand and have access to the installation directory and the domain directory, the user must be logged in to the machine that hosts the domain. サブコマンドの一覧表示 実行可能なサブコマンドの一覧は list-commands を実行して確認します。一覧を確 認すると create-***、delete-***、list-*** 等で始まるサブコマンドが多いことが理解でき ます。 C:¥glassfishv3¥glassfish¥bin> asadmin list-commands ********** ローカルコマンド ********** change-admin-password change-master-password create-domain create-service delete-domain export help list-commands list-domains login monitor multimode restart-domain start-database start-domain stop-database stop-domain unset verify-domain-xml version ********** リモートコマンド ********** add-resources enable- Oracle GlassFish v3 管理ハンズオン - 17
  • 17. Oracle GlassFish Server 管理ハンズオンセミナー configure-jruby-container enable-monitoring configure-ldap-for-admin flush-connection-pool create-admin-object flush-jmsdest create-audit-module freeze-transaction-service create-auth-realm generate-jvm-report create-connector-connection-pool get create-connector-resource get-client-stubs create-connector-security-map get-host-and-port create-connector-work-security-map jms-ping create-custom-resource list create-file-user list-admin-objects create-http list-app-refs create-http-listener list-applications create-iiop-listener list-audit-modules create-javamail-resource list-auth-realms create-jdbc-connection-pool list-components create-jdbc-resource list-connector-connection-pools create-jms-host list-connector-resources create-jms-resource list-connector-security-maps create-jmsdest list-connector-work-security-maps create-jndi-resource list-containers create-jvm-options list-custom-resources create-lifecycle-module list-file-groups create-message-security-provider list-file-users create-network-listener list-http-listeners create-password-alias list-iiop-listeners create-profiler list-javamail-resources create-protocol list-jdbc-connection-pools create-resource-adapter-config list-jdbc-resources create-resource-ref list-jms-hosts create-ssl list-jms-resources create-system-properties list-jmsdest create-threadpool list-jndi-entries create-transport list-jndi-resources create-virtual-server list-jvm-options delete-admin-object list-lifecycle-modules delete-audit-module list-logger-levels delete-auth-realm list-message-security-providers delete-connector-connection-pool list-modules delete-connector-resource list-network-listeners delete-connector-security-map list-password-aliases delete-connector-work-security-map list-protocols delete-custom-resource list-resource-adapter-configs delete-file-user list-resource-refs delete-http list-sub-components delete-http-listener list-system-properties delete-iiop-listener list-threadpools delete-javamail-resource list-timers delete-jdbc-connection-pool list-transports delete-jdbc-resource list-virtual-servers delete-jms-host list-web-context-param delete-jms-resource list-web-env-entry delete-jmsdest new-create-jdbc-resource delete-jndi-resource ping-connection-pool delete-jvm-options recover-transactions delete-lifecycle-module redeploy- Oracle GlassFish v3 管理ハンズオン - 18
  • 18. Oracle GlassFish Server 管理ハンズオンセミナー delete-message-security-provider rollback-transaction delete-network-listener rotate-log delete-password-alias set delete-profiler set-log-level delete-protocol set-web-context-param delete-resource-adapter-config set-web-env-entry delete-resource-ref show-component-status delete-ssl undeploy delete-system-property unfreeze-transaction-service delete-threadpool unset-web-context-param delete-transport unset-web-env-entry delete-virtual-server update-connector-security-map deploy update-connector-work-security-map deploydir update-file-user disable update-password-alias disable-monitoring uptime コマンド list-commands は正常に実行されました。 サブコマンドの実行とヘルプ表示 各サブコマンドの詳細はサブコマンドの引数に -- help をつけて実行します。 > asadmin [サブコマンド -- help] 下記の例では、create-domain サブコマンドに対するヘルプ画面を表示しています。 C:¥glassfishv3¥glassfish¥bin> asadmin create-domain --help asadmin Utility Subcommands create-domain(1) NAME create-domain - creates a domain SYNOPSIS create-domain [--help] [--adminport adminport] [--instanceport instanceport] [--portbase portbase] [--profile profile-name] [--template template-name] [--domaindir domaindir] [--savemasterpassword={false|true}] [--domainproperties (name=value)[:name=value]*] [--keytooloptions (name=value)[:name=value]*] [--savelogin={false|true}] [--checkports={true|false}] [--nopassword={false|true}] domain_name DESCRIPTION A domain in GlassFishTM Server is an administrative namespace that complies with the JavaTM EE standard. Every domain has a configuration, which is stored in a set of- Oracle GlassFish v3 管理ハンズオン - 19
  • 19. Oracle GlassFish Server 管理ハンズオンセミナー files. Any number of domains, each of which has a distinct administrative identity, can be created in a given installa- tion of GlassFish Server. A domain can exist independent of other domains. Any user who has access to the asadmin utility on a given system can create a domain and store its configuration in a folder of choice. By default, the domain configuration is created in the default directory for domains. You can over- ride this location to store the configuration elsewhere. ここでわざとサブコマンド名を間違えて実行してみましょう。この例では create-domain サブコマンドの変わりに crete-domain と入力して実行します。入力を間 違えると本来入力すべきコマンドの候補が表示されますのでコマンド名を類推できること がわかります。 C:¥glassfishv3> asadmin crete-domain CLI001 コマンドは無効です: crete-domain もっとも一致するローカルおよびリモートコマンド: create-domain コマンド crete-domain が失敗しました。 list / set / get コマンドについて asadmin サブコマンドの get/set/list サブコマンドは頻繁に利用するサブコマンド です。ドット表記で記載された GlassFish のサーバーの設定要素、もしくは監視要 素の取得・変更・一覧表示するコマンドです。list コマンドを使用するとドット表 記の一覧を確認できます。get/set コマンドはドット表記の設定・監視要素に対す る値の取得、もしくは更新を行います。list/get/set コマンドにはそれぞれワイルド カード (*) オプションを指定することもできます。これを指定すると完全修飾ド ット表記名中から一致するものに対して操作ができます。GlassFish の監視要素に 対する操作を行うためにはサブコマンドの引数に --monitor(-m)を指定します。省 略すると設定要素に対する操作を行います。 list/set/get サブコマンドの各使用方法について確認します。サブコマンドの後 -- help を付加し asadmin コマンドを実行してください。 > asadmin list [--help] [--monitor={false|true}] [dotted-parent-attribute-name] > asadmin get [--help] [--monitor[={true|false}]] (dotted-attribute--name)+ > asadmin set [--help] attribute-name=value 次に、list コマンドに対してワイルドカード(*)を使用して実行し、GlassFish の- Oracle GlassFish v3 管理ハンズオン - 20
  • 20. Oracle GlassFish Server 管理ハンズオンセミナー ドット表記の設定可能要素一覧を取得してください。またドット表記とワイルド カードを併用し特定の階層の要素のみ取得してください。 C:¥glassfishv3> asadmin list "*" applications configs configs.config.server-config configs.config.server-config.admin-service configs.config.server-config.admin-service.das-config configs.config.server-config.admin-service.jmx-connector.system configs.config.server-config.admin-service.property.adminConsoleCont extRoot configs.config.server-config.admin-service.property.adminConsoleDown loadLocation …(略) C:¥glassfishv3> asadmin list "configs.config.server-config.network-config.protocols.protocol.*" configs.config.server-config.network-config.protocols.protocol.admin -listener configs.config.server-config.network-config.protocols.protocol.admin -listener.http configs.config.server-config.network-config.protocols.protocol.admin -listener.http.file-cache configs.config.server-config.network-config.protocols.protocol.http- listener-1 configs.config.server-config.network-config.protocols.protocol.http- listener-1.http configs.config.server-config.network-config.protocols.protocol.http- listener-1.http.file-cache configs.config.server-config.network-config.protocols.protocol.http- listener-2 configs.config.server-config.network-config.protocols.protocol.http- listener-2.http configs.config.server-config.network-config.protocols.protocol.http- listener-2.http.file-cache configs.config.server-config.network-config.protocols.protocol.http- listener-2.ssl コマンド list は正常に実行されました。 次に、 コマンドにワイルドカード(*)を使用して実行し GlassFish のドット表 get 記の既存設定値が確認してください。またドット表記とワイルドカードを併用し 特定の階層の要素(http-listener-1 の port 番号)の既定値を取得してください。 C:¥glassfishv3> asadmin get "*" applications.application.PersonManagement.availability-enabled=false applications.application.PersonManagement.context-root=/PersonManage ment applications.application.PersonManagement.directory-deployed=true applications.application.PersonManagement.enabled=true- Oracle GlassFish v3 管理ハンズオン - 21
  • 21. Oracle GlassFish Server 管理ハンズオンセミナー C:¥glassfishv3> asadmin get "configs.config.server-config.network-config.network- listeners.network-listener.http-listener-1.port" configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.port=8080 コマンド get は正常に実行されました。 set コマンドを使用して特定の階層の要素(http-listener-1 の port 番号)の既定値を 変更してください。値を変更後、get コマンドで値が更新されていることを確認し てください。 C:¥glassfishv3> asadmin set "configs.config.server-config.network-config.network-listeners.netwo rk-listener.http-listener-1.port=18080" configs.config.server-config.network-config.network-listeners.networ k-listener.http-listener-1.port=18080 コマンド set は正常に実行されました。 C:¥glassfishv3> asadmin get "configs.config.server-config.network-config.network-listeners.netwo rk-listener.http-listener-1.port" configs.config.server-config.network-config.network-listeners.networ k-listener.http-listener-1.port=18080 コマンド get は正常に実行されました。 追加課題 1: ファイルからサブコマンドを実 行 ファイルからサブコマンドを実行すると、繰り返し実行するタスクを自動化で きます。実行するサブコマンドのシーケンスを含むテキストファイルを作成した 後、作成したファイルを指定して multimode サブコマンドを実行します。 Myowncommands.txt create-domain --portbase 9000 customdomain start-domain customdomain list-domains stop-domain customdomain コマンドの実行 C:¥glassfishv3¥glassfish¥bin> asadmin multimode --file Myowncommands.txt 管理ユーザー名を入力してください [デフォルトの "admin" / パスワードなしを使用す る場合は Enter キー]> admin- Oracle GlassFish v3 管理ハンズオン - 22
  • 22. Oracle GlassFish Server 管理ハンズオンセミナー 管理パスワード を入力してください [デフォルト (パスワードなし) を使用する場合は Enter キー]> 管理パスワード をもう一度入力してください> マスターパスワード を入力してください [デフォルトパスワード "changeit" を使用す る場合は Enter キー]> マスターパスワード をもう一度入力してください> Admin のポート 9048 を使用しています。 HTTP Instance のポート 9080 を使用しています。 JMS のポート 9076 を使用しています。 IIOP のポート 9037 を使用しています。 HTTP_SSL のポート 9081 を使用しています。 IIOP_SSL のポート 9038 を使用しています。 IIOP_MUTUALAUTH のポート 9039 を使用しています。 JMX_ADMIN のポート 9086 を使用しています。 OSGI_SHELL のポート 9066 を使用しています。 指定されたロケール [ja_JP] のファイルが [C:¥glassfishv3¥glassfish¥lib¥templates¥ locales¥ja_JP¥index.html] に見つかりませんでした。デフォルト (en_US) の index.ht ml を使用します。 自己署名付き X.509 サーバー証明書の識別名です: [CN= PC.jpis.oracle.com,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST =California,C=US] No domain initializers found, bypassing customization step ドメイン customdomain が作成されました。 ドメイン customdomain の管理ポートは 9048 です。 ドメイン customdomain の管理ユーザーは "admin" です。 コマンド create-domain は正常に実行されました。 DAS の起動を待機しています ..................... 起動したドメイン: customdomain ドメインの場所: C:¥glassfishv3¥glassfish¥domains¥customdomain ログファイル: C:¥glassfishv3¥glassfish¥domains¥customdomain¥logs¥server.log ドメインの管理ポート: 9048 コマンド start-domain は正常に実行されました。 名前: customdomain 状態: 実行中 名前: domain1 状態: 停止中 コマンド list-domains は正常に実行されました。 ドメインの停止を待機しています ... コマンド stop-domain は正常に実行されました。 コマンド multimode は正常に実行されました。- Oracle GlassFish v3 管理ハンズオン - 23
  • 23. Oracle GlassFish Server 管理ハンズオンセミナー5. Web 管理コンソールの基本(目標:10 分) 管理コンソールは、操作しやすい GUI 管理インタフェースとオンラインヘルプを装備したブラウザベースの管理ツールです。 管理コンソールへのアクセス 管理コンソールを使用するには、管理サーバー (ドメイン管理サーバー) が起動され ている必要があります、ドメインが起動されているか確認してください。管理コンソールに Web ブラウザでアクセスするにはドメイン作成時に指定した管理ポート番号(デフォルト 4848)を指定します。Web ブラウザで次の URL にアクセスしてください。 http://ホスト名:ポート番号/ 例えば同一環境からアクセスする際は下記の URL を入力します。 http://localhost:4848/ ブラウザからアクセスすると下記の画面が表示されます。管理コンソールも OSGi モ ジュールと実装されており必要に応じてアクセス時にモジュールがロードされます。 図 11:管理コンソールのモジュールロード- Oracle GlassFish v3 管理ハンズオン - 24
  • 24. Oracle GlassFish Server 管理ハンズオンセミナー 管理コンソールモジュールがロードされると下記の画面が表示されます。ここでインス トール時に指定したユーザー名、パスワードを入力し「ログイン」ボタンを押下します。 図 12:管理コンソールログイン ログイン認証が完了すると下記の画面が表示されます。 図 13:管理コンソールの初期画面- Oracle GlassFish v3 管理ハンズオン - 25
  • 25. Oracle GlassFish Server 管理ハンズオンセミナー GlassFish のメンバー登録 ここで、GlassFish に対する登録を行ってください。「登録」ボタンを押下してください。 図 14:製品の登録画面 ボタンを押下すると下記の画面が表示されます。ここに必要項目を記載し「登録」ボタ ンを押下します。 図 15:製品の登録画面- Oracle GlassFish v3 管理ハンズオン - 26
  • 26. Oracle GlassFish Server 管理ハンズオンセミナー オープンソース版と製品版の確認 オープンソース版の「GlassFish Server Open Source Edition」と製品版の「Oracle GlassFish Server」は内部実装が若干異なります。画面左上を確認しオープンソース 版、もしくは製品版のいずれをインストールしているか確認してください。 図 16:製品版のタイトル 図 17:オープンソース版のタイトル オープンソース版か製品版かは asadmin コマンドを使用して確認することもで きます。 C:¥glassfishv3¥bin> asadmin version --verbose バージョン = Oracle GlassFish Server 3.0.1 (build 22)、JRE バージョン 1.6.0_21 コマンド version は正常に実行されました。 C:¥glassfishv3¥bin> asadmin version --verbose バージョン = GlassFish Server Open Source Edition 3.0.1 (build 22)、JRE バ ージョン 1.6.0_21 コマンド version は正常に実行されました。 管理コンソールの概要 管理コンソールへアクセスするとフレームの上部で下記の画面を確認できます。 図 18:管理コンソールのフレーム上部 画面の内容を確認すると下記の項目が存在しています。これらの各項目の内容 を表に示します。それぞれのボタンを押下し動作確認してください。- Oracle GlassFish v3 管理ハンズオン - 27
  • 27. Oracle GlassFish Server 管理ハンズオンセミナー 表 2:管理画面のメニュー項目 項目 説明 ホーム 任意のページから管理コンソールのトップページへ遷移 製品について 製品ライセンスの詳細を記載するページを表示(図:) ログアウト 管理コンソールをログアウト ヘルプ 管理コンソールのヘルプ画面を表示(図:) ユーザー ドメイン管理者のユーザー名 ドメイン 管理対象のドメイン名 サーバー ドメイン管理サーバーが稼働するサーバー名 「製品について」のボタンを押下すると下記の画面が表示されます。 図 19:製品説明画面 「ヘルプ」ボタンを押下するとヘルプ画面が表示されます。マルチリンガル版をインス トールした場合全て日本語翻訳されたヘルプ画面が表示されます。- Oracle GlassFish v3 管理ハンズオン - 28
  • 28. Oracle GlassFish Server 管理ハンズオンセミナー 図 20:ヘルプ画面6. REST インタフェースによる管理(目標:10 分) GlassFish は各種設定項目、監視項目に対して REST インタフェースを通じてアクセスできます。REST インタフェースには、次のようなクライアントアプリケーションからアクセスできます。  Web ブラウザ  cURL  GNU Wget また、プログラミング言語を使用し開発された独自 REST クライアントからアクセスすることもできます。  JavaScript  Ruby  Perl  Java  JavaFX REST インタフェースへのアクセス 管理用 REST インタフェースを通じて、設定もしくは監視を行うことができま す。- Oracle GlassFish v3 管理ハンズオン - 29
  • 29. Oracle GlassFish Server 管理ハンズオンセミナー 表 3:REST インタフェースの管理項目とアクセス URL REST イ ン タ フ ェ ー ス アクセス URL 管理可能項目 設定 http:// host:port/management/domain/ 監視 http:// host:port/monitoring/domain/ ブラウザで管理用の REST インタフェースへアクセスすると Basic 認証画面が表 示されます。ここで GlassFish の管理者ユーザー名(デフォルト:admin)、パスワー ドを入力し「OK」ボタンを押下します。 図 21:REST インタフェースアクセス時の認証画面 「設定」に関する REST インタフェースの URL (http:// host:port/management/ domain/) に ア ク セ ス し 認 証 に 成 功 す る と 下 記 の画 面 が 表 示 さ れ ま す。 Child 「 Resource」で表示されるリンク配下に各種管理項目が存在します。- Oracle GlassFish v3 管理ハンズオン - 30
  • 30. Oracle GlassFish Server 管理ハンズオンセミナー 図 22:ブラウザからアクセスした REST インタフェース コンテキストルートパスとドット表記名の マッピング asadmin コマンドのサブコマンド list/get/set で行ったように GlassFish はドット 表記の管理要素を使用して設定項目の参照・更新を行うことができました。たと えば GlassFish のネットワークのリスナーに関連する設定を参照する場合ドット 表 記 で "configs.config.server-config.network-config.network-listeners.network-listener. http- listener-1"を記載することでできました。 > asadmin get "configs.config.server-config.network-config.network -listeners.network-listener.http-listener-1" configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.address=0.0.0.0 configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.enabled=true configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.jk-enabled=false configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.name=http-listener-1 configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.port=8080 configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.protocol=http-listener-1- Oracle GlassFish v3 管理ハンズオン - 31
  • 31. Oracle GlassFish Server 管理ハンズオンセミナー configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.thread-pool=http-thread-pool configs.config.server-config.network-config.network-listeners.networ k-listener.h ttp-listener-1.transport=tcp コマンド get は正常に実行されました。 これと同様に REST インタフェースもドット表記の階層構造に従って設定を行 うことができます。REST インタフェースにアクセスする際には、ドット(.)の個所 を全てスラッシュ(/)に置き換えて「 http://localhost:4848/management/domain/」の後 に付加して記載します。 表 4:ドット表記と URL パス表記のマッピング例表記方法 例:HTTP リスナーに関する要素ドット表記 configs.config.server-config.network-config. network-listeners. network-listener.http-listener-1URL パス表記 http://localhost:4848/management/domain/configs/config/ server-config/network-config/network-listeners/network-listener/http-listener-1 ドット表記から URL に置き換えた後、Web ブラウザからアクセスすると下記の 画面が表示されます。 図 23:REST インタフェースで特定パラメータの変更- Oracle GlassFish v3 管理ハンズオン - 32
  • 32. Oracle GlassFish Server 管理ハンズオンセミナー この管理画面には「Update」ボタンと「Delete」ボタンが存在します「Update」 ボタンを押下して設定変更を行い「Delete」ボタンを押下し削除します。 REST メソッドの種類と処理内容 REST インタフェースは前述のように設定および監視に対してドット表記の階 層構造に従い操作を行うことが可能です。これらの各階層の監視データや設定項 目は REST(HTTP)のメソッドを通じて操作を行います。下記の表では各メソッド に対応する操作内容について示します。 表 5:REST メソッドの種類と処理内容REST(HTTP)メソッド 処理内容OPTIONS,GET 各階層でサポートする REST メソッドおよびメソッドパラメー タの取得GET 各階層のデータ取得POST 各階層のデータ追加POST 各階層のデータ更新DELETE 各階層のデータ削除 XML、JSON フォーマットの取り扱い GlassFish の REST インタフェースは HTML フォーマット以外に、XML、JSON フォーマットもサポートしています。XML、JSON フォーマットのデータを扱うた めには HTTP ヘッダーの「Accept :」でフォーマットを指定します。下記の例では それぞれ XML、JSON フォーマットを指定して既定値を取得しています。 下記は XML フォーマットで既定値を取得しています。 > curl -u admin:adminadmin -X GET -H "Accept: application/xml" htt p://localhost:4848/management/domain/configs/config/server-config/ne twork-config/network-listeners/network-listener/http-listener-1 <HttpListener1 port="8080" enabled="true" protocol="http-listener-1" transport=" tcp" address="0.0.0.0" name="http-listener-1" jk-enabled="false" thread-pool="ht tp-thread-pool"> <Methods> <Method name="POST"> <Message-Parameters> <port Key="false" Type="int" Optional="false"/> <enabled Key="false" Default-Value="true" Type="boolean" Optional="true" /> <protocol Key="false" Type="string" Optional="false"/>- Oracle GlassFish v3 管理ハンズオン - 33
  • 33. Oracle GlassFish Server 管理ハンズオンセミナー <address Key="false" Default-Value="0.0.0.0" Type="string" Optional="tru e"/> <transport Key="false" Type="string" Optional="false"/> <name Key="true" Type="string" Optional="false"/> <jk-enabled Key="false" Default-Value="false" Type="boolean" Optional="true"/> <thread-pool Key="false" Type="string" Optional="true"/> </Message-Parameters> </Method> <Method name="GET"> </Method> <Method name="DELETE"> </Method> </Methods> <Child-Resources> <Child-Resource>http://localhost:4848/management/domain/configs/conf ig/serve r-config/network-config/network-listeners/network-listener/http-list ener-1/creat e-ssl</Child-Resource> <Child-Resource>http://localhost:4848/management/domain/configs/conf ig/serve r-config/network-config/network-listeners/network-listener/http-list ener-1/delet e-ssl</Child-Resource> </Child-Resources> </HttpListener1> 下記は JSON フォーマットで既定値を取得しています。 > curl -u admin:adminadmin -X GET -H "Accept: application/json" ht tp://localhost:4848/management/domain/configs/config/server-config/n etwork-config/network-listeners/network-listener/http-listener-1 { "HttpListener1":{"port":"8080", "enabled":"true", "protocol":"http-listener-1" , "transport":"tcp", "address":"0.0.0.0", "name":"http-listener-1", "jk-enabled" :"false", "thread-pool":"http-thread-pool"}, "Methods":{ "Method":{ "Name":"POST", "Message Parameters":{ "port":{"Key":"false", "Type":"int", "Optional":"false"}, "enabled":{"Key":"false", "Default Value":"true", "Type":"boolean", "Opt ional":"true"}, "protocol":{"Key":"false", "Type":"string", "Optional":"false"}, "address":{"Key":"false", "Default Value":"0.0.0.0", "Type":"string", "O- Oracle GlassFish v3 管理ハンズオン - 34
  • 34. Oracle GlassFish Server 管理ハンズオンセミナー ptional":"true"}, "transport":{"Key":"false", "Type":"string", "Optional":"false"}, "name":{"Key":"true", "Type":"string", "Optional":"false"}, "jk-enabled":{"Key":"false", "Default Value":"false", "Type":"boolean", "Optional":"true"}, "thread-pool":{"Key":"false", "Type":"string", "Optional":"true"} } }, "Method":{ "Name":"GET" }, "Method":{ "Name":"DELETE" } }, "Child Resources":[ "http://localhost:4848/management/domain/configs/config/server-confi g/networ k-config/network-listeners/network-listener/http-listener-1/create-s sl","http://localhost:4848/management/domain/configs/config/server-c onfig/networ k-config/network-listeners/network-listener/http-listener-1/delete-s sl" ] } 上記では既定値の取得を行いましたが、下記では取得した値に対して更新を行 います。JSON フォーマットでネットワークリスナーのポート番号を 8080 から 18080 に変更してください。データを更新する際には POST メソッドを使用します。 > curl -u admin:adminadmin -X POST -d "port=18080" -H "Accept: app lication/json" http://localhost:4848/management/domain/configs/config/server-config /network-config/network-listeners/network-listener/http-listener-1 "http://localhost:4848/management/domain/configs/config/server-confi g/network-config/network-listeners/network-listener/http-listener-1" updated successfully. ポート番号を変更した後、正しく更新されているか確認してください。 > curl -u admin:adminadmin -X GET -H "Accept: application/json" ht tp://localhost:4848/management/domain/configs/config/server-config/n etwork-config/network-listeners/network-listener/http-listener-1 { "HttpListener1":{"port":"18080", "enabled":"true", "protocol":"http-listener-1- Oracle GlassFish v3 管理ハンズオン - 35
  • 35. Oracle GlassFish Server 管理ハンズオンセミナー ", "transport":"tcp", "address":"0.0.0.0", "name":"http-listener-1", "jk-enabled ":"false", "thread-pool":"http-thread-pool"}, REST インタフェースのその他の操作 REST インタフェースはドット表記の階層に従う設定、監視操作以外に、デフォ ルトで用意されている管理機能が存在します。下記の表で管理機能とアクセス URL を示します。それぞれをブラウザ curl から実行してください。 表 6:REST インタフェースの操作とアクセス URL操作項目 アクセス URLドメイン管理サーバーのサーバ http://localhost:4848/management/domain/host-portインスタンスのポート番号ドメイン管理サーバーの再起動 http://localhost:4848/management/domain/restartドメイン管理サーバーのログ http://localhost:4848/management/domain/rotate-logローテーションドメイン管理サーバーの停止 http://localhost:4848/management/domain/stopドメイン管理サーバーの稼働時 http://localhost:4848/management/domain/uptime間GlassFish のバージョン表示 http://localhost:4848/management/domain/version- Oracle GlassFish v3 管理ハンズオン - 36
  • 36. Oracle GlassFish Server 管理ハンズオンセミナー7. Apache Felix コンソール (目標:10 分) GlassFish に付属の OSGi モジュール管理サブシステムは、Apache Felix OSGi フレームワークです。このモジュールサブシステムを利用するため、GlassFish ではデフォルトで ApacheFellix Remote Shell が有効になっています。このシェルを利用して下記の管理ができます。  インストール済み OSGi バンドルの参照  インストール済み OSGi バンドルのヘッダー表示  新規 OSGi バンドルのインストール  インストールしたバンドルのライフサイクル管理 Apache Felix Remote Shell はネットワーク経由でアクセスできます。telnet を使用してApache Felix Remote Shell に接続するためには次のコマンドを実行します。ここで「host」にはドメイン管理サーバーが稼働するホスト名を指定し、「felix-remote-shell-port」はポート番号(デフォルト:6666)を指定します。 > telnet host felix-remote-shell-port Apache Felix Remote Shell へ接続 それでは実際に Aapche Felix Remote Shell に接続してください。 > telnet localhost 6666 Felix Remote Shell Console: ============================ -> ヘルプの表示 次に Apache Felix Remote Shell が提供するコマンド一覧を確認します。 -> help bundlelevel cd find headers help inspect install log ps- Oracle GlassFish v3 管理ハンズオン - 37
  • 37. Oracle GlassFish Server 管理ハンズオンセミナー refresh resolve scr shutdown start startlevel stop sysprop uninstall update version Use help <command-name> for more information. 次に各コマンドの詳細を確認します。help コマンドの後にコマンドを入力します。 -> help ps Command : ps Usage : ps [-l | -s | -u] Description : list installed bundles. -> help start Command : start Usage : start [-t | -p] <id> [<id> <URL> ...] Description : start bundle(s). -> インストール済みの OSGi バンドルの表示 インストール済みのバンドル一覧を表示するためには ps コマンドを実行します。 -> ps START LEVEL 1 ID State Level Name [ 0] [Active ] [ 0] System Bundle (2.0.2) [ 1] [Active ] [ 1] HK2 OSGi Main Bundle (1.0.0) [ 2] [Resolved ] [ 1] Admin Console JTS Plugin (3.0.1.b19) [ 3] [Resolved ] [ 1] Mojarra JSF Implementation 2.0.2-FCS (2.0.2.FCS) [ 4] [Active ] [ 1] Apache Felix Remote Shell (1.0.4) [ 5] [Installed ] [ 1] AMX V3 Java EE Management (JSR 77) API (3.0.1.b19) … OSGi バンドルの検索 インストール済みの OSGi バンドルから特定のバンドルを探すために find コマ ンドを実行します。下記の例では名前に HK2 が含まれる OSGi バンドルを検索し ます。- Oracle GlassFish v3 管理ハンズオン - 38
  • 38. Oracle GlassFish Server 管理ハンズオンセミナー -> find HK2 START LEVEL 1 ID State Level Name [ 1] [Active ] [ 1] HK2 OSGi Main Bundle (1.0.0) [ 76] [Active ] [ 1] HK2 configuration module (1.0.0) [ 80] [Active ] [ 1] HK2 config types (1.0.0) [ 162] [Installed ] [ 1] HK2 module of HK2 itself (1.0.0) [ 206] [Resolved ] [ 1] Hibernate validator library and Validation API (JSR 303) repackaged as OSGi and HK2 bundle (3.0.0.JBoss-402) [ 245] [Active ] [ 1] HK2 OSGi Adapter (1.0.0) [ 251] [Resolved ] [ 1] HK2 core module (1.0.0) バンドルが提供するサービスの参照 下記は inspect コマンドに対して service と capability を指定して OSGi バンドル 245(HK2 OSGi Adapter) が提供するサービスを表示しています。 -> help inspect Command : inspect Usage : inspect (package|bundle|fragment|service) (capability|requirement) [<id> ...] Description : inspects dependency information. -> inspect service capability 245 HK2 OSGi Adapter (245) provides services: ----------------------------------------- objectClass = org.jvnet.hk2.component.Habitat service.id = 3 ---- objectClass = com.sun.enterprise.module.bootstrap.ModuleStartup service.id = 4 追加課題1:独自バンドルの作成と配備 GlassFish は拡張可能なアプリケーションサーバとして独自に実装した OSGi バ ンドルをアプリケーションサーバ内に組み込むことができます。ここでは独自 OSGi バンドルの作成とパッケージング方法、配備方法ついて確認します。 まず独自 OSGi バンドルの Java 実装コード(MyBundle.java)を作成します。 import org.osgi.framework.*; public class MyBundle implements BundleActivator { // Start the bundle public void start(BundleContext context) { System.out.println("Started My OSGi Bundle"); } // Stop the bundle public void stop(BundleContext context) {- Oracle GlassFish v3 管理ハンズオン - 39
  • 39. Oracle GlassFish Server 管理ハンズオンセミナー System.out.println("Stopped My OSGi Bundle"); } } 次に、マニフェストファイル(MANIFEST.MF)を作成します。 Manifest-Version: 1.0 Bundle-Name: MyBundle Bundle-Activator: MyBundle Bundle-SymbolicName: MyBundle Bundle-Version: 1.0.0 Import-Package: org.osgi.framework 次にソースコードをコンパイルします。コンパイルの際 OSGi のライブラリをインポート する必要があるためクラスパスに felix.jar を含めてコンパイルします。 > javac -classpath "C:¥glassfishv3¥glassfish¥osgi¥felix¥bin¥felix.jar" MyBundle.java 次に jar コマンドを使用しアーカイブファイルを作成します。 > jar cfm MyBundle.jar MANIFEST.MF MyBundle.class 次に作成したアーカイブファイルを GlassFish のモジュールディレクトリにコピーし OSGi バンドルをインストールします。 > copy MyBundle.jar "c:¥glassfishv3¥glassfish¥modules" 1 個のファイルをコピーしました。 最後に GlassFish を再起動します。 > asadmin restart-domain domain1 ドメインは正常に再起動されました コマンド restart-domain は正常に実行されました。 再度、Apache Felix Remote Shell にログインし独自に作成した OSGi バンドルが認 識されているか確認します。 > telnet localhost 6666 Felix Remote Shell Console:- Oracle GlassFish v3 管理ハンズオン - 40
  • 40. Oracle GlassFish Server 管理ハンズオンセミナー ============================ -> ps … [ 264] [Installed ] [ 1] Apache Felix Web Management Console (3.1.2) [ 265] [Installed ] [ 1] OSGi HTTP Service Implementation for GlassFish Web Container (3.1.0.b15) [ 270] [Installed ] [ 1] MyBundle (1.0.0) -> 上 記 の よ うに 独 自 に 作 成し た OSGi バ ン ドル の 状 態 が 認 識 され ており 、また 「Installed」になっていることを確認した後、作成したモジュールの起動・停止を行います。 この際それぞれの処理を行った直後ドメイン管理サーバーのログ(C:¥glassfishv3¥ glassfish¥domains¥domain1¥logs¥server.log) を確認してください。まずバンドルを起 動します。 [ 270] [Installed ] [ 1] MyBundle (1.0.0) -> start 270 起動した後サーバーログを確認して下さい。プログラムで記述したメッセージが書き 込まれていることを確認できます。 C:¥glassfishv3> cd C:¥glassfishv3¥glassfish¥domains¥domain1¥logs C:¥glassfishv3¥glassfish¥domains¥domain1¥logs> type server.log [#|2010-08-18T14:00:37.756+0900|INFO|oracle-glassfish3.0.1|javax.ent erprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=24; _ThreadName=Thread-1;|Started My OSGi Bundle|#] 次にバンドルを停止します。 -> stop 270 停止した後サーバーログを確認してください。プログラムで記述したメッセージが書き 込まれていることを確認できます。 C:¥glassfishv3¥glassfish¥domains¥domain1¥logs> type server.log [#|2010-08-18T14:03:55.275+0900|INFO|oracle-glassfish3.0.1|javax.ent erprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=24; _ThreadName=Thread-1;|Stopped My OSGi Bundle|#]- Oracle GlassFish v3 管理ハンズオン - 41
  • 41. Oracle GlassFish Server 管理ハンズオンセミナー8. ドメインの管理(目標:10 分) ここではドメインの管理を行います。ドメインはデフォルトで作成されるドメイン以外に複数のドメインを作成することができます。ドメインの作成方法、参照方法、起動方法、停止方法、削除方法等を確認します。 ドメインの作成 ドメインを作成するためには、create-domain サブコマンドを実行します。サブ コマンドの引数に管理者がアクセスする際に使用する管理ポート番号を指定しま す。引数にインスタンスのポート番号等を指定することができますが、省略する こともできます、省略すると使用可能なポート番号を自動検出し作成します。複 数のドメインを作成する際はポート番号の衝突が起きないように注意してくださ い。またコマンド実行時「-- savemasterpassword」「-- savelogin」を有効にして設定 、 を行うと管理者パスワード、管理者のパスワードがローカルファイルシステム (.asadminpass/master-password)に保存されます、これにより次回コマンド実行時に 管理者パスワードの入力を省略できます。 「--savemasterpassword」 --savelogin」 一方 、 「 を指定せずに作成したドメインは asadmin コマンドの実行時に毎回管理者パスワ ード問い合わせを行います。 ドメインの作成が完了すると domains ディレクトリ配下に作成したドメイン ディレクトリが作成されていますので確認してください。 C:¥glassfishv3¥glassfish¥bin> asadmin create-domain --adminport 14848 –savemasterpassword=true --savelogin=true domain2 管理ユーザー名を入力してください [デフォルトの "admin" / パスワードなしを使用す る場合は Enter キー]> domain2Admin 管理パスワード を入力してください [デフォルト (パスワードなし) を使用する場合は Enter キー]> [adminadmin] 管理パスワード をもう一度入力してください>[adminadmin] マスターパスワード を入力してください [デフォルトパスワード "changeit" を使用す る場合は Enter キー]> [changeit] マスターパスワード をもう一度入力してください> [changeit] Admin のポート 14848 を使用しています。 HTTP Instance のデフォルトポート 8080 は使用中です。1317 を使用します JMS のデフォルトポート 7676 は使用中です。1318 を使用します IIOP のデフォルトポート 3700 は使用中です。1319 を使用します HTTP_SSL のデフォルトポート 8181 は使用中です。1320 を使用します IIOP_SSL のデフォルトポート 3820 を使用しています。 IIOP_MUTUALAUTH のデフォルトポート 3920 を使用しています。 JMX_ADMIN のデフォルトポート 8686 は使用中です。1321 を使用します OSGI_SHELL のデフォルトポート 6666 は使用中です。1322 を使用します 指定されたロケール [ja_JP] のファイルが [C:¥glassfishv3¥glassfish¥lib¥templates¥- Oracle GlassFish v3 管理ハンズオン - 42
  • 42. Oracle GlassFish Server 管理ハンズオンセミナー locales¥ja_JP¥index.html] に見つかりませんでした。デフォルト (en_US) の index.ht ml を使用します。 自己署名付き X.509 サーバー証明書の識別名です: [CN= PC.jpis.oracle.com,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST =California,C=US] No domain initializers found, bypassing customization step ドメイン domain2 が作成されました。 ドメイン domain2 の管理ポートは 14848 です。 ドメイン domain2 の管理ユーザーは "domain2Admin" です。 このドメイン [domain2] の管理ユーザー名 [domain2Admin] に関連するログイン情報が [C:¥Documents and Settings¥yosshi¥.asadminpass] に正常に格納されました。 このファイルが保護されたままであることを確認します。 このファイルに格納された情報は、 このドメインを管理するために asadmin コマンドによって使用されます。 コマンド create-domain は正常に実行されました。 C:¥glassfishv3¥glassfish>cd domains C:¥glassfishv3¥glassfish¥domains>dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥glassfish¥domains のディレクトリ 2010/08/16 13:45 <DIR> . 2010/08/16 13:45 <DIR> .. 2010/08/07 10:29 <DIR> domain1 2010/08/16 13:45 <DIR> domain2 0 個のファイル 0 バイト 4 個のディレクトリ 3,196,710,912 バイトの空き領域 ドメインの一覧表示 作成されているドメインの一覧を表示するためには list-domains コ マンドを実 行します。このサブコマンドはドメインの稼働状態も確認できます。 C:¥glassfishv3¥glassfish¥bin> asadmin list-domains 名前: domain1 状態: 実行中 名前: domain2 状態: 停止中 コマンド list-domains は正常に実行されました。 ドメインとドメイン管理サーバーの起動 ドメイン管理サーバーを起動するためには,start-domain コマンドを実行します。 C:¥glassfishv3¥glassfish¥bin> asadmin start-domain domain1- Oracle GlassFish v3 管理ハンズオン - 43
  • 43. Oracle GlassFish Server 管理ハンズオンセミナー DAS の起動を待機しています ................. 起動したドメイン: domain1 ドメインの場所: C:¥glassfishv3¥glassfish¥domains¥domain1 ログファイル: C:¥glassfishv3¥glassfish¥domains¥domain1¥logs¥server.log ドメインの管理ポート: 4848 コマンド start-domain は正常に実行されました。 ドメインとドメイン管理サーバーの停止 ドメイン管理サーバーを停止するためには、stop-domain コマンドを実行します。 C:¥glassfishv3¥glassfish¥bin> asadmin stop-domain domain1 ドメインの停止を待機しています .... コマンド stop-domain は正常に実行されました。 ドメインとドメイン管理サーバーの再起動 ドメイン管理サーバーを再起動するためには、restart-domain コマンドを実行し ます。 C:¥glassfishv3¥glassfish¥domains> asadmin restart-domain domain1 ドメインは正常に再起動されました コマンド restart-domain は正常に実行されました。 ドメインの削除 ドメインを削除するためには、delete-domain コマンドを実行します。ドメイン を削除するためには、対象のドメインが停止していなければなりません。コマン ドを実行した後、対象のドメインディレクトリが削除されていることを確認して ください。 C:¥glassfishv3¥glassfish¥bin> asadmin list-domains 名前: domain1 状態: 実行中 名前: domain2 状態: 停止中 コマンド list-domains は正常に実行されました。 C:¥glassfishv3¥glassfish¥bin> asadmin delete-domain domain2 ドメイン domain2 は削除されました。 コマンド delete-domain は正常に実行されました。 C:¥glassfishv3¥glassfish¥bin> asadmin list-domains 名前: domain1 状態: 実行中 コマンド list-domains は正常に実行されました。 C:¥Documents and Settings¥yosshi> cd C:¥glassfishv3¥glassfish¥domains C:¥glassfishv3¥glassfish¥domains> dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です- Oracle GlassFish v3 管理ハンズオン - 44
  • 44. Oracle GlassFish Server 管理ハンズオンセミナー C:¥glassfishv3¥glassfish¥domains のディレクトリ 2010/08/16 14:10 <DIR> . 2010/08/16 14:10 <DIR> .. 2010/08/07 10:29 <DIR> domain1 0 個のファイル 0 バイト 3 個のディレクトリ 3,196,928,000 バイトの空き領域 0 個のファイル 0 バイト 4 個のディレクトリ 3,196,710,912 バイトの空き領域 追加課題 1:ログアウト時シャットダウンを 防ぐ Microsoft Windows の環境ではデフォルトで、Java Virtual Machine (Java VM) は、 シャットダウン時、もしくはユーザーのログアウト時にシャットダウンシグナルが送信され Java VM を停止します。この動作によりアプリケーションサーバも停止します。ユーザー がログアウト時に GlassFish が停止しないようにするためには、Java VM オプションに -Xrs オプションを追加します。オプション追加後アプリケーションサーバを再起動してく ださい。 > cd C:¥glassfishv3¥glassfish¥domains¥domain1¥config C:¥glassfishv3¥glassfish¥domains¥domain1¥config> dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥glassfish¥domains¥domain1¥config のディレクトリ 2010/08/16 14:18 <DIR> . 2010/08/16 14:18 <DIR> .. 2010/08/05 17:19 117 admin-keyfile 2010/08/05 17:19 31,675 cacerts.jks 2010/08/05 17:19 47,232 default-web.xml 2010/08/05 17:19 32 domain-passwords 2010/08/14 23:19 12,088 domain.xml 2010/08/07 10:29 11,939 domain.xml.bakdomain.xml の修正内容 <jvm-options>-XX:MaxPermSize=192m</jvm-options> <jvm-options>-client</jvm-options> <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options> <jvm-options>-Xrs</jvm-options> <!---- このオプションを追加 -->- Oracle GlassFish v3 管理ハンズオン - 45
  • 45. Oracle GlassFish Server 管理ハンズオンセミナー9. パスワードの管理(目標:10 分) GlassFish の管理を行なう上で管理者は2種類のパスワードを管理する必要があります。管理パスワードはドメイン管理サーバーへ接続する際に使用するパスワードです。マスターパスワードは GlassFish の SSL の設定を行う際の証明書データベース(keystore.jks,cacert.jks)にアクセスする際に必要なパスワードです。  管理パスワード  マスターパスワード 管理パスワードの変更 管理パスワードの変更を行います。管理パスワードを変更する前にパスワード が保存されているファイルを確認します。管理者のパスワードは各ドメインディ レクトリ配下の config ディレクトリに admin-keyfile というファイル名で存在して います。このファイルには管理者ユーザー名に対するパスワードをハッシュで記 載しています。 C:¥glassfishv3> cd "C:¥glassfishv3¥glassfish¥domains¥domain1¥config" C:¥glassfishv3¥glassfish¥domains¥domain1¥config> type admin-keyfile admin;{SSHA}kmpqHPi+TaWrwXzL83sE/UXj89mQqeonrimJGA==;asadmin それでは asadmin コマンドを使用して管理者パスワードを変更します。管理者パ スワードの変更には既存のパスワードの入力が求められた後、新しいパスワード フレーズを2度入力します。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> asadmin change-admin-password 管理パスワードを入力してください> [adminadmin] 新しい管理パスワードを入力してください> [newpassword] 新しい管理パスワードをもう一度入力してください> [newpassword] コマンド change-admin-password は正常に実行されました。 パスワードを更新した後パスワードファイルを再度確認します。ハッシュ値が 変更されていることが確認できます。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> type admin-keyfile admin;{SSHA}/bHL4RH2wNN6Vi8OVBi0Zvkicbyfm4cPI2XtZQ==;asadmin- Oracle GlassFish v3 管理ハンズオン - 46
  • 46. Oracle GlassFish Server 管理ハンズオンセミナー 管理者パスワードは GUI の管理コンソールを使用して変更することもできます。ブラ ウザで管理コンソールにログインした後、「Enterprise Server」→「管理者パスワード」か ら変更してください。 図 24:管理者パスワードの変更 マスターパスワードの変更 マスターパスワードの変更を行います。マスターパスワードを変更する前にマ スターパスワードに関連する証明書データベースがどこに存在するか確認します。 証明書データベースは各ドメインディレクトリの config 配下(C:¥glassfishv3 ¥glassfish¥domains¥domain1¥config)に keystore.jks、cacert.jks というファイル名で 存在します。 次に証明書管理方法について説明します。証明書管理は Java SE に付属する keytool コマンドを使用して行います。keystore.jks に含まれる証明書を確認するに は-list サブコマンドを使用して確認できます。コマンド実行時にパスワードの入 力が求められます。ここで指定するパスワードがマスターパスワードです。 C:¥glassfishv3>cd "C:¥glassfishv3¥glassfish¥domains¥domain1¥config" C:¥glassfishv3¥glassfish¥domains¥domain1¥config>dir *.jks ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥glassfish¥domains¥domain1¥config のディレクトリ 2010/08/18 12:15 31,675 cacerts.jks 2010/08/18 12:15 1,432 keystore.jks 2 個のファイル 33,107 バイト 0 個のディレクトリ 3,480,027,136 バイトの空き領域 C:¥glassfishv3¥glassfish¥domains¥domain1¥config>keytool -list -keystore ./keystore.jks -alias s1as -storepass changeit s1as, 2010/08/18, PrivateKeyEntry, 証明書のフィンガープリント (MD5): 5D:48:D1:FC:D4:D7:8E:99:F1:0F:41:4F:A4:79:B4:01- Oracle GlassFish v3 管理ハンズオン - 47
  • 47. Oracle GlassFish Server 管理ハンズオンセミナー それではマスターパスワードを変更します。マスターパスワードを変更するた めには GlassFish のドメイン管理サーバーが停止している必要があります。ドメイ ン管理サーバーが起動している場合は停止してください。次に change-master-password サブコマンドを実行してパスワードを変更します。現在の マスターパスワードを入力した後、新しいパスワードフレーズを2度入力して変 更が完了します。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config>asadmin stop-domain domain1 ドメインの停止を待機しています .. コマンド stop-domain は正常に実行されました。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config>asadmin change-master-password 現在のマスターパスワードを入力してください> [changeit] New_Master_Password パスワードを入力してください> [newpassword] New_Master_Password パスワードをもう一度入力してください> [newpassword] コマンド change-master-password は正常に実行されました。 マスターパスワードを変更した後、再度 keytool を使用して変更したマスターパ スワードで証明書データベースを参照できるか確認しましょう。keytool コマンド の引数-storepass に変更したパスワードを指定して証明書データベースを参照でき ることを確認してください。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> keytool -list -keystore ./keystore.jks -alias s1as -storepass newpassword s1as, 2010/08/18, PrivateKeyEntry, 証明書のフィンガープリント (MD5): 5D:48:D1:FC:D4:D7:8E:99:F1:0F:41:4F:A4:79:B4:01 マスターパスワードの変更が完了した後、ドメインを再起動します。この時マ スターパスワードの入力が求められます。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> asadmin start-domain domain1 マスターパスワードを入力してください (あと 3 回)> [newpassword] DAS の起動を待機しています ........ 起動したドメイン: domain1 ドメインの場所: C:¥glassfishv3¥glassfish¥domains¥domain1 ログファイル: C:¥glassfishv3¥glassfish¥domains¥domain1¥logs¥server.log ドメインの管理ポート: 4848 コマンド start-domain は正常に実行されました。- Oracle GlassFish v3 管理ハンズオン - 48
  • 48. Oracle GlassFish Server 管理ハンズオンセミナー アプリケーションサーバ起動時にマスターパスワードの入力が求められるのは パスワード変更時、change-master-password のサブコマンドの引数に何もオプショ ンを指定していないためです。アプリケーションサーバの起動時にマスターパス ワードの入力を省略したい場合、change-master-password サブコマンドの引数に 「--savemasterpassword」オプションを指定して実行します。このオプションを指定 すると特定のディレクトリ配下にマスターパスワードの内容がファイルに書き出 されるため省略することができます。それでは実際に—savemasterpassword を指定 してパスワードを変更してみましょう。まずドメインを停止してください。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> asadmin stop-domain domain1 ドメインの停止を待機しています .... コマンド stop-domain は正常に実行されました。 次 に 、 change-master-password サ ブ コ マ ン ド を 実 行 し ま す 。 引 数 に --savemasterpassword オプションを指定して実行してください。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> asadmin change-master-password --savemasterpassword=true 現在のマスターパスワードを入力してください> [newpassword] New_Master_Password パスワードを入力してください> [changeit] New_Master_Password パスワードをもう一度入力してください> [changeit] コマンド change-master-password は正常に実行されました。 最後にドメインを起動します。起動時にマスターパスワードの入力が求められ ないことを確認しましょう。 C:¥glassfishv3¥glassfish¥domains¥domain1¥config> asadmin start-domain domain1 DAS の起動を待機しています ........ 起動したドメイン: domain1 ドメインの場所: C:¥glassfishv3¥glassfish¥domains¥domain1 ログファイル: C:¥glassfishv3¥glassfish¥domains¥domain1¥logs¥server.log ドメインの管理ポート: 4848 コマンド start-domain は正常に実行されました。 --savemasterpassword オプションを指定すると特定のディレクトリ配下にマスタ ーパスワードが保存されると前述しましたが、マスターパスワードの保存先を確 認します。実際のファイルの中身はバイナリファイルのため内容を確認すること- Oracle GlassFish v3 管理ハンズオン - 49
  • 49. Oracle GlassFish Server 管理ハンズオンセミナー はできませんが、ファイルは各ドメインのディレクトリ直下に master-password と いうファイル名で保存されます。 C:¥glassfishv3>cd "C:¥glassfishv3¥glassfish¥domains¥domain1" C:¥glassfishv3¥glassfish¥domains¥domain1> dir ドライブ C のボリューム ラベルは System です ボリューム シリアル番号は 5476-3D63 です C:¥glassfishv3¥glassfish¥domains¥domain1 のディレクトリ 2010/08/18 12:50 <DIR> . 2010/08/18 12:50 <DIR> .. 2010/08/17 18:53 <DIR> applications 2010/08/16 17:09 <DIR> autodeploy 2010/08/16 17:05 <DIR> bin 2010/08/18 12:51 <DIR> config 2010/08/16 17:05 <DIR> docroot 2010/08/16 17:09 <DIR> generated 2010/08/16 17:05 <DIR> lib 2010/08/18 12:50 <DIR> logs 2010/08/18 12:50 500 master-password 2010/08/16 17:08 <DIR> osgi-cache 1 個のファイル 500 バイト 11 個のディレクトリ 3,479,601,152 バイトの空き領域- Oracle GlassFish v3 管理ハンズオン - 50
  • 50. Oracle GlassFish Server 管理ハンズオンセミナー10. アプリケーションの配備(目標:10 分) GlassFish では下記のような様々なアプリケーションのタイプを配備できます。  Web Application  Enterprise Application  Application Client  Connector Module  EJB jar  Ruby Application  Other  OSGi モジュール Web Application の配備 アプリケーションを配備するためには基本的に下記の3種類の方法で行うこと ができます。また下記以外に統合開発環境から直接配備する方法等もあります。  asadmin deploy サブコマンド  管理コンソール  autodeploy ディレクトリへファイルをコピー asadmin コマンドを使用してアプリケーションを配備するためには deploy サブ コマンドを使用します。コマンドの引数に配備する対象のファイルを指定して実 行すると配備できます。 > asadmin deploy weld-servlet.war Application deployed successfully with name weld-servlet. コマンド deploy は正常に実行されました。 アプリケーションが正常に配備されている事を確認するためには、 list-components サブコマンドを実行します。 > asadmin list-components weld-servlet <web> コマンド list-components は正常に実行されました。- Oracle GlassFish v3 管理ハンズオン - 51
  • 51. Oracle GlassFish Server 管理ハンズオンセミナー 管理コンソールからは「アプリケーション」→「配備…」ボタンを押下して行 います。 図 25:アプリケーションの配備 ボタンを押下すると下記の画面が表示されます。ここで「サーバーにアップロ ードされるパッケージファイル」にチェックし「参照…」ボタンを押下します。 図 26:配備するアプリケーションの選択 ボタンを押下すると下記のファイル選択 Window が表示されます。ここで配備 対象のファイルを選択し「開く(O)」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 52
  • 52. Oracle GlassFish Server 管理ハンズオンセミナー 図 27:配備用にアップロードするファイルの選択 ファイルを選択すると設定可能項目が表示されます。 図 28:配備パラメータの設定(1)- Oracle GlassFish v3 管理ハンズオン - 53
  • 53. Oracle GlassFish Server 管理ハンズオンセミナー 図 29:配備パラメータの設定(2) デフォルトの設定内容のまま「OK」ボタンを押下します。ボタンを押下すると 下記の画面が表示されアプリケーションが追加されたことを確認できます。 図 30:配備されたアプリケーションの一覧 最後に autodeploy ディレクトリへファイルコピーしてアプリケーションを配備 する方法を確認します。C:¥glassfishv3¥glassfish¥domains¥domain1¥autodeploy ディ レクトリに対象のアプリケーションをコピーします。 このディレクトリは GlassFish が定期的監視しておりこのディレクトリ上にファ イルをコピーするだけでアプリケーションを配備することができます。アプリケ ーションが正常に配備されると同一ディレクトリ上に「アプリケーションファイ ル名_deployed」という名前の空ファイルが作成されます。- Oracle GlassFish v3 管理ハンズオン - 54
  • 54. Oracle GlassFish Server 管理ハンズオンセミナー 図 31:autodeploy ディレクトリへコピーして配備 Web Application の配備取り消し Web Application の配備取り消しも、配備と同様に3種類の方法で行うことがで きます。asadmin コマンドで配備の取り消しを行うためには undeploy サブコマンド を使用します。コマンドの引数に対象のアプリケーション名を指定して実行して ください。 > asadmin undeploy weld-servlet コマンド undeploy は正常に実行されました。 アプリケーションの配備を取り消した後 list-components サブコマンドで配備が 取り消されたことを確認できます。 > asadmin list-components Nothing to list. コマンド list-components は正常に実行されました。 管理コンソールから配備の取り消しを行うためには「アプリケーション」 「配 → 備取り消し」ボタンを押下して行います。- Oracle GlassFish v3 管理ハンズオン - 55
  • 55. Oracle GlassFish Server 管理ハンズオンセミナー 図 32:アプリケーション配備の取り消し ボタンを押下すると下記の取り消し確認用の Window が表示されます。配備の 取り消しを実行するには「OK」ボタンを押下してください。 図 33:配備取り消しの最終確認 配備の取り消しが完了すると下記の画面が表示されます。ここで配備を取り消 したアプリケーションが一覧から削除されていることを確認してください。 図 34:配備取り消しの確認 autodeploy ディレクトリにファイルをコピーしてアプリケーションを配備した 場合、autodeploy ディレクトリから対象のアプリケーションファイルを削除するこ とで配備の取り消しを行います。対象のディレクトリからアプリケーションファ イルを削除してください。ファイルを削除すると autodeploy ディレクトリ上に存 在した「アプリケーションファイル名_deployed」というファイルが「アプリケー ションファイル名_undeployed」というファイル名にリネームされます。- Oracle GlassFish v3 管理ハンズオン - 56
  • 56. Oracle GlassFish Server 管理ハンズオンセミナー 図 35:autodeploy ディレクトリからファイル削除による配備取り消し ファイルを削除した後、コマンドラインからも配備取り消しが成功しているか 確認してください。 s>asadmin list-components Nothing to list. コマンド list-components は正常に実行されました。- Oracle GlassFish v3 管理ハンズオン - 57
  • 57. Oracle GlassFish Server 管理ハンズオンセミナー11. JDBC の設定(目標:10 分) GlassFish には JavaDB が統合されていますが、本ラボでは MySQL との連携を行う設定をします。 JDBC ドライバのインストールとパス設定 GlassFish でデータベースの設定を行う前に、JDBC ドライバ提供ベンダーが提 供 す る JDBC ド ラ イ バ を 入 手 し ま す 。 今 回 は MySQL の JDBC ド ラ イ バ (mysql-connector-java-5.1.13- bin.jar)を GlassFish の lib ディレクトリ配下にコピーし ます。 C:¥Documents and Settings¥****¥デスクトップ ¥GlassFish-Hands-On¥binaries¥JDBC¥mysql-connector-java-5.1.13>copy "mysql-connector-java-5.1.13-bin.jar" C:¥glassfishv3¥glassfish¥lib 1 個のファイルをコピーしました。 次に GlassFish のクラスパスを設定します。クラスパスは asadmin コマンドもし くは管理コンソールを使用して設定を行います。 C:¥glassfishv3> asadmin set configs.config.server-config.java-config.native-library-path-suffix= C:¥glassfishv3¥glassfish¥lib¥mysql-connector-java-5.1.13-bin.jar configs.config.server-config.java-config.native-library-path-suffix= C:¥glassfish v3¥glassfish¥lib¥mysql-connector-java-5.1.13-bin.jar コマンド set は正常に実行されました。 Java VM に対する設定変更は再起動が必要です。そこでドメインを再起動して ください。 C:¥glassfishv3>asadmin restart-domain domain1 ドメインは正常に再起動されました コマンド restart-domain は正常に実行されました。 また管理コンソールからは「構成」→「JVM 設定」→「パス設定」→「ネイテ ィブライブラリパスのサフィックス」に対して設定します。パスを設定後「保存」 ボタンを押下してください。- Oracle GlassFish v3 管理ハンズオン - 58
  • 58. Oracle GlassFish Server 管理ハンズオンセミナー 図 36:JDBC ドライバの JVM パスへの追加 ボタンを押下すると下記の画面が表示されます。ここで「再起動が必要です」 と画面上部に記載されています。この一文はリンクとなっていますのでこのリン クを押下します。 図 37:JDBC ドライバの JVM パスへの追加確認 リンクを押下すると下記の画面が表示されます。 「再起動」ボタンを押下すると 管理コンソールからドメイン管理サーバインスタンスを再起動することができま す。「再起動」ボタンを押下してください。 図 38:JVM パラメータ変更による再起動- Oracle GlassFish v3 管理ハンズオン - 59
  • 59. Oracle GlassFish Server 管理ハンズオンセミナー ボタンを押下すると下記の最終確認画面が表示されますので「OK」ボタンを押 下します。 図 39:再起動最終確認 ボタンを押下すると下記の画面が表示されます。しばらくして画面を再読み込 みしてください。 図 40:再起動待機画面 JDBC 接続プールの作成 JDBC 接続プールを作成するためには create-jdbc-connection-pool サブコマンドを 使用します。コマンドの引数にデータソースのクラス名、リソースタイプ、DB に 対する接続用のプロパティを指定します。 C:¥glassfishv3> asadmin create-jdbc-connection-pool --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource --restype=javax.sql.DataSource --property user=gfdbadmin:password=glassfish:DatabaseName=MySQL:ServerName=loca lhost:port=3306:URL="jdbc¥:mysql¥://localhost¥:3306/glassfish_db" MySQL-Pool コマンド create-jdbc-connection-pool は正常に実行されました。 分散トランザクションを行う場合、データソース、リソースタイプにそれぞれ- Oracle GlassFish v3 管理ハンズオン - 60
  • 60. Oracle GlassFish Server 管理ハンズオンセミナー 下記を使用してください。  javax.sql.XADataSource  com.mysql.jdbc.jdbc2.optional.MysqlXADataSource 接続プールを作成後、作成した接続プールを使用して GlassFish から MySQL に 対 し て 接 続 が 可 能 か を 確 認 し ま す 。 DB と の 疎 通 確 認 を 行 う た め に は 、 ping-connection-pool サブコマンドを使用します。 C:¥glassfishv3> asadmin ping-connection-pool MySQL-Pool コマンド ping-connection-pool は正常に実行されました。 管理コンソールからは「リソース」→「JDBC」→「接続プール」から「新規…」 ボタンを押下し作成します。「新規…」ボタンを押下してください。 図 41:JDBC 接続プールの作成(1) ボタンを押下すると下記の画面が表示されます。ここで接続プール名、リソー スタイプ、データベースベンダーを選択し「次へ」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 61
  • 61. Oracle GlassFish Server 管理ハンズオンセミナー 図 42:JDBC 接続プールの作成(2) ボタンを押下すると下記の画面が表示されます。ここでデータソースクラス名、 追加プロパティ等を設定します。追加プロパティはデフォルトで 199 項目記載さ れていますが最低限接続に必要なプロパティは下記の表に記載した6項目です。 追加プロパティ中から最低限必要なプロパティを検索し設定してください。 表 7:MySQL 設定必須パラメータプロパティ名 値User GfdbadminPassword GlassfishDatabaseName glassfish_dbServerName LocalhostPort 3306URL jdbc:mysql://localhost:3306/glassfish_db- Oracle GlassFish v3 管理ハンズオン - 62
  • 62. Oracle GlassFish Server 管理ハンズオンセミナー 図 43:MySQL 接続プール詳細設定 全ての設定を行った後「完了」ボタンを押下してください。ボタンを押下した 後管理コンソールを更新し作成した接続プールが追加されているか確認してくだ さい。- Oracle GlassFish v3 管理ハンズオン - 63
  • 63. Oracle GlassFish Server 管理ハンズオンセミナー 図 44:設定済み接続プール一覧 接続プール一覧中で接続プールが追加されていることを確認した後、作成した 接続プールのリンクを押下してください。リンクを押下すると接続プールに対す る設定を参照・更新することが可能です。また「Ping」ボタンを押下し DB との疎 通確認を行うことができます。 Ping」 「 ボタンを押下し疎通確認を行ってください。 図 45:MySQL への疎通確認 JDBC リソースの設定 作成した JDBC 接続プールに対して、JDBC リソースを作成します。アプリケ ーションはここで設定する JNDI 名を利用して DB にアクセスできるようにな ります。asadmin で JDBC リソースを作成するためには create-jdbc-resource サブコ マンドを使用します。 C:¥glassfishv3>asadmin create-jdbc-resource --connectionpoolid MySQL-Pool jdbc/mysql コマンド create-jdbc-resource は正常に実行されました。 管理コンソールからは「リソース」→「JDBC」→ 「 JDBC リソース」を選択 し「新規 …」ボタンを押下して作成します。- Oracle GlassFish v3 管理ハンズオン - 64
  • 64. Oracle GlassFish Server 管理ハンズオンセミナー 図 46:JDBC リソースの作成(1) 「新規…」ボタンを押下すると下記の画面が表示されます。「JNDI 名」「プー 、 ル名」 、有効状態のチェックをつけ「OK」ボタンを押下します。 図 47:JDBC リソースの作成(2) 管理コンソールを更新して JDBC リソースが存在するか確認してください。以 降アプリケーションはここで設定した “jdbc/mysql” を利用して MySQL に対し て接続ができるようになります。 図 48:設定済み JDBC リソース一覧- Oracle GlassFish v3 管理ハンズオン - 65
  • 65. Oracle GlassFish Server 管理ハンズオンセミナー12. 仮想サーバーの作成(目標:10 分) 仮想サーバーを作成する前に、まず仮想サーバーについて理解します。仮想サーバーは1つのアプリケーションサーバーのインストールベースに対して複数のホスト名でリクエストを受け付けることができるような仕組みを提供します。 GlassFish はデフォルトで任意の IP アドレス(0.0.0.0)の 8080 番でアクセスされた全リクエストに対して同一処理を行います。つまり物理サーバー上で複数の IP アドレスが設定されている場合、いずれの IP アドレスを使用しても単一のドキュメントルートを参照するように設定されています。そこで仮想サーバーの設定がされていない環境ではホスト名毎に参照するドキュメントを変えることはできません。  web-sales.oracle.com (営業用サイト)  web-engineer.oracle.com (技術者用サイト) 上記のホストに対して、それぞれのリクエストに対して別のドキュメントを参照するには仮想サーバーを作成します。 ホスト名の追加 仮想サーバーを作成する前に、OS の設定で単一の IP アドレスに対して複数の ホスト名を記載します。Windows XP の環境では下記のように hosts ファイルを編 集してください。(C:¥WINDOWS¥system32¥drivers¥etc¥hosts) # Copyright (c) 1993-1999 Microsoft Corp. # # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a # symbol. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost web-sales.oracle.com web-engineer.oracle.com- Oracle GlassFish v3 管理ハンズオン - 66
  • 66. Oracle GlassFish Server 管理ハンズオンセミナー 仮想サーバー毎のディレクトリを作成 ホスト名を追加した後、それぞれのホスト名に対するコンテンツを置くドキュ メントルートディレクトリを用意します。今回はドメイン配下にそれぞれのディ レクトリを作成します。 C:¥glassfishv3¥glassfish¥domains¥domain1>mkdir sales-docroot C:¥glassfishv3¥glassfish¥domains¥domain1>mkdir engineer-docroot 仮想サーバー毎のコンテンツを作成 作成したディレクトリ配下にそれぞれ HTML コンテンツを作成します。営業用 に表示する Web ページをファイル名 index.html として下記の内容で作成します。 (保存先:C:¥glassfishv3¥glassfish¥domains¥domain1¥sales-docroot¥) <HTML> <BODY> 営業用の Web ページ </BODY> </HTML> 技術者用に表示する Web ページをファイル名 index.html として下記の内容で作 成します。 (保存先:C:¥glassfishv3¥glassfish¥domains¥domain1¥engineer-docroot) <HTML> <BODY> 技術者用の Web ページ </BODY> </HTML> 仮想サーバーの作成 C:¥glassfishv3> asadmin create-virtual-server --hosts web-sales.oracle.com --networklisteners http-listener-1,http-listener-2 web-sales コマンド create-virtual-server は正常に実行されました。 C:¥glassfishv3> asadmin set configs.config.server-config.http-service.virtual-server.web-sales.d ocroot=C:¥glassfishv3¥glassfish¥domains¥domain1¥sales-docroot configs.config.server-config.http-service.virtual-server.web-sales.d ocroot=C:¥glassfishv3¥glassfish¥domains¥domain1¥sales-docroot¥- Oracle GlassFish v3 管理ハンズオン - 67
  • 67. Oracle GlassFish Server 管理ハンズオンセミナー コマンド set は正常に実行されました。 設定後 Web ブラウザからホスト名を指定してアクセスしてください。 http://web-sales.oracle.com:8080/index.html 図 49:営業用仮想サーバーのページ閲覧 C:¥glassfishv3> asadmin create-virtual-server --hosts web-engineer.oracle.com --networklisteners http-listener-1,http-listener-2 web-engineer コマンド create-virtual-server は正常に実行されました。 C:¥glassfishv3> asadmin set configs.config.server-config.http-service.virtual-server.web-enginee r.docroot="C:¥glassfishv3¥glassfish¥domains¥domain1¥engineer-docroot ¥¥" configs.config.server-config.http-service.virtual-server.web-enginee r.docroot=C:¥glassfishv3¥glassfish¥domains¥domain1¥engineer-docroot¥ コマンド set は正常に実行されました。 設定後 Web ブラウザからホスト名を指定してアクセスしてください。 http://web-engineer.oracle.com:8080/index.html 図 50:技術者用仮想サーバーのページ閲覧- Oracle GlassFish v3 管理ハンズオン - 68
  • 68. Oracle GlassFish Server 管理ハンズオンセミナー 管理コンソールから仮想サーバーの作成 管理コンソールからは「構成」→「仮想サーバー」を選択し「新規 …」ボタン を押下して作成します。 図 51:仮想サーバーの作成 ボタンを押下すると下記の画面が表示されます。 「ID」に仮想サーバー設定の識 別用 ID を入力し、 「ホスト名」にブラウザで指定されるホスト名を記載します、 またネットワークリスナーから対応するリスナーを選択します、最後に「docroot」 に仮想サーバーのドキュメントルートのパスを指定して「OK」ボタンを押下しま す。 図 52:仮想サーバーの設定(1)- Oracle GlassFish v3 管理ハンズオン - 69
  • 69. Oracle GlassFish Server 管理ハンズオンセミナー 図 53:仮想サーバーの設定(2) ボタンを押下すると下記の画面が表示され一覧中に作成した仮想サーバーが追 加されていることを確認します。 図 54:設定済みの仮想サーバー一覧 仮想サーバー単位のアプリケーション配備 仮想サーバーを作成した後、仮想サーバー単位にアプリケーションを配備する ことができるようになります。アプリケーションの配備時に「仮想サーバーID」 を指定しアプリケーションをデプロイします。ここでは web-engineer に対してアプ リケーションを配備します。- Oracle GlassFish v3 管理ハンズオン - 70
  • 70. Oracle GlassFish Server 管理ハンズオンセミナー 図 55:仮想サーバー単位のアプリケーション配備 アプリケーションを配備した後それぞれの仮想サーバーにアクセスします。デ プロイした対象の仮想サーバーにアクセスした際、Web アプリケーションが適切 に表示されていることを確認してください。 図 56:配備した仮想サーバーへのアクセス アプリケーションを配備していない仮想サーバーにアクセスした際、Web アプ リケーションが表示されないことを確認してください。- Oracle GlassFish v3 管理ハンズオン - 71
  • 71. Oracle GlassFish Server 管理ハンズオンセミナー 図 57:配備されていない仮想サーバーへのアクセス- Oracle GlassFish v3 管理ハンズオン - 72
  • 72. Oracle GlassFish Server 管理ハンズオンセミナー13. Java VM(JRockit VM)への切り替え(目標:15 分) GlassFish v3.0.1 から JRockit VM のサポートを開始しました。そこで JRockit VM の上でGlassFish が動作するよう設定を行います。 JRockit Mission Control のインストール まず初めに JRockit Mission Control をインストールします。JRockit Mission Control のインストーラーを実行してください。 図 58:JRockit Mission Control のインストーラー インストーラーを起動すると下記の Window が表示されます。インストーラー のウィザードに従い「Next」ボタンを押下します。 図 59:JRockit Mission Control インストーラーウィザード ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー ドに従い「Next」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 73
  • 73. Oracle GlassFish Server 管理ハンズオンセミナー 図 60:JRockit Mission Control インストーラーウィザード ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー ドに従い「Next」ボタンを押下します。 図 61:JRockit Mission Control インストーラーウィザード ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー ドに従い「Next」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 74
  • 74. Oracle GlassFish Server 管理ハンズオンセミナー 図 62:JRockit Mission Control インストーラーウィザード ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー ドに従い「Next」ボタンを押下します。 図 63:JRockit Mission Control インストーラーウィザード ボタンを押下すると下記の Window が表示されインストールが開始します。- Oracle GlassFish v3 管理ハンズオン - 75
  • 75. Oracle GlassFish Server 管理ハンズオンセミナー 図 64:JRockit Mission Control インストーラーウィザード インストールが正常に完了すると下記の Window が表示されます。 「Done」ボタ ンを押下しインストールを完了します。 図 65:JRockit Mission Control インストーラーウィザード GlassFish に対する JRockit の設定 JRockit Mission Control のインストールが完了した後、 GlassFish に対して Java VM の変更を行います。今回 Java VM の変更は管理コンソールを使用して行います。- Oracle GlassFish v3 管理ハンズオン - 76
  • 76. Oracle GlassFish Server 管理ハンズオンセミナー 管理コンソールにログイン後「構成」→「JVM 設定」を選択してください。選 択すると下記の画面が表示されます。「Java ホーム」の項目に JRockit Mission Control をインストールしたパス(C:¥Program Files¥Java¥jrmc-4.0-1.6.0)を指定し「保 存」ボタンを押下します。 図 66:JVM ホームの設定変更 ボタンを押下すると下記のように「再起動が必要です」とメッセージが出力さ れます。しかしこの時点では再起動を行わないでください。 図 67:JVM ホームの設定保存完了 再起動をしない状態で「JVM オプション」のタブを選択します。タブを選択す ると現在設定されている JVM のオプション一覧が表示されます。この中から下記 の2つの JVM オプションを削除してください。  -XX:+LogVMOutput  -XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log これは下記の URL に記載された既知の問題を回避するためです。 http://docs.sun.com/app/docs/doc/821-1759/gkbft?l=en&a=view- Oracle GlassFish v3 管理ハンズオン - 77
  • 77. Oracle GlassFish Server 管理ハンズオンセミナー 2つの項目にチェックし「削除」ボタンを押下してください。 図 68:JVM オプションの削除(既知の問題の回避策) 削除ボタンを押下したのち「保存」ボタンを押下します。- Oracle GlassFish v3 管理ハンズオン - 78
  • 78. Oracle GlassFish Server 管理ハンズオンセミナー 図 69:JVM オプション削除の確認と設定保存 上記の JVM オプションを削除し保存が完了した時点で再起動を行います。 「再 起動が必要です」のリンクを押下してください。 図 70:保存完了確認と再起動 リンクを押下すると下記の画面が表示されます。ここで「再起動」ボタンを押 下します。 図 71:再起動画面 無事に再起動が行われた後、JRockit Mission Control を起動します。JRockit Mission Control のインストール配下の bin ディレクトリ内に jrmc.exe が存在します ので起動します。- Oracle GlassFish v3 管理ハンズオン - 79
  • 79. Oracle GlassFish Server 管理ハンズオンセミナー 図 72:JRockit Mission Control の実行 JRockit Mission Control を起動した後コンソールを表示すると下記のような画面 が表示されます。JRockit Mission Control を使用して Visual VM と同様に Java VM の監視・管理等を行うことができます。 図 73:JRockit Mission Control の動作確認(1) 下記は JRockit Mission Control を使用して MBean にアクセスしています。- Oracle GlassFish v3 管理ハンズオン - 80
  • 80. Oracle GlassFish Server 管理ハンズオンセミナー 図 74:JRockit Mission Control の動作確認(2) JRockit はフライトレコーダ機能が内蔵されていますのでこれらの機能も試して ください。- Oracle GlassFish v3 管理ハンズオン - 81
  • 81. Oracle GlassFish Server 管理ハンズオンセミナー 日本オラクル株式会社 Copyright © 2010 Oracle Corporation Japan. All Rights Reserved. 無断転載を禁ず この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。 Oracle は米国 Oracle Corporation の登録商標です。文中に参照されている各製品名及びサービス名は米国 Oracle Corporation の商標または登録商標です。その他の製品名及びサービス名はそれぞれの所有者の商標または登録商標の可能性があります。- Oracle GlassFish v3 管理ハンズオン - 82