Posts tagged ‘GlassFish’
GlassFish ドメイン管理の基本
さて、ブログサイトを移動して初エントリですが、実は昨年
GlassFish に関する本を出版するかもしれないということで、
出版用に書きためた物があります。それを、そのまま削除するのも
もったいないので、こちらに数回に分けて投稿する事にしました。
まず、はじめに GlassFish のドメイン管理を行う前に事前に準備します。
-
ホスト名とインストール場所について
-
アプリケーションサーバ実行ユーザの作成
-
管理操作を容易にする環境変数の設定
-
管理ツールの紹介
-
管理コンソール
GUIの管理コンソールを使用してGlassFishの管理を行うことができます.管理コンソールは洗練されたデザインであるため,初めてGlassFishを扱うサーバ管理者も感覚的に管理操作ができるため非常に便利です.

-
asadminコマンドユーティリティ
asadmin コマンドユーティリティは,GUIベースの管理コンソールが提供する管理機能のほとんどを行うことができる便利なユーティリティコマンドです.このコマンドを把握するとスクリプトを書いて管理の自動化を行ったり,ブラウザを開かずに管理ができるためちょっとした管理にもとても便利です.asadminユーティリティの使用方法は,–helpを付加して確認します.実行すると利用可能なコマンドの一覧を表示します.
dashost > asadmin –help
Administration Commands help(1)
NAME
help – displays the asadmin utility commands
SYNOPSIS
help [command_name]
command_name [–help | -?]さらに利用可能なコマンド一覧からコマンドを選択し,引数に–help をつけて実行して下さい.実行するとコマンドの詳細なマニュアルが表示されます.
dashost > asadmin create-domain –help
Administration Commands create-domain (1)
NAME
create-domain – creates a domain with the given name
SYNOPSIS
create-domain [–user user] [–passwordfile passwordfile]
[(–adminport port_number | –portbase portbase)]
[(–profile developer | cluster | enterprise ] –template domain_template)]
[–domaindir domain_directory/domains]
[–instanceport port_number] [–savemasterpassword=false]
[–domainproperties (name=value)[:name=value]*
]
[–savelogin=false] [–terse=false]
[–echo=false] [–interactive=true]
domain_nameまた,asadminユーティリティのコマンドの中でもget,setコマンドを使用すると現在設定されている内容の参照や更新ができます.下記の例ではアスタリスク(*)を指定し全ての設定情報を参照しています.また特定のプロパティに対してsetコマンドを実行し設定変更を行うことができます.
dashost > asadmin get “*”
dashost > asadmin set server-config.http-service.http-listener.admin-listener.server-name=dashost
server-config.http-service.http-listener.admin-listener.server-name = dashost
dashost > asadmin get server-config.http-service.http-listener.admin-listener.server-name
server-config.http-service.http-listener.admin-listener.server-name = dashost -
以降で紹介するホスト名は下記の通りです.それぞれのホストで実行するコマンドを区別するため,コマンド実行時はコマンドプロンプトを付加します.たとえば dashost > と記載されたコマンドはドメイン管理サーバ上で実行していることを意味します.
| 役割 | ホスト名 | コマンドプロンプト |
| ドメイン管理サーバ | dasohst.japan.sun.com | dashost > |
| ノードエージェント | nodeagent1.japan.sun.com | nodeagent1 > |
| ノードエージェント | nodeagent2.japan.sun.com | nodeagent2 > |
| 認証局(CA)サーバ | ca-admin.sun.com | ca-server > |
ドメイン管理サーバ,ノードエージェントはそれぞれ下記のディレクトリにインストールします.
GlassFish のインストールは root 権限で行い,インストールしたライブラリ等は全て root 権限のままにします.
またドメインの実行や管理などは全て一般ユーザ (appserv) で行います.
| /sun/glassfish-v2.1.1 |
認証局(CA)サーバはOpenSSL/0.9.8kを利用していますが,紙面の都合上認証局サーバの構築方法は省略します.
ドメイン管理サーバと全てのノードエージェント上で実行ユーザとグループを作成します。
| # groupadd -g 300 appserv # useradd -u 300 -g appserv -d /export/home/appserv -s /bin/tcsh -m appserv 64 ブロック |
次に,アプリケーションサーバのデフォルトのドメインディレクトリパスを変更します.この変数を変更すると全てのドメイン管理は指定したディレクトリ配下で行われるようになります.ここで指定したディレクトリは実行ユーザ,実行グループで読み書きができるディレクトリでなければなりません.
| # vi /sun/glassfish-v2.1.1/config/asenv.conf AS_DEF_DOMAINS_PATH=”/export/home/appserv/domains” |
上記で指定したディレクトリがない場合は作成してください.
| dashost >cd /export/home/appserv dashost > mkdir domains dashost > ls -l 合計 2 drwxr-xr-x 2 appserv appserv 512 12 月 2日 20:48 domains |
あらかじめ環境変数に,管理者ユーザ名,パスワードなどを設定しておくことでコマンド入力引数を省略できます.下記の設定をドメイン管理サーバ,ノードエージェントの全てで設定してください.
sh 用環境変数の設定例
| PATH=/sun/glassfish-v2.1.1/bin JAVA_HOME=/usr/jdk/jdk1.6.0_17 AS_HOME=/sun/glassfish-v2.1.1 AS_ADMIN_USER=clusterAdmin AS_ADMIN_PASSWORDFILE=~/.passwordfileAS_ADMIN_HOST=dashost.japan.sun.com AS_ADMIN_PORT=5048 |
csh 用環境変数の設定例
| set path=(/sun/glassfish-v2.1.1/bin $path) setenv JAVA_HOME /usr/jdk/jdk1.6.0_17 setenv AS_HOME /sun/glassfish-v2.1.1 setenv AS_ADMIN_USER clusterAdmin setenv AS_ADMIN_PASSWORDFILE ~/.passwordfile setenv AS_ADMIN_HOST dashost.japan.sun.com setenv AS_ADMIN_PORT 5048 |
AS_ADMIN_PASSWORDFILE で指定するパスワードファイルは任意の場所に置くことができます.パスワードファイルには高い機密性を要する情報が含まれるため,ファイルを隠しファイルにしたり,パーミッションを読み込み可能モードにするなどして管理に十分注意してください.
パスワードファイル中に記載する AS_ADMIN_PASSWORD は管理サーバにログインする際に使用するパスワードを指定します。また AS_ADMIN_MASTERPASSWORD には SSL のサーバ証明書や認証局証明書を扱う,証明書データベースを操作するために必要なパスワードを指定します.GlassFish はドメインを作成時,自動的で設定ディレクトリ配下に自己署名証明書(ニックネーム:s1as)を作成します.証明書データベースを操作する際にこのパスワードが必要になります.
~/.passwordfile の内容
| AS_ADMIN_PASSWORD=adminadmin AS_ADMIN_MASTERPASSWORD=changeit |
マピオンのエンジニアさんとの対談記事

昨年末、マピオンさんと合同セミナーを開催しました。
イベント後、マピオンのエンジニアの方々と対談を行い、
対談内容が下記にて公開されました。
マピオン開発部門×サンJavaスペシャリスト 特別対談
なぜ、GlassFish を採用したのか、実運用を開始してからの
どのような事を感じていらっしゃるか等、実際に本番環境で
利用しているお客様の生の声が記載されています。
GlassFish の導入をご検討中の方、また Tomcat, JBoss 等
他のオープンソースアプリケーションサーバをご利用中の方は
是非、本資料をご覧ください。
GlassFishのロードバランサプラグインで Apache と動作確認 Part2 (GlassFish 設定編)
GlassFishのロードバランサプラグインで Apache と連携 Part1 (Apache 設定編)
に引き続きGlassFish の設定と動作確認をしてみます。
GlassFish の設定と動作確認
実際に GlassFish 上でクラスタ構成を設定し、動作を確認してみましょう。
ドメインの起動
Part 1 で作成したドメインを起動してください。
| dashost > asadmin start-domain clusterDomain ドメイン clusterDomain を起動しています。お待ちください。 デフォルトのログの場所は /export/home/appserv/domains/clusterDomain/logs/server.log です。 出力を /export/home/appserv/domains/clusterDomain/logs/server.log にリダイレクトしています ドメイン clusterDomain が起動しました。 ドメイン [clusterDomain] はその設定で [Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs)] を実行しています。ログは [/export/home/appserv/domains] にあります。 管理コンソールは [http://localhost:5048] で使用できます。 “asadmin” コマンドにも同じポート [5048] を使用します。 ユーザーの Web アプリケーションは次の URL で使用できます: [http://localhost:5080 https://localhost:5081 ]。 次の web-contexts を使用できます: [/web1 /__wstx-services ]。 標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL: [service:jmx:rmi:///jndi/rmi://dashost:5086/jmxrmi] に接続できます。 ドメインは少なくとも次のポートで接続を待機しています: [5080 5081 5048 5037 5038 5039 5086 ]。 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。 |
ノードエージェントの作成
次に、ドメインに所属するノードエージェントを2つ作成してください。
それぞれのノードエージェントが稼働するマシン上でコマンドを実行してください。
nodeagent1 の作成と起動
| nodeagent1 > asadmin create-node-agent nodeagent1 コマンド create-node-agent は正常に実行されました。 nodeagent1 > asadmin start-node-agent nodeagent1 出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトしています アプリケーション出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトします コマンド start-node-agent は正常に実行されました。 |
nodeagent2 の作成と起動
| nodeagent2 > asadmin create-node-agent nodeagent2 コマンド create-node-agent は正常に実行されました。 nodeagent2 > asadmin start-node-agent nodeagent2 出力を /export/home/appserv/nodeagents/nodeagent2/agent/logs/server.log にリダイレクトしています アプリケーション出力を /export/home/appserv/nodeagents/nodeagent2/agent/logs/server.log にリダイレクトします コマンド start-node-agent は正常に実行されました。 |
クラスタとインスタンスの作成
ドメイン管理サーバでクラスタを1つ作成してください。
クラスタ作成後、各ノードエージェント上にそれぞれ1つずつ
クラスタに所属するインスタンスを作成してください。
| dashost > asadmin create-cluster cluster1 コマンド create-cluster は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent1 –cluster cluster1 instance1 コマンド create-instance は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent2 –cluster cluster1 instance2 コマンド create-instance は正常に実行されました |
クラスタの起動
作成したクラスタを起動してみましょう。
| dashost > asadmin start-cluster cluster1 クラスタ化されたインスタンス instance1 の起動に成功しました。 クラスタ化されたインスタンス instance2 の起動に成功しました。 コマンド start-cluster は正常に実行されました。 |
サンプルアプリケーションのデプロイ
次に、作成したクラスタに対してサンプルのアプリケーションをデプロイします。
| dashost > asadmin deploy –target cluster1 –availabilityenabled=true /sun/glassfish-v2.1.1/samples/quickstart/clusterjsp/clusterjsp.ear コマンド deploy は正常に実行されました。 |
ロードバランサプラグインの設定と設定ファイルのエクスポート
続いて、ロードバランサの設定を作成しデプロイしたアプリケーションに対して
負荷分散を行う設定をします。
| dashost > asadmin create-http-lb-config –target cluster1 lb-config コマンド create-http-lb-config は正常に実行されました。 dashost > asadmin enable-http-lb-server cluster1 コマンド enable-http-lb-server は正常に実行されました。 dashost > asadmin enable-http-lb-application –name clusterjsp cluster1 コマンド enable-http-lb-application は正常に実行されました。 dashost > asadmin create-http-health-checker –interval 10 –config lb-config cluster1 コマンド create-http-health-checker は正常に実行されました。 dashost > asadmin export-http-lb-config –config lb-config /tmp/loadbalancer.xml 生成されたファイルの場所: /tmp/loadbalancer.xml コマンド export-http-lb-config は正常に実行されました。 |
ここで,出力されたloadbalancer.xmlファイルを Apache 上にコピーする事で
負荷分散機能を利用することができるようになります。
しかし、手動でファイルをコピーする方法は古い方法ですので、
手動でファイルをコピーするのではなく、下記の方法を利用してください。
| apache > cp /tmp/loadbalancer.xml /usr/local/apache2.2.14/conf/loadbalancer.xml |
autoapplyenabled機能の有効化
下記コマンドを実行すると Web Server にログインして loadbalancer.xml を
直接編集したり、手動でコピーしなくても、asadmin コマンドから直接
設定変更内容を更新する事ができるようになります.
| dashost > asadmin create-http-lb –target cluster1 –autoapplyenabled=true –devicehost apache.japan.sun.com –deviceport 443 lb-config コマンド create-http-lb は正常に実行されました。 dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 dashost > |
apply-http-lb-changes を実行すると、直ちに loadbalancer.xml が
更新されるようになります。
Apache 上で更新された loadbalancer.xml は下記の通りです。
| apache > cat /usr/local/apache2.2.14/conf/loadbalancer.xml <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE loadbalancer PUBLIC “-//Sun Microsystems Inc.//DTD Sun Java System Application Server 9.1//EN” “sun-loadbalancer_1_2.dtd”> <loadbalancer> <cluster name=”cluster1″ policy=”round-robin”> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38080 https://nodeagent1.japan.sun.com:38181″ name=”instance1″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> <web-module context-root=”/clusterjsp” disable-timeout-in-minutes=”30″ enabled=”true”/> <health-checker interval-in-seconds=”30″ timeout-in-seconds=”10″ url=”/”/> </cluster> <property name=”response-timeout-in-seconds” value=”60″/> <property name=”reload-poll-interval-in-seconds” value=”60″/> <property name=”https-routing” value=”false”/> <property name=”require-monitor-data” value=”false”/> <property name=”active-healthcheck-enabled” value=”false”/> <property name=”number-healthcheck-retries” value=”3″/> <property name=”rewrite-location” value=”true”/> <property name=”rewrite-cookies” value=”false”/> </loadbalancer> <!– This file was generated on: [Fri Dec 25 18:00:39 JST 2009]. Debugging Tips: By default, instances and web-modules are not enabled. Please enable them manually if you have not done that using asadmin. –> apache > |
動作確認1: 高可用性のテスト
ブラウザから Apache の稼働するマシンへアクセスしてください。
| ブラウザで Apache が稼働するマシンへ接続
http://apache.japan.sun.com/clusterjsp/ Served From Server instance: instance1 |
表示された画面から”Served From Server instance“のエントリを
確認してください。この例ではinstance1でアプリケーションが
稼働していることが分かります。
続いて、
Enter session attribute data:
にセッション情報を追加してください。
セッション情報を追加した後、稼働中のサーバインスタンス(instance1)
を停止します。
| dashost > asadmin stop-instance instance1 コマンド stop-instance は正常に実行されました. |
ブラウザをリロードするか,[Reload Page]ボタンを押してください。
“Served From Server instance:”のエントリが instance1からinstance2に
変更されているかと思います。また同時にセッション情報も引き継がれていること
が確認できるかと思います。
ここまでくれば、高可用性テストは完了です。
動作確認2:ドメイン管理サーバから Apache の負荷分散設定を変更するテスト
ここでは、asadmin コマンドだけを使って Apache が稼働するシステムに
ログインすることなく、負荷分散設定を変更するテストを行います。
まず、ドメイン管理サーバから instance2 に対するリクエストを送信しないように
設定します。
| dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=false” cluster1.server-ref.instance2.lb-enabled = false dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
コマンドを実行すると、loadbalancer.xml の instance2 に該当する
設定箇所が変更されます。 (enabled が false)
| apache > cat loadbalancer.xml|grep nodeagent2 <instance disable-timeout-in-minutes=”30″ enabled=”false” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> |
instance2 に対する負荷分散を再会させたい場合,下記を実行してください。
| dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=true” cluster1.server-ref.instance2.lb-enabled = true dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
再度、Apache の loadbalancer.xml を確認してみます。
instance2 に該当する設定箇所の enabled が true に変更されている事を確認できます。
| apache > cat loadbalancer.xml | grep nodeagent2 <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> |
動作確認3:新規インスタンス追加時の負荷分散振り先の追加テスト
最後に、インスタンスを追加してクラスタ構成を変更し負荷分散の対象を増やすテストを行います。
まず、クラスタに対して新規インスタンスを追加して起動してください。
起動したのち、apply-http-lb.-changes を実行してください。
コマンドを実行すると、負荷分散の振り先が追加されます。
| dashost > asadmin create-instance –nodeagent nodeagent1 –cluster cluster1 instance3 HTTP_LISTENER_PORT の代わりに 38,081 を使用します。 HTTP_SSL_LISTENER_PORT の代わりに 38,182 を使用します。 IIOP_SSL_LISTENER_PORT の代わりに 33,821 を使用します。 JMS_PROVIDER_PORT の代わりに 37,677 を使用します。 IIOP_LISTENER_PORT の代わりに 33,701 を使用します。 JMX_SYSTEM_CONNECTOR_PORT の代わりに 38,687 を使用します。 IIOP_SSL_MUTUALAUTH_PORT の代わりに 33,921 を使用します。 コマンド create-instance は正常に実行されました。 dashost > asadmin create-instance –nodeagent nodeagent2 –cluster cluster1 instance4 HTTP_LISTENER_PORT の代わりに 38,081 を使用します。 HTTP_SSL_LISTENER_PORT の代わりに 38,182 を使用します。 IIOP_SSL_LISTENER_PORT の代わりに 33,821 を使用します。 JMS_PROVIDER_PORT の代わりに 37,677 を使用します。 IIOP_LISTENER_PORT の代わりに 33,701 を使用します。 JMX_SYSTEM_CONNECTOR_PORT の代わりに 38,687 を使用します。 IIOP_SSL_MUTUALAUTH_PORT の代わりに 33,921 を使用します。 コマンド create-instance は正常に実行されました。 dashost > asadmin start-instance instance3 コマンド start-instance は正常に実行されました。 dashost > asadmin start-instance instance4 コマンド start-instance は正常に実行されました。 dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
コマンドを実行後、loadbalancer.xml を確認してみましょう。
追加したインスタンスに対する振り先設定が追加されています。
| apache > cat loadbalancer.xml <?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE loadbalancer PUBLIC “-//Sun Microsystems Inc.//DTD Sun Java System Application Server 9.1//EN” “sun-loadbalancer_1_2.dtd”> <loadbalancer> <cluster name=”cluster1″ policy=”round-robin”> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38080 https://nodeagent1.japan.sun.com:38181″ name=”instance1″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38080 https://nodeagent2.japan.sun.com:38181″ name=”instance2″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent1.japan.sun.com:38081 https://nodeagent1.japan.sun.com:38182″ name=”instance3″ weight=”100″/> <instance disable-timeout-in-minutes=”30″ enabled=”true” listeners=”http://nodeagent2.japan.sun.com:38081 https://nodeagent2.japan.sun.com:38182″ name=”instance4″ weight=”100″/> <web-module context-root=”/clusterjsp” disable-timeout-in-minutes=”30″ enabled=”true”/> <health-checker interval-in-seconds=”30″ timeout-in-seconds=”10″ url=”/”/> </cluster> <property name=”response-timeout-in-seconds” value=”60″/> <property name=”reload-poll-interval-in-seconds” value=”60″/> <property name=”https-routing” value=”false”/> <property name=”require-monitor-data” value=”false”/> <property name=”active-healthcheck-enabled” value=”false”/> <property name=”number-healthcheck-retries” value=”3″/> <property name=”rewrite-location” value=”true”/> <property name=”rewrite-cookies” value=”false”/> </loadbalancer> <!– This file was generated on: [Fri Dec 25 18:22:35 JST 2009]. Debugging Tips: By default, instances and web-modules are not enabled. Please enable them manually if you have not done that using asadmin. –> apache > ※ 新しく追加したインスタンスの設定が enabled=”false”になっている場合、 dashost > asadmin set “cluster1.server-ref.instance3.lb-enabled=true” |
このように、ロードバランサプラグインを利用し、自動適用の設定を行うと、
アプリケーションサーバ側のクラスタ内の変更に対して、前段の Web サーバ側に
一切ログインせずに、振り先を自由に変更できるため、導入時には若干面倒ですが、運用時はとても楽になります。
また、お気づきの事と思いますが1度設定を行うと、Apache のサーバにログインする必要がないばかりか、負荷分散設定を変更した際に、Apache の再起動なども必要としていないことがわかるかと思います。
これは、loadbalancer.xml の更新をチェックする内部プログラムが別途稼働しており、更新があった場合に、動的に設定を有効にする仕組みが導入されているためです。これで、Web サーバ側の管理が随分楽になるのではないかと思います。
ぜひ、上記を参考にお試しください。
最後に、今回は GlassFish のロードバランサプラグインを Apache にインストールしていますが、Sun Java System Web Server でも autoapply の機能は使うことができますのでご安心ください。
追記:
正直、ちょっと面倒という方は、Sun GlassFish Enterprise Server with HADB を使ってみるのもいいかもしれません、with HADB 版ではインストーラからロードバランサプラグインのインストールもかんたんにできるようになっていますので、試す価値はあるかもしれません。
with HADB 版を利用しない場合は、上記の方法をご利用ください。
GlassFishのロードバランサプラグインで Apache と連携 Part1(Apache 設定編)
今日は Apache と GlassFish の連携を行いたい方にGlassFish のロードバランサプラグインを使った連携方法について紹介します。GlassFish のロードバランサプラグインを使うと、運用がとても楽になります。
例えば、GlassFish 側で提供しているサービスを停止したい場合、
GlassFish 側で設定を無効にした後、Apache にログインして設定を
しなおさなくても、設定変更を Apache 側に送信することができるように
なります。例えば、インスタンスを4つもつクラスタで、一つずつ
インスタンスを再起動して、ローリングアップグレードを行う場合を
考えてみましょう。負荷分散設定を無効にして、Web サーバ側の
設定変更を下記のたった2つのコマンドを実行するだけでよくなります。
GlassFish のロードバランサプラグインを使わない場合は、Apache が
稼働するマシンにログインして mod_proxy 等の設定を手動で変更して
などの作業を行っていたかと思いますが、ロードバランサプラグインを
使用するともうそのような面倒なことはしなくてよくなります。
| dashost > asadmin set “cluster1.server-ref.instance2.lb-enabled=false” cluster1.server-ref.instance2.lb-enabled = false dashost > asadmin apply-http-lb-changes lb-config コマンド apply-http-lb-changes は正常に実行されました。 |
この環境を作る手間は大変ですが、運用がかなり楽になりますので、
ぜひ、お試しください。また、下記の手順は全て asadmin のコマンドを
使用して設定していますので、設定が複雑と思われるかもしれませんが、
基本的には、下記の手順に従い設定すれば環境が構築できるかと思いますので、
ぜひチャレンジしてみてください。また慣れれば大きなパワーを発揮する
asadmin もぜひこの機会にお試しください。
必要なソフトウェア:
● apache2.2.14
● OpenSSL/0.9.8k Install:
インストール場所:/usr/local/ssl
● GlassFish:
インストール場所:/sun/glassfish-v2.1.1
http://www.sun.com/appserver より入手
● GlassFish LB Plugin (aslb-9.1.1-b**.jar)の入手先
http://download.java.net/javaee5/external/SunOS/aslb/jars/ (Solaris SPARC用)
http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/(Solarix x86用)
http://download.java.net/javaee5/external/Linux/aslb/jars/ (Linux 用)
http://download.java.net/javaee5/external/WINNT/aslb/jars/ (Windows 用)
必要なシステム:
今回の説明で登場するマシンの役割とホスト名、また各ホストで実行する際の
コマンドプロンプトを紹介します。複数のマシンがでてきますので、実行時
わかりやすくするため、プロンプトを変えて表示していますので、プロンプトを
確認し、どこで実行されているかを確認してください。
| 役割 | ホスト名 | 実行プロンプト |
| ドメイン管理サーバ: | dashost.japan.sun.com | dashost > |
| 認証局(CA) : | ca-admin.japan.sun.com | ca-admin > |
| Apache Web サーバ: | apache.japan.sun.com | apache > |
| ノードエージェント1: | nodeagent1.japan.sun.com | nodeagent1 > |
| ノードエージェント2: | nodeagent2.japan.sun.com | nodeagent2 > |
環境変数 (das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
下記の環境変数はドメイン管理サーバ、各ノードエージェントで全て同じ設定を
してください。
|
dashost > vi .tcshrc set path=(/usr/sfw/bin /sun/glassfish-v2.1.1/bin /usr/jdk/jdk1.6.0_17/bin $path) setenv LD_LIBRARY_PATH “/sun/glassfish-v2.1.1/lib:/sun/glassfish-v2.1.1/lib/plug in/lib:/usr/sfw/lib:/lib:/usr/lib” setenv JAVA_HOME /usr/jdk/jdk1.6.0_17 setenv AS_ADMIN_USER clusterAdmin setenv AS_ADMIN_PASSWORDFILE /export/home/appserv/.passwordfile setenv AS_ADMIN_HOST dashost.japan.sun.com setenv AS_ADMIN_PORT 5048 |
パスワードファイル(das/nodeagent1/nodeagent2 全てのマシンで下記を設定):
また、管理者のパスワードの毎回の入力を省略するため、あらかじめパスワードを
設定しておきます。AS_ADMIN_PASSWORD は GUI のログイン画面等で入力する
パスワードで AS_ADMIN_MASTERPASSWORDは SSL の証明書データベースを
操作する際に使用するパスワードです。
| dashost > vi .passwordfile AS_ADMIN_PASSWORD=adminadmin AS_ADMIN_MASTERPASSWORD=changeit |
Apache 2.2.14 のコンパイル
SSL と マルチコア対応のオプションを有効にして make します。
| apache > ./configure –with-ssl=/usr/local/ssl –prefix=/usr/local/apache2.2.14 –enable-ssl –enable-so –with-included-apr
apache > make |
Apache のサーバ名を編集
|
apache >vi /usr/local/apache2.2.14/conf/httpd.conf ServerName apache.japan.sun.com |
Apache の動作確認
Apache を起動し、ヘッダの内容を確認してみましょう。
| apache > /usr/local/apache2.2.14/bin/apachectl start |
TELNET による接続確認と Server ヘッダの内容確認
| apache > telnet localhost 80 Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. GET / HTTP/1.1 Host: apache.japan.sun.com HTTP/1.1 200 OK <html><body><h1>It works!</h1></body></html> |
他の設定を行うため、一時的に Apache を停止しておきます。
| apache > /usr/local/apache2.2.14/bin/apachectl stop |
クラスタ対応の GlassFish 新規ドメインの作成とサーバ証明書の抽出
次に、クラスタに対応した新規ドメインを作成します。
| dashost > asadmin create-domain –portbase=5000 –profile=cluster clusterDomain Admin のポート 5048 を使用しています。 HTTP Instance のポート 5080 を使用しています。 JMS のポート 5076 を使用しています。 IIOP のポート 5037 を使用しています。 HTTP_SSL のポート 5081 を使用しています。 IIOP_SSL のポート 5038 を使用しています。 IIOP_MUTUALAUTH のポート 5039 を使用しています。 JMX_ADMIN のポート 5086 を使用しています。 コマンド行または環境で の指定どおりにプロファイル cluster を使用してドメインを作成しています。 指定されたロケール [ja_JP] のファイルが [/sun/glassfish-v2.1.1/lib/install/templates/locales/ja_JP/index.html] に見つかりませんでした。デフォルト (en_US) の index.html を使用します。 使用するセキュリティーストア: JKS ドメイン clusterDomain が作成されました。 dashost > |
次に GlassFish ドメイン管理サーバのサーバ証明書を抽出します.
この際,管理ガイドには certutil コマンドを使用した例が
記載されておりますが,certutil コマンドは GlassFish
with HADB のインストーラを使用してインストールした場合のみ
利用可能です.そこで HADB を使用しないインストーラを
使用する場合は,JavaSE 付属の keytool を使用して証明書をエクスポートします.
| dashost > cd domains/clusterDomain/config/ dashost > keytool -export -rfc -alias s1as -keystore keystore.jks -file sjas.crt キーストアのパスワードを入力してください: [changeit] 証明書がファイル <sjas.crt> に保存されました。 dashost > |
Apache の SSL 設定とLB プラグインの設定
ロードバランサモジュールの設定
Apache の httpd.conf に対してロードバランサプラグインが使用する
モジュールを読み込ませる設定を行います。
| apache > vi /usr/local/apache2.2.14/conf/httpd.conf
…… |
GlassFish のサーバ証明書のコピーとシリアル番号の確認
GlassFish でエクスポートしたサーバ証明書 (sjsas.crt) を Apache の
証明書管理ディレクトリにコピーします。
コピーした後、GlassFish のサーバ証明書の内容を確認してみましょう。
ここで,GlassFish のサーバ証明書からシリアル番号(下記では:4b345534)
を覚えておいてください。
| apache > mkdir /usr/local/apache2.2.14/conf/ssl.crt DAS で取得した自己署名サーバ証明書(sjsas.crt)を事前に FTP 等で Apache の稼働するサーバへ転送 apache > mv sjsas.crt /usr/local/apache2.2.14/conf/ssl.crt/ apache > cd /usr/local/apache2.2.14/conf/ssl.crt/ apache > keytool -printcert -file sjsas.crt 所有者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US 発行者: CN=dashost, OU=Sun GlassFish Enterprise Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US シリアル番号: 4b345534 有効期間の開始日: Fri Dec 25 15:01:24 JST 2009 終了日: Mon Dec 23 15:01:24 JST 2019 証明書のフィンガープリント: MD5: 84:FD:B4:E9:B7:EF:88:F2:04:B0:20:23:9D:D9:A5:9E SHA1: DC:48:8E:C4:A2:AB:C2:AF:FC:8B:C5:54:59:F5:39:14:0D:82:E3:BE 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: FA EA 09 87 42 BC D8 04 C3 88 B1 8E 93 2D 0A 3A ….B……..-.: 0010: 74 3B 19 07 t;.. ] ] apache > |
Apache SSL設定に対する LB プラグイン設定追加
下記に示す、<Location /lbconfigupdate>から始まる
数行をコピーし、それ以外の箇所を適切に編集してください。
ここで1点注意して頂きたいのはシリアル番号の入力箇所です。
上記で確認したシリアル番号は小文字で表示されていますが,
下記のApache の httpd-ssl.conf ファイル中には全て大文字に変換して
記載してください.
(例:4b345534 → 4B345534 に変更)
| apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
<VirtualHost apache.japan.sun.com:443> <—- 修正 下記の行をファイルの最後に追加 <Location /getmonitordata> |
※ 注意:ここでは GlassFish のインストール時に自動的に
作成されるデフォルトのサーバ証明書を使った時の例を記載
しています。仮に GlassFish のドメイン管理サーバのサーバ
証明書を入れ替えている場合は、必要におうじて、SSL_CLIENT_S_DN_O
、SSL_CLIENT_S_DN_OU等のエントリも修正してください。
次に httpd-ssl.conf を有効にします。
httpd.conf ファイルを修正してください。 (SSL の有効化)
| apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Secure (SSL/TLS) connections |
次に httpd-mpm.conf を有効にします。
httpd.conf ファイルを修正してください。(マルチプロセッサ対応)
| apache > vi /usr/local/apache2.2.14/conf/httpd.conf
# Server-pool management (MPM specific) |
次に Apache の起動時に読み込むライブラリパスを追加してください。
| apache > vi /usr/local/apache2.2.14/bin/envvars LD_LIBRARY_PATH=”/usr/local/apache2.2.14/lib: /usr/local/apache2.2.14/modules:/usr/lib/mps:$LD_LIBRARY_PATH” |
OpenSSL でプライベート認証局(CA)の構築
認証局(CA) の構築の準備 (openssl.cnfの編集)をします。
設定ファイル中から下記の行を編集してください。
| [ usr_cert ]
basicConstraints=CA:TRUE <—FALSEから変更 |
プライベートの認証局(CA) の構築
| ca-server > ./misc/CA.pl -newca CA certificate filename (or enter to create) Making CA certificate … You are about to be asked to enter information that will be incorporated Please enter the following ‘extra’ attributes Enter pass phrase for ./demoCA/private/cakey.pem:[password] X509v3 Basic Constraints: Write out database with 1 new entries |
Apache 用のサーバ証明書の作成(CSRの作成)
まず、Apache 上で秘密鍵を生成します。
| apache > mkdir /usr/local/apache2.2.14/conf/ssl.key apache > cd /usr/local/apache2.2.14/conf/ssl.key apache > openssl genrsa -des3 -out apache.japan.sun.com.key 2048 Generating RSA private key, 2048 bit long modulus ……………………+++ …….+++ e is 65537 (0x10001) Enter pass phrase for apache.japan.sun.com.key:[password] Verifying – Enter pass phrase for apache.japan.sun.com.key:[password] apache > ls apache.japan.sun.com.key |
Apache 上で認証局(CA)に提出する CSR の作成
認証局に提出する CSR を生成します。
| apache >openssl req -new -key apache.japan.sun.com.key -subj “/emailAddress=webmaster@japan.sun.com/CN=apache.japan.sun.com/OU=Software Practice/O=Sun Microsystems/L=Setagaya/ST=Tokyo/C=JP” -out apache.japan.sun.com.csr Enter pass phrase for apache.japan.sun.com.key:[password] apache > pwd |
認証局(CA) でサーバ証明書の署名の準備
認証局(CA) の設定を変更し、サーバ証明書を署名する準備をします。
| ca-admin > vi openssl.cnf
[ usr_cert ] |
認証局(CA) で Apache のサーバ証明書を署名
Apache 上で生成した CSR を認証局(CA)で署名を行います。
認証局(CA) が稼働するマシンまで Apache 上で生成した
CSR ファイルを FTP 等でコピーしてください。
| ca-server > openssl ca -config ./openssl.cnf -in
./apache.japan.sun.com.csr -keyfile ./demoCA/private/cakey.pem Using configuration from ./openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: cd:ea:db:f4:c8:e3:93:93 Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: countryName = JP stateOrProvinceName = Tokyo organizationName = Sun Microsystems organizationalUnitName = Software Practice commonName = apache.japan.sun.com emailAddress = webmaster@japan.sun.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A Certificate is to be certified until Dec 25 06:58:47 2010 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated ca-server > |
認証局(CA)から取得した、署名済みサーバ証明書を証明書ディレクトリへコピー
認証局で署名された署名済みのサーバ証明書を Apache まで FTP 等でコピーして
下さい。ファイルを転送後、Apache の証明書管理ディレクトリ(ssl.crt)へ
コピーします。
| apache > mv apache.japan.sun.com.signed-server-cert
/usr/local/apache2.2.14/conf/ssl.crt/ |
署名済みサーバ証明書の内容を確認
署名済みのサーバ証明書の内容を確認しておきます。
apache > cat apache.japan.sun.com.signed-server-cert
Certificate: Data: Version: 3 (0x2) Serial Number: cd:ea:db:f4:c8:e3:93:93 Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Validity Not Before: Dec 25 06:58:47 2009 GMT Not After : Dec 25 06:58:47 2010 GMT Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=apache.japan.sun.com/emailAddress=webmaster@japan.sun.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c9:a1:75:01:3b:44:d8:2e:bb:ff:97:fa:c0:09: 96:d0:ae:9f:92:3a:d8:f0:7c:77:bf:2b:8d:82:14: 3e:14:ec:26:01:ab:68:ca:6a:ab:1a:e6:37:08:89: 2a:73:83:d6:61:7e:0c:37:4c:9c:35:38:e4:20:a8: 25:df:60:cd:7c:ea:17:7c:1d:5b:9f:0b:40:3a:d7: fc:2e:e4:af:66:62:c3:fd:46:a7:31:11:68:96:f4: cb:c3:7d:81:bd:37:b8:53:ef:cc:68:78:51:9d:a2: 48:f5:80:4e:d6:49:3b:8b:0d:db:81:8e:58:fd:2c: bf:47:90:87:6d:40:e6:dd:8c:63:c2:bd:62:d4:aa: 70:4a:b0:91:ec:61:d4:b5:18:ea:b6:2b:47:83:68: 72:f7:01:d6:ad:aa:44:85:34:8a:f6:9d:99:25:57: 02:32:02:02:8d:2c:98:bc:99:cb:ac:ce:a5:b3:27: 46:ca:4c:ee:af:41:14:8f:9c:62:fc:06:20:c3:88: 53:f1:b2:3a:6e:7c:75:4b:8f:da:83:8a:34:d4:29: 40:6d:ad:85:e5:c8:6e:f8:21:8c:7c:ec:3c:00:b6: 07:e1:97:78:48:04:82:80:19:28:28:12:04:9c:b1: f6:4f:38:44:74:41:98:ab:e6:5f:8d:c2:84:a6:a8: 4e:8d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Server Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 1E:1F:C2:95:F6:29:2C:53:54:27:32:66:FF:59:60:FA:E1:3B:C5:19 X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A Signature Algorithm: sha1WithRSAEncryption 2c:49:f2:d9:90:a8:1d:a5:0d:3b:14:1c:ef:1c:b2:5d:35:66: 2f:9f:ca:b1:56:9f:6d:5f:84:70:66:bf:44:da:6e:c4:c9:08: 81:d1:f7:6e:d0:6c:35:5d:45:5a:52:1c:6c:5f:d0:24:fa:15: c2:88:a9:64:b7:15:e5:ec:d3:a7:2e:53:90:c0:d1:16:fc:cc: 58:a1:65:08:c9:4c:34:38:e2:57:3f:b6:e8:db:f8:92:62:c2: fd:59:81:7d:d7:aa:1a:43:20:1b:b7:18:09:97:06:47:d9:3a: 09:14:bb:63:18:0f:15:81:a2:0d:89:cc:32:f9:57:88:78:6f: 72:d8 -----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
PEM 形式の署名済みサーバ証明書を作成
—–BEGIN CERTIFICATE—– から —–END CERTIFICATE—– までを
コピーし PEM 形式のファイルを作成してください。
apache > vi apache.japan.sun.com.signed-server-cert.pem
-----BEGIN CERTIFICATE----- MIIDvzCCAyigAwIBAgIJAM3q2/TI45OTMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTIyNTA2NTg0N1oXDTEwMTIyNTA2NTg0N1owgZsxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxHTAbBgNVBAMTFGFwYWNoZS5qYXBhbi5zdW4uY29t MSYwJAYJKoZIhvcNAQkBFhd3ZWJtYXN0ZXJAamFwYW4uc3VuLmNvbTCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmhdQE7RNguu/+X+sAJltCun5I62PB8 d78rjYIUPhTsJgGraMpqqxrmNwiJKnOD1mF+DDdMnDU45CCoJd9gzXzqF3wdW58L QDrX/C7kr2Ziw/1GpzERaJb0y8N9gb03uFPvzGh4UZ2iSPWATtZJO4sN24GOWP0s v0eQh21A5t2MY8K9YtSqcEqwkexh1LUY6rYrR4NocvcB1q2qRIU0ivadmSVXAjIC Ao0smLyZy6zOpbMnRspM7q9BFI+cYvwGIMOIU/GyOm58dUuP2oOKNNQpQG2theXI bvghjHzsPAC2B+GXeEgEgoAZKCgSBJyx9k84RHRBmKvmX43ChKaoTo0CAwEAAaOB jzCBjDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFB4fwpX2 KSxTVCcyZv9ZYPrhO8UZMB8GA1UdIwQYMBaAFB24TDDMoTWycjWgisz6+RecxNJK MA0GCSqGSIb3DQEBBQUAA4GBACxJ8tmQqB2lDTsUHO8csl01Zi+fyrFWn21fhHBm v0TabsTJCIHR927QbDVdRVpSHGxf0CT6FcKIqWS3FeXs06cuU5DA0Rb8zFihZQjJ TDQ44lc/tujb+JJiwv1ZgX3XqhpDIBu3GAmXBkfZOgkUu2MYDxWBog2JzDL5V4h4 b3LY -----END CERTIFICATE----- |
Apache の SSL の設定
Apache の SSL 設定ファイル(httpd-ssl.conf)を編集し
署名済みサーバ証明書(PEM形式)と秘密鍵ファイルを指定してください。
| apache > vi /usr/local/apache2.2.14/conf/extra/httpd-ssl.conf
下記の行をそれぞれ編集 SSLCertificateKeyFile “/usr/local/apache2.2.14/conf/ssl.key/apache.japan.sun.com.key” |
GlassFish ロードバランサプラグインの設定
必要なソフトウェアに記載した URL から入手したロードバランサ
プラグインを GlassFish のドメイン管理サーバとApache にそれぞれ
コピーしてください。
ファイルをコピー後、それぞれアーカイブを展開してください。
| dashost > mkdir /tmp/AS_LB dashost > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ dashost > cd /tmp/AS_LB/ dashost > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. SUNWaspx.zip が抽出されました. BinariesLicense が展開されました. dashost > ls dashost > mkdir /sun/glassfish-v2.1.1/lib/plugin ロードバランサの設定ファイルをテンプレートディレクトリにコピー dashost > mv /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/loadbalancer.xml.example /sun/glassfish-v2.1.1/lib/plugin/lib/install/templates/loadbalancer.xml |
Apache 上で LB プラグインを展開し,設定ファイルやモジュールを
Apache の関連ディレクトリにコピーしてください。
| apache > mkdir /tmp/AS_LB apache > cp /aslb-9.1.1-b13.jar /tmp/AS_LB/ apache > cd /tmp/AS_LB/ apache > jar xvf aslb-9.1.1-b13.jar SUNWaslb.zip が抽出されました. apache > ls apache > unzip SUNWaslb.zip
apache > cp /tmp/AS_LB/lib/plugin/lib/install/templates/loadbalancer.xml.example |
Apache 設定ディレクトリのオーナ変更
Apache の設定ディレクトリ (conf) に起動ユーザ(daemon)がアクセス
できるようにオーナを変更してください。
| apache > chown -R daemon /usr/local/apache2.2.14/conf/ |
Apache の再起動
上記で Aapche 側の設定は完了です。Apache を起動してみましょう。
| apache > /usr/local/apache2.2.14/bin/apachectl start Apache/2.2.14 mod_ssl/2.2.14 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases. Server apache.japan.sun.com:443 (RSA) OK: Pass Phrase Dialog successful. |
※ 起動時パスワード入力を求めない方法もありますが、その設定方法は
別途 openssl コマンドを調べて設定してください。)
認証局(CA) 証明書を GlassFish へインポート
Apache 側ではプライベートの認証局(CA)によって署名された
サーバ証明書を正しく設定しましたが、
Apache 側で設定したサーバ証明書が信頼できる証明書か
GlassFish 側ではわからないため、信頼できる証明書であることを
証明する認証局(CA)の証明書をGlassFish 側にインポートする必要が
あります。
# cat /usr/local/ssl/demoCA/cacert.pem
Certificate: Data: Version: 3 (0x2) Serial Number: cd:ea:db:f4:c8:e3:93:84 Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Validity Not Before: Nov 9 04:40:09 2009 GMT Not After : Nov 8 04:40:09 2012 GMT Subject: C=JP, ST=Tokyo, O=Sun Microsystems, OU=Software Practice, CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:b6:ee:98:16:65:fb:da:94:48:67:71:00:3b:66: 81:6f:09:46:5a:e2:46:6c:0e:80:ea:18:ca:b8:9f: 6b:26:73:ee:da:36:48:1d:3d:fa:09:3b:6a:5a:b3: 10:5c:f5:bc:50:36:8d:46:6e:e1:7f:2f:79:63:0f: fc:f2:c5:be:68:f0:3d:55:ed:49:b9:37:1d:e4:56: a2:c8:a7:6f:48:1e:e3:db:17:d7:f3:65:18:e7:bd: d3:01:90:cf:17:22:df:43:ba:57:c1:65:1e:8d:5b: 5a:df:69:fd:24:97:67:32:c0:b5:29:fd:63:90:2e: d4:69:69:18:73:b8:80:be:21 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A X509v3 Authority Key Identifier: keyid:1D:B8:4C:30:CC:A1:35:B2:72:35:A0:8A:CC:FA:F9:17:9C:C4:D2:4A DirName:/C=JP/ST=Tokyo/O=Sun Microsystems/OU=Software Practice/CN=ca-server.sun.com/emailAddress=caadmin@Sun.COM serial:CD:EA:DB:F4:C8:E3:93:84 X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha1WithRSAEncryption 32:8b:2a:63:52:72:41:30:cc:b2:eb:5e:59:60:cd:e8:39:46: 19:dd:48:30:2c:e9:e8:b3:fa:c6:18:2a:2f:f4:22:1c:c6:22: c7:f0:f7:17:73:72:17:45:88:11:14:3a:88:35:18:52:a9:f0: eb:8e:de:18:3f:d7:33:e1:09:84:6c:da:b2:f7:03:f1:ae:37: b8:1c:f6:19:53:e0:0a:12:b3:7b:5a:dd:39:f1:d2:85:49:e0: 3e:5a:9d:89:b0:38:b0:76:80:11:cb:83:b0:fe:3f:ed:92:15: 68:3a:6d:3b:13:77:cc:4d:b1:1d:4b:8d:9d:b6:41:e5:06:07: 52:af -----BEGIN CERTIFICATE----- MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09 +gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ 3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy 9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM TbEdS42dtkHlBgdSrw== -----END CERTIFICATE----- |
上記のファイルの—–BEGIN CERTIFICATE—–から
—–END CERTIFICATE—– までをコピーして保存してください。
コピーをドメイン管理サーバ(DAS)へ転送してください。
dashost > vi /tmp/cacert.pem
-----BEGIN CERTIFICATE----- MIIDmTCCAwKgAwIBAgIJAM3q2/TI45OEMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD VQQGEwJKUDEOMAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3Rl bXMxGjAYBgNVBAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2 ZXIuc3VuLmNvbTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NMB4XDTA5 MTEwOTA0NDAwOVoXDTEyMTEwODA0NDAwOVowgZAxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVUb2t5bzEZMBcGA1UEChMQU3VuIE1pY3Jvc3lzdGVtczEaMBgGA1UECxMR U29mdHdhcmUgUHJhY3RpY2UxGjAYBgNVBAMTEWNhLXNlcnZlci5zdW4uY29tMR4w HAYJKoZIhvcNAQkBFg9jYWFkbWluQFN1bi5DT00wgZ8wDQYJKoZIhvcNAQEBBQAD gY0AMIGJAoGBALbumBZl+9qUSGdxADtmgW8JRlriRmwOgOoYyrifayZz7to2SB09 +gk7alqzEFz1vFA2jUZu4X8veWMP/PLFvmjwPVXtSbk3HeRWosinb0ge49sX1/Nl GOe90wGQzxci30O6V8FlHo1bWt9p/SSXZzLAtSn9Y5Au1GlpGHO4gL4hAgMBAAGj gfgwgfUwHQYDVR0OBBYEFB24TDDMoTWycjWgisz6+RecxNJKMIHFBgNVHSMEgb0w gbqAFB24TDDMoTWycjWgisz6+RecxNJKoYGWpIGTMIGQMQswCQYDVQQGEwJKUDEO MAwGA1UECBMFVG9reW8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbXMxGjAYBgNV BAsTEVNvZnR3YXJlIFByYWN0aWNlMRowGAYDVQQDExFjYS1zZXJ2ZXIuc3VuLmNv bTEeMBwGCSqGSIb3DQEJARYPY2FhZG1pbkBTdW4uQ09NggkAzerb9Mjjk4QwDAYD VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAyiypjUnJBMMyy615ZYM3oOUYZ 3UgwLOnos/rGGCov9CIcxiLH8PcXc3IXRYgRFDqINRhSqfDrjt4YP9cz4QmEbNqy 9wPxrje4HPYZU+AKErN7Wt058dKFSeA+Wp2JsDiwdoARy4Ow/j/tkhVoOm07E3fM TbEdS42dtkHlBgdSrw== -----END CERTIFICATE----- |
認証局(CA) の証明書を cacerts.jks と keystore.jks へインポート
PEM 形式の認証局の署名書を GlassFish のサーバ証明書データベース(cacerts.jks)と
鍵データベース(keystore.jks)へインポートしてください。
| dashost > cd domains/clusterDomain/config/ dashost > keytool -import -trustcacerts -v -keystore cacerts.jks -alias PrivateCACert -file /tmp/cacert.pem キーストアのパスワードを入力してください: [changeit] 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [cacerts.jks を格納中] dashost > keytool -import -trustcacerts -v -keystore keystore.jks 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日:: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] この証明書を信頼しますか? [no]: yes 証明書がキーストアに追加されました。 [keystore.jks を格納中] dashost > |
認証局(CA) 証明書のインポート後の確認
正しく認証局(CA)の証明書がインポートできているかを確認するため、
keytool を使って確認してください。
| dashost > keytool -list -v -alias PrivateCACert -keystore cacerts.jks キーストアのパスワードを入力してください: 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] dashost > keytool -list -v -alias PrivateCACert 別名: PrivateCACert 作成日: 2009/12/25 エントリのタイプ: trustedCertEntry 所有者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP 発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP シリアル番号: cdeadbf4c8e39384 有効期間の開始日: Mon Nov 09 13:40:09 JST 2009 終了日: Thu Nov 08 13:40:09 JST 2012 証明書のフィンガープリント: MD5: 7C:21:2B:4A:DF:A4:5D:BF:78:1D:56:22:54:3F:4E:48 SHA1: 00:3C:55:1E:34:60:FC:77:24:38:7E:64:39:C4:38:48:79:92:2F:31 署名アルゴリズム名: SHA1withRSA バージョン: 3 拡張: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 1D B8 4C 30 CC A1 35 B2 72 35 A0 8A CC FA F9 17 ..L0..5.r5...... 0010: 9C C4 D2 4A ...J ] [EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP] SerialNumber: [ cdeadbf4 c8e39384] ] |
上記で Apache 上でのロードバランサ設定は完了です。
次に GlassFish 上で Apache との連携用の設定を行います。
GlassFish v3 の OSGi 対応について
今日は、GlassFish v3 の OSGi 対応について説明します。
セミナー等で登壇する際、GlassFish v2.x と GlassFish v3 は GUI の
管理コンソールや CLI の管理ツールの使用方法はよくにていますが、
内部実装はまったく別物ですと説明しています。
今回、GlassFish v3 で内部実装がどのように変わったかについて説明します。
GlassFish v3 はシステムの柔軟性を高めるためまた実行時のパフォーマンスを
向上させるためにモジュールシステムを採用しました。
GlassFish v2 までは各機能を全て一つにまとめて提供していたため、
EJB が必要のないユーザも、EJB コンテナを含んだ形でインストール/起動を
しなければなりませんでした。また、ユーザが独自に管理ツールを拡張したり
アプリケーションサーバを拡張したりすることは困難でした。
しかし、GlassFish v3 からはモジュールシステムを導入したため、EJB が
必要のないユーザは EJB を起動しないだけでなく、インストールをしないといった
選択肢も選べるようになりました。また必要に応じて独自の管理機能を
実装できるようになったため、アプリケーションサーバの運用がより柔軟に
行えるようになります。
これにより、本番環境でアプリケーションサーバを運用する際、各システムで
必要な機能だけを利用可能にし、メモリ等のリソースの消費量を減らすことができ、
結果としてパフォーマンスを向上させることができるようになります。
モジュールシステムの導入にあたって、GlassFish v3 は OSGi アライアンスの
標準準拠した Apache Felix を利用しています。全ての GlassFish v3 の機能は
Apache Felix のサービスバンドルとして実装されていますので、GlassFish v3
の管理ツールが提供している管理機能以外に、Apache Felix のインタフェースを
通じて、サービスの停止、起動などもできます。
(デフォルトの OSGi ランタイムとして Apache Felix を使用していますが、
他の OSGi ランタイム上で GlassFish を動作させることもできます。
(例:KnopflerFish など)
ここでは、かんたんに OSGi バンドルを生成する方法と
GlassFish v3 への追加方法について示します。
1. OSGi バンドルを作成します。
| % vi MyBundle.java
import org.osgi.framework.*; public class MyBundle implements BundleActivator { // Start the bundle public void start(BundleContext context) { System.out.println(“Started the OSGi Bundle”); } // Stop the bundle public void stop(BundleContext context) { System.out.println(“Stopped the OSGi Bundle”); } } |
2. マニフェストファイルの作成
| % vi MyBundle.mf
Manifest-Version: 1.0 Bundle-Name: MyBundle Bundle-Activator: MyBundle Bundle-SymbolicName: MyBundle Bundle-Version: 1.0.0 Import-Package: org.osgi.framework |
3. GlassFish v3 のインストールディレクトリより felix.jar が存在することを確認してください。
(コンパイル時にクラスパスを設定します)
| % ls /Applications/GlassFish/glassfishv3-webprofile/glassfish/osgi/felix/bin/ felix.jar |
4. ソースコードのコンパイル
上記の felix.jar をクラスパスに追加してコンパイルしてください。
| % javac -classpath /Applications/GlassFish/glassfishv3-webprofile/glassfish/osgi/felix/bin/felix.jar MyBundle.java |
5. jar アーカイブの生成
| % jar cfm MyBundle.jar ./MyBundle.mf ./MyBundle.class |
6. OSGi バンドルのインストール
OSGi バンドルは glassfish/modules ディレクトリにコピーします。
| % cp MyBundle.jar /Applications/GlassFish/glassfishv3-webprofile/glassfish/modules/ |
7. GlassFish v3 の起動
| % asadmin start-domain domain1
DAS の起動を待機しています ………………………………….. 起動したドメイン: domain1 ドメインの場所: /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1 ログファイル: /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1/logs/server.log ドメインの管理ポート: 4848 コマンド start-domain は正常に実行されました。 |
8. Apache Felix コンソールへアクセス
6666番ポートへアクセスするとデフォルトで Apache Felix の
コンソールが利用できるようになっています。
| % telnet localhost 6666 Trying ::1… Trying 127.0.0.1… Connected to localhost. Escape character is ‘^]’. Felix Remote Shell Console: |
9. GlassFish v3 のログの確認
独自に作成したバンドルが標準出力に吐き出すログの内容を確認してみましょう。
バンドルの起動、停止を行う度に独自に作成したバンドルからログが出力されている
ことを確認できます。
| $ tail -f /Applications/GlassFish/glassfishv3-webprofile/glassfish/domains/domain1/logs/server.log
[#|2009-12-22T14:50:34.366+0900|INFO|glassfishv3.0|javax.enterprise.system.std.com.sun. |
このように、OSGi のモジュールシステムを導入した GlassFish v3 は管理機能の拡張もできリソース管理も柔軟にできる新しいアーキテクチャになっています。GlassFish v2.x からアーキテクチャは大きく変わりますが、その利点は数多くあります。OSGi 対応した GlassFish v3 をぜひ試してみてください。
備考:
OSGi バンドルは asadmin コマンドで type=osgi を指定してデプロイすることもできます。
| % asadmin deploy –type osgi ./MyBundle.jar
Application deployed successfully with name MyBundle. Felix Remote Shell Console: |
SDC 連載記事のアーカイブ
以前、GlassFish に関する連載記事を弊社 SDC(sdc.sun.co.jp)のサイトで
行っていましたが、SDC のサイトが何らかの障害?閉鎖?で
アクセスできなくなっておりました。
以前、連載記事のバックアップをしていましたので、
こちらから連載記事をまとめてダウンロードできるようにいたしました。
(若干体裁はずれていますが、内容や画像はそのまま確認できるかと思います。)
jar 版と、tgz 版それぞれ用意いたしましたので、ご希望に応じて
入手してください。
jar アーカイブ版
tgz アーカイブ版
上記ファイルに含まれる連載のコンテンツは下記の通りです。
第1回:導入編
第2回:アプリケーションサーバの管理の基本
第2回:アプリケーションサーバの管理の基本 アップデート情報
第3回:クラスタと負荷分散 (1)
第4回:クラスタと負荷分散 (2)
第5回:インメモリリプリケーションによる高可用性の実現方法
訂正:確認した所すべてのコンテンツは下記に移されておりました。 移動先へのリンク |

(伊豆下田)

(箱根の夕暮れ)
Java EE 6 / GlassFish v3 の仮想カンファレンス開催

Java EE 6 / GlassFish v3 に関連した仮想カンファレンス開催が
2009年12月15日 (日本時間:12/16 夜中 AM1:00 から)されます。
各セッションは30分〜1時間で開催される予定です。
日本の方は、真夜中から明け方までになるのでその時間帯で、
見ることはできないと思うのですが、今海外のエンジニアに
録画して後から見れるようにして欲しいと要望をだしていますので、
もし、録画されたらそちらを見てみてください。
詳細はコチラ
● Java EE: The Foundation for Your Business (Keynote)
● Java EE 6: An Overview (Keynote)
● GlassFish v3 – Java EE 6 Reference Implementation & Beyond (Keynote)
● Enterprise Java Beans (EJB) 3.1 Features
● Jersey, JAX-RS and REST with GlassFish v3
● Servlet 3.0
● Java Persistence API (JPA) 2.0
● Java Server Faces (JSF) 2.0
● Web Services in GlassFish
● Context Dependency and Injection (JSR 299)
● OSGi in GlassFish v3
● Dynamic Languages with GlassFish v3
● Tools for GlassFish v3: NetBeans and Eclipse
● Grizzly: NIO & Web Framework. Comet using GlassFish
● Monitoring, Management in GlassFish v3
日本時間では明日には、GlassFish の FCS(First Customer Shipment) 版がいよいよリリースされます。
また、GA(General Availability) 版はクリスマス前にはリリースされるかと思います。
年末まで各種イベントが目白押しですが、Sun の GlassFish ブロガー達が数多くの情報を
発信します。
是非、下記のタグもご参照ください。
http://blogs.sun.com/main/tags/glassfish
GlassFish WebStack Enterprise ManagerとGlassFish WebSpace Server

今日のイベントで使用したプレゼン資料と、デモのビデオを
公開します。
プレゼン資料
今日は、本当に色々な事を説明させていただいたのですが、
デモでは GlassFish WebStack の Enterprise Manager と
GlassFish WebSpace Server(ポータルサーバ)のデモを
行いました。
ちなみにデモは MacBook に Virtual Box インストールして
その上で、Solaris x86 をインストールしてデモしています。
GlassFish WebStackのEnterprise Manager は
GlassFish Portfolio のライセンスを Sun から購入して
頂いたお客様だけが使用できるアドバンスドな、
管理 GUI ですが、この管理 GUI から Apache, Tomcat,
MySQL等の起動/停止ができる他、実行時の状況を
確認するための、グラフも表示してくれます。
表示したい項目はリストの中から選択ができますが、
非常に多くの項目を確認することができます。
こちらからも確認できます。
また、GlassFish WebSpace Server は Liferay 5.2 を
ベースにSunが拡張したポータルサーバで、ポータルサーバに
必要な機能はほぼ全てデフォルトでそろっています。
このポータルサーバは、OpenOffice 等のオフィス製品と
連携する事もでき、ポータルサーバ上に作成した、
ファイル共有エリアから、ファイルの取得や保存などの
処理も行えますので、グループでドキュメントの共有を
したい場合などにも便利です。
ポータルサーバにご興味のある方は是非デモをご覧下さい。
こちらからも
確認できます。
最後に、GlassFish v3 も FCS 版が 12/10(日本時間:12/11)でGA版が
クリスマス前にはリリースされる予定です。これに併せて、海外等では
GlassFish v3/Java EE 6 に関連したウェビナーが行われる予定です。
是非、楽しみにしてください。
GlassFish v2.1.1の追加機能のメモ
http://wiki.glassfish.java.net/Wiki.jsp?page=PlanForGlassFishV2.1.1
New load-balance option for stateless session beans
A new method for load-balancing stateless EJBs is introduced in GlassFish v2.1.1.
This provides for load-balancing with each request. Per-request load balancing
chooses the first node in the cluster to use on each request.
The old load balancing feature chooses the first node to use when the InitialContext is created;
thereafter each request uses the same node (unless a failure occurs).
Enabling this feature is done by setting a new property in the sun-ejb-jar.xml file:
per-request-load-balancing (boolean). If this property is not set,
the original Load Balance behavior is preserved.
For example:
<sun-ejb-jar>
<enterprise-beans>
<unique-id>1</unique-id>
<ejb>
<ejb-name>TheGreeter</ejb-name>
<jndi-name>greeter</jndi-name>
<per-request-load-balancing>true</per-request-load-balancing>
</ejb>
</enterprise-beans>
</sun-ejb-jar>
After this is set, you must redeploy the EJB(s).
As a verification check, you can verify that this is configured properly
by looking for the following (FINE, in the EJB logger) log message
when the EJB is loaded:
“Setting per-request-load-balancing policyfor EJB <EJBNAME>”
This is only supported for stateless session beans.
Use of per-request-load-balancing with any other bean types will
result in a deployment error.
GlassFish 懇親会の場所決定
GlassFish 忘年会(懇親会)の場所が決定しました。
当日の皆様とお会いできるのを楽しみにしています。
場所のチェック
