Upload
oracle-fusion-middleware
View
6.297
Download
4
Embed Size (px)
DESCRIPTION
This is hands on material for GlassFish administration. You can use this hands on for v3.0 but
Citation preview
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 2
dirChange History
Date Author Contents of Modification Revision
Jul 23, 2010 Yoshio Terada 既存の資料を基に作成 Ver. 1.0
誤字・脱字を修正 Ver. 1.1
「詳細アーキテクチャ」のページを追加 Ver. 2.0
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 3
GlassFish v3.0.1管理ハンズオン資料
Creation Date: Jul 05, 2010
Last Update: Aug 22, 2010
Version: 1.2
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 4
目次
目次 ..................................................................................................................................... 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 5
ドメインとドメイン管理サーバーの起動 ..................................................................... 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 6
1. ハンズオンラボの目的
このハンズオンラボは、Oracle GlassFish Server v3.0.1の管理に必要な機能を把握すること
が目的です。本ラボを完了すると GlassFish v3.0.1の管理概要を把握することができます。
2. 事前準備
このハンズオンラボでは GlassFish Server Open Source Edition ではなく Oracle
GlassFish Server v3.0.1 を使用して行います。そこで NetBeans でインストールした Open
Source Edition とは別途、Oracle GlassFish Server をインストールしてください。インス
トールを開始する前に NetBeans、GlassFish Server Open Source Edition を停止してくだ
さい。それでは Oracle GlassFish Server のインストーラーを起動しましょう。
図 1:Oracle GlassFish Server のインストーラー
起動すると下記の画面が表示されます。画面の指示に従い「次へ」ボタンを押下します。
図 2:Oracle GlassFish Server インストールウィザード
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 7
ボタンを押下すると下記の画面が表示されます。インストールディレクトリはデフォル
ト(C:¥glassfishv3)のまま「次へ」ボタンを押下します。
図 3:Oracle GlassFish Server インストールウィザード
ボタンを押下すると下記の画面が表示されます。管理者用のパスワード(adminadmin)を
入力し「次へ」ボタンを押下します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 8
図 4:Oracle GlassFish Server インストールウィザード
ボタンを押下すると下記の画面が表示されます。このラボでプロキシサーバは使用しま
せんので空白のまま「次へ」ボタンを押下します。
図 5:Oracle GlassFish Server インストールウィザード
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 9
ボタンを押下すると下記の画面が表示されます。インストーラーがデフォルトで検知し
た JDK(JDK 1.6.0_21)を使用します、そのまま「次へ」ボタンを押下します。
図 6:Oracle GlassFish Server インストールウィザード
ボタンを押下すると下記の画面が表示されます。内容を確認した後「インストール」ボ
タンを押下します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 10
図 7:Oracle GlassFish Server インストールウィザード
インストールが開始すると下記のような画面が表示されます、しばらくお待ちください。
図 8:Oracle GlassFish Server インストールウィザード
インストールが完了すると下記の画面が表示されます。この段階では製品の登録をスキ
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 11
ップします。「次へ」ボタンを押下してください。
図 9:Oracle GlassFish Server インストールウィザード
ボタンを押下すると下記の画面が表示されます。以上でインストールは完了です。「終
了」ボタンを押下してインストールを終了してください。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 12
図 10:Oracle GlassFish Server インストールウィザード
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 13
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 14
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 15
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 16
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 17
[--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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 18
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 19
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 20
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 21
ドット表記の設定可能要素一覧を取得してください。またドット表記とワイルド
カードを併用し特定の階層の要素のみ取得してください。
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 は正常に実行されました。
次に、get コマンドにワイルドカード(*)を使用して実行し GlassFish のドット表
記の既存設定値が確認してください。またドット表記とワイルドカードを併用し
特定の階層の要素(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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 22
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 23
管理パスワード を入力してください [デフォルト (パスワードなし) を使用する場合は
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 24
5. Web 管理コンソールの基本(目標:10 分)
管理コンソールは、操作しやすい GUI 管理インタフェースとオンラインヘルプを装備したブラウ
ザベースの管理ツールです。
管理コンソールへのアクセス
管理コンソールを使用するには、管理サーバー (ドメイン管理サーバー) が起動され
ている必要があります、ドメインが起動されているか確認してください。管理コンソールに
Web ブラウザでアクセスするにはドメイン作成時に指定した管理ポート番号(デフォルト
4848)を指定します。Web ブラウザで次の URLにアクセスしてください。
http://ホスト名:ポート番号/
例えば同一環境からアクセスする際は下記の URLを入力します。
http://localhost:4848/
ブラウザからアクセスすると下記の画面が表示されます。管理コンソールも OSGi モ
ジュールと実装されており必要に応じてアクセス時にモジュールがロードされます。
図 11:管理コンソールのモジュールロード
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 25
管理コンソールモジュールがロードされると下記の画面が表示されます。ここでインス
トール時に指定したユーザー名、パスワードを入力し「ログイン」ボタンを押下します。
図 12:管理コンソールログイン
ログイン認証が完了すると下記の画面が表示されます。
図 13:管理コンソールの初期画面
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 26
GlassFish のメンバー登録
ここで、GlassFish に対する登録を行ってください。「登録」ボタンを押下してください。
図 14:製品の登録画面
ボタンを押下すると下記の画面が表示されます。ここに必要項目を記載し「登録」ボタ
ンを押下します。
図 15:製品の登録画面
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 27
オープンソース版と製品版の確認
オープンソース版の「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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 28
表 2:管理画面のメニュー項目
項目 説明
ホーム 任意のページから管理コンソールのトップページへ遷移
製品について 製品ライセンスの詳細を記載するページを表示(図:)
ログアウト 管理コンソールをログアウト
ヘルプ 管理コンソールのヘルプ画面を表示(図:)
ユーザー ドメイン管理者のユーザー名
ドメイン 管理対象のドメイン名
サーバー ドメイン管理サーバーが稼働するサーバー名
「製品について」のボタンを押下すると下記の画面が表示されます。
図 19:製品説明画面
「ヘルプ」ボタンを押下するとヘルプ画面が表示されます。マルチリンガル版をインス
トールした場合全て日本語翻訳されたヘルプ画面が表示されます。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 29
図 20:ヘルプ画面
6. REST インタフェースによる管理(目標:10 分)
GlassFishは各種設定項目、監視項目に対してRESTインタフェースを通じてアクセスできます。
RESTインタフェースには、次のようなクライアントアプリケーションからアクセスできます。
Web ブラウザ
cURL
GNU Wget
また、プログラミング言語を使用し開発された独自 REST クライアントからアクセスすることもで
きます。
JavaScript
Ruby
Perl
Java
JavaFX
REST インタフェースへのアクセス
管理用 REST インタフェースを通じて、設定もしくは監視を行うことができま
す。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 30
表 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 31
図 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 32
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-1
URL パス表記 http://localhost:4848/management/domain/configs/config/
server-config/network-config/network-listeners/network-listener/http-listener-1
ドット表記から URL に置き換えた後、Web ブラウザからアクセスすると下記の
画面が表示されます。
図 23:REST インタフェースで特定パラメータの変更
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 33
この管理画面には「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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 34
<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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 35
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 36
", "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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 37
7. Apache Felix コンソール (目標:10 分)
GlassFishに付属のOSGiモジュール管理サブシステムは、Apache Felix OSGiフレームワー
クです。このモジュールサブシステムを利用するため、GlassFish ではデフォルトで Apache
Fellix 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 38
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 39
-> 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 40
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 41
============================
-> 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 42
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 43
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 44
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 45
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.bak
domain.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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 46
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 47
管理者パスワードは 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 48
それではマスターパスワードを変更します。マスターパスワードを変更するた
めには 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 49
アプリケーションサーバ起動時にマスターパスワードの入力が求められるのは
パスワード変更時、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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 50
はできませんが、ファイルは各ドメインのディレクトリ直下に 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 51
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 52
管理コンソールからは「アプリケーション」→「配備…」ボタンを押下して行
います。
図 25:アプリケーションの配備
ボタンを押下すると下記の画面が表示されます。ここで「サーバーにアップロ
ードされるパッケージファイル」にチェックし「参照…」ボタンを押下します。
図 26:配備するアプリケーションの選択
ボタンを押下すると下記のファイル選択 Window が表示されます。ここで配備
対象のファイルを選択し「開く(O)」ボタンを押下します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 53
図 27:配備用にアップロードするファイルの選択
ファイルを選択すると設定可能項目が表示されます。
図 28:配備パラメータの設定(1)
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 54
図 29:配備パラメータの設定(2)
デフォルトの設定内容のまま「OK」ボタンを押下します。ボタンを押下すると
下記の画面が表示されアプリケーションが追加されたことを確認できます。
図 30:配備されたアプリケーションの一覧
最後に autodeploy ディレクトリへファイルコピーしてアプリケーションを配備
する方法を確認します。C:¥glassfishv3¥glassfish¥domains¥domain1¥autodeploy ディ
レクトリに対象のアプリケーションをコピーします。
このディレクトリは GlassFish が定期的監視しておりこのディレクトリ上にファ
イルをコピーするだけでアプリケーションを配備することができます。アプリケ
ーションが正常に配備されると同一ディレクトリ上に「アプリケーションファイ
ル名_deployed」という名前の空ファイルが作成されます。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 55
図 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 56
図 32:アプリケーション配備の取り消し
ボタンを押下すると下記の取り消し確認用の Window が表示されます。配備の
取り消しを実行するには「OK」ボタンを押下してください。
図 33:配備取り消しの最終確認
配備の取り消しが完了すると下記の画面が表示されます。ここで配備を取り消
したアプリケーションが一覧から削除されていることを確認してください。
図 34:配備取り消しの確認
autodeploy ディレクトリにファイルをコピーしてアプリケーションを配備した
場合、autodeploy ディレクトリから対象のアプリケーションファイルを削除するこ
とで配備の取り消しを行います。対象のディレクトリからアプリケーションファ
イルを削除してください。ファイルを削除すると autodeploy ディレクトリ上に存
在した「アプリケーションファイル名_deployed」というファイルが「アプリケー
ションファイル名_undeployed」というファイル名にリネームされます。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 57
図 35:autodeploy ディレクトリからファイル削除による配備取り消し
ファイルを削除した後、コマンドラインからも配備取り消しが成功しているか
確認してください。
s>asadmin list-components
Nothing to list.
コマンド list-components は正常に実行されました。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 58
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 59
図 36:JDBC ドライバの JVM パスへの追加
ボタンを押下すると下記の画面が表示されます。ここで「再起動が必要です」
と画面上部に記載されています。この一文はリンクとなっていますのでこのリン
クを押下します。
図 37:JDBC ドライバの JVM パスへの追加確認
リンクを押下すると下記の画面が表示されます。「再起動」ボタンを押下すると
管理コンソールからドメイン管理サーバインスタンスを再起動することができま
す。「再起動」ボタンを押下してください。
図 38:JVM パラメータ変更による再起動
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 60
ボタンを押下すると下記の最終確認画面が表示されますので「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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 61
下記を使用してください。
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 62
図 42:JDBC 接続プールの作成(2)
ボタンを押下すると下記の画面が表示されます。ここでデータソースクラス名、
追加プロパティ等を設定します。追加プロパティはデフォルトで 199 項目記載さ
れていますが最低限接続に必要なプロパティは下記の表に記載した6項目です。
追加プロパティ中から最低限必要なプロパティを検索し設定してください。
表 7:MySQL 設定必須パラメータ
プロパティ名 値
User Gfdbadmin
Password Glassfish
DatabaseName glassfish_db
ServerName Localhost
Port 3306
URL jdbc:mysql://localhost:3306/glassfish_db
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 63
図 43:MySQL 接続プール詳細設定
全ての設定を行った後「完了」ボタンを押下してください。ボタンを押下した
後管理コンソールを更新し作成した接続プールが追加されているか確認してくだ
さい。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 64
図 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 65
図 46:JDBC リソースの作成(1)
「新規…」ボタンを押下すると下記の画面が表示されます。「JNDI 名」、「プー
ル名」、有効状態のチェックをつけ「OK」ボタンを押下します。
図 47:JDBC リソースの作成(2)
管理コンソールを更新して JDBC リソースが存在するか確認してください。以
降アプリケーションはここで設定した “jdbc/mysql” を利用して MySQL に対し
て接続ができるようになります。
図 48:設定済み JDBC リソース一覧
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 66
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 67
仮想サーバー毎のディレクトリを作成
ホスト名を追加した後、それぞれのホスト名に対するコンテンツを置くドキュ
メントルートディレクトリを用意します。今回はドメイン配下にそれぞれのディ
レクトリを作成します。
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 68
コマンド 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 69
管理コンソールから仮想サーバーの作成
管理コンソールからは「構成」→「仮想サーバー」を選択し「新規 …」ボタン
を押下して作成します。
図 51:仮想サーバーの作成
ボタンを押下すると下記の画面が表示されます。「ID」に仮想サーバー設定の識
別用 ID を入力し、「ホスト名」にブラウザで指定されるホスト名を記載します、
またネットワークリスナーから対応するリスナーを選択します、最後に「docroot」
に仮想サーバーのドキュメントルートのパスを指定して「OK」ボタンを押下しま
す。
図 52:仮想サーバーの設定(1)
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 70
図 53:仮想サーバーの設定(2)
ボタンを押下すると下記の画面が表示され一覧中に作成した仮想サーバーが追
加されていることを確認します。
図 54:設定済みの仮想サーバー一覧
仮想サーバー単位のアプリケーション配備
仮想サーバーを作成した後、仮想サーバー単位にアプリケーションを配備する
ことができるようになります。アプリケーションの配備時に「仮想サーバーID」
を指定しアプリケーションをデプロイします。ここでは web-engineer に対してアプ
リケーションを配備します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 71
図 55:仮想サーバー単位のアプリケーション配備
アプリケーションを配備した後それぞれの仮想サーバーにアクセスします。デ
プロイした対象の仮想サーバーにアクセスした際、Web アプリケーションが適切
に表示されていることを確認してください。
図 56:配備した仮想サーバーへのアクセス
アプリケーションを配備していない仮想サーバーにアクセスした際、Web アプ
リケーションが表示されないことを確認してください。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 72
図 57:配備されていない仮想サーバーへのアクセス
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 73
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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 74
図 60:JRockit Mission Control インストーラーウィザード
ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー
ドに従い「Next」ボタンを押下します。
図 61:JRockit Mission Control インストーラーウィザード
ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー
ドに従い「Next」ボタンを押下します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 75
図 62:JRockit Mission Control インストーラーウィザード
ボタンを押下すると下記の Window が表示されます。インスーラーのウィザー
ドに従い「Next」ボタンを押下します。
図 63:JRockit Mission Control インストーラーウィザード
ボタンを押下すると下記の Window が表示されインストールが開始します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 76
図 64:JRockit Mission Control インストーラーウィザード
インストールが正常に完了すると下記の Window が表示されます。「Done」ボタ
ンを押下しインストールを完了します。
図 65:JRockit Mission Control インストーラーウィザード
GlassFish に対する JRockit の設定
JRockit Mission Controlのインストールが完了した後、GlassFishに対して Java VM
の変更を行います。今回 Java VM の変更は管理コンソールを使用して行います。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 77
管理コンソールにログイン後「構成」→「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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 78
2つの項目にチェックし「削除」ボタンを押下してください。
図 68:JVM オプションの削除(既知の問題の回避策)
削除ボタンを押下したのち「保存」ボタンを押下します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 79
図 69:JVM オプション削除の確認と設定保存
上記の JVM オプションを削除し保存が完了した時点で再起動を行います。「再
起動が必要です」のリンクを押下してください。
図 70:保存完了確認と再起動
リンクを押下すると下記の画面が表示されます。ここで「再起動」ボタンを押
下します。
図 71:再起動画面
無事に再起動が行われた後、JRockit Mission Control を起動します。JRockit
Mission Control のインストール配下の bin ディレクトリ内に jrmc.exe が存在します
ので起動します。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 80
図 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 Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 81
図 74:JRockit Mission Control の動作確認(2)
JRockit はフライトレコーダ機能が内蔵されていますのでこれらの機能も試して
ください。
Oracle GlassFish Server管理ハンズオンセミナー
- Oracle GlassFish v3 管理ハンズオン - 82
日本オラクル株式会社
Copyright © 2010 Oracle Corporation Japan. All Rights Reserved.
無断転載を禁ず
この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあり
ます。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に
関連したいかなる損害についても責任を負いかねます。
Oracle は米国 Oracle Corporation の登録商標です。文中に参照されている各製品名及びサ
ービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス
名はそれぞれの所有者の商標または登録商標の可能性があります。