Archive for 12月, 2009

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&#8243; 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&#8243; 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&#8243; 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&#8243; 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&#8243; 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&#8243; 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&#8243; 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&#8243; 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”
dashost > asadmin set “cluster1.server-ref.instance4.lb-enabled=true”
dashost > asadmin apply-http-lb-changes lb-config
コマンド apply-http-lb-changes は正常に実行されました。


このように、ロードバランサプラグインを利用し、自動適用の設定を行うと、
アプリケーションサーバ側のクラスタ内の変更に対して、前段の 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 版を利用しない場合は、上記の方法をご利用ください。

2009年12月25日 at 5:52 午前 2件のコメント

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 > make install

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
Date: Fri, 25 Dec 2009 05:53:39 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8k
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: “f580c-2c-3e9564c23b600”
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

<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

……
##BEGIN EE LB Plugin Parameters
LoadFile /usr/lib/libCstd.so.1
LoadModule apachelbplugin_module  /usr/local/apache2.2.14/modules/mod_loadbalancer.so
#AddModule apachelbplugin_module
<IfModule apachelbplugin_module>
config-file  /usr/local/apache2.2.14/conf/loadbalancer.xml
locale en
</IfModule>
##END EE LB Plugin Parameters

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> <—- 修正
ServerName apache.japan.sun.com:443 <—- 修正
ServerAdmin admin-webserver@Sun.COM <—- 修正

下記の行をファイルの最後に追加
<Location /lbconfigupdate>
SSLVerifyClient require
SSLVerifyDepth 1
SSLRequireSSL
SSLCACertificateFile /usr/local/apache2.2.14/conf/ssl.crt/sjsas.crt
SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq “Sun Microsystems” \
and %{SSL_CLIENT_S_DN_OU} eq “Sun GlassFish Enterprise Server” \
and %{SSL_CLIENT_M_SERIAL} eq “4B345534” )
</Location>

<Location /getmonitordata>
SSLVerifyClient require
SSLVerifyDepth 1
SSLRequireSSL
SSLCACertificateFile /usr/local/apache2.2.14/conf/ssl.crt/sjsas.crt
SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq “Sun Microsystems” \
and %{SSL_CLIENT_S_DN_OU} eq “Sun GlassFish Enterprise Server” \
and %{SSL_CLIENT_M_SERIAL} eq “4B345534” )
</Location>

※ 注意:ここでは 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
Include conf/extra/httpd-ssl.conf   <——-コメントアウト

次に httpd-mpm.conf を有効にします。
httpd.conf ファイルを修正してください。(マルチプロセッサ対応)

apache > vi /usr/local/apache2.2.14/conf/httpd.conf

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf   <——-コメントアウト

次に 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 …
Generating a 1024 bit RSA private key
….++++++
…………………………………………………++++++
writing new private key to ‘./demoCA/private/cakey.pem’
Enter PEM pass phrase:[password]
Verifying – Enter PEM pass phrase:[password]
—–

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Setagaya Yoga
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sun Microsystems
Organizational Unit Name (eg, section) []:Software Practice
Common Name (eg, YOUR name) []:ca-server.sun.com
Email Address []:caadmin@Sun.COM

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /usr/local/ssl/openssl.cnf

Enter pass phrase for ./demoCA/private/cakey.pem:[password]
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number:
cd:ea:db:f4:c8:e3:93:84
Validity
Not Before: Nov  9 04:40:09 2009 GMT
Not After : Nov  8 04:40:09 2012 GMT
Subject:
countryName               = JP
stateOrProvinceName       = Tokyo
organizationName          = Sun Microsystems
organizationalUnitName    = Software Practice
commonName                = ca-server.sun.com
emailAddress              = caadmin@Sun.COM
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
Certificate is to be certified until Nov  8 04:40:09 2012 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

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
/usr/local/apache2.2.14/conf/ssl.key
apache > ls
apache.japan.sun.com.csr apache.japan.sun.com.key

認証局(CA) でサーバ証明書の署名の準備
認証局(CA) の設定を変更し、サーバ証明書を署名する準備をします。

ca-admin > vi openssl.cnf

[ usr_cert ]
basicConstraints=CA:FALSE <—TRUEから変更
nsCertType = server <———- コメントアウト

認証局(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
-cert ./demoCA/cacert.pem -out apache.japan.sun.com.signed-server-cert

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

下記の行をそれぞれ編集
SSLCertificateFile “/usr/local/apache2.2.14/conf/ssl.crt/apache.japan.sun.com.signed-server-cert.pem”

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
BinariesLicense     SUNWaslb.zip        SUNWaspx.zip        aslb-9.1.1-b13.jar

dashost > mkdir /sun/glassfish-v2.1.1/lib/plugin
dashost > cp *.zip /sun/glassfish-v2.1.1/lib/plugin/
dashost > cd /sun/glassfish-v2.1.1/lib/plugin/
dashost > unzip SUNWaslb.zip
Archive:  SUNWaslb.zip
creating: lib/
creating: lib/dtds/
inflating: lib/dtds/sun-loadbalancer_1_0.dtd
inflating: lib/dtds/sun-loadbalancer_1_1.dtd
inflating: lib/dtds/sun-loadbalancer_1_2.dtd
creating: lib/install/
creating: lib/install/templates/
inflating: lib/install/templates/loadbalancer.xml.example
inflating: lib/install/templates/ReadMe.UserDefinedLB
inflating: lib/install/templates/roundrobin.c
inflating: lib/install/templates/loadbalancer.h
dashost > unzip SUNWaspx.zip
Archive:  SUNWaspx.zip
inflating: lib/libxerces-c.so
inflating: lib/libsupport.so
inflating: lib/libnsprwrap.so
inflating: lib/libns-httpd40.so
inflating: lib/libnsfc.so
inflating: lib/libnstp.so
inflating: lib/libdirmon4.so
inflating: lib/libnstime.so
inflating: lib/libgetprop.so
inflating: lib/liblibsi18n.so
inflating: lib/libares3.so
inflating: lib/libssldap50.sov
inflating: lib/liblibdbm.so
inflating: lib/libldap50.so
inflating: lib/libicuuc.so.2
inflating: lib/libicui18n.so.2
inflating: lib/libicudata.so.2
inflating: lib/libsasl.so
inflating: lib/libprldap50.so
creating: lib/webserver-plugin/
creating: lib/webserver-plugin/solaris/
creating: lib/webserver-plugin/solaris/sjsws/
creating: lib/webserver-plugin/solaris/sjsws/errorpages/
inflating: lib/webserver-plugin/solaris/sjsws/errorpages/default-error.html
inflating: lib/webserver-plugin/solaris/sjsws/errorpages/sun-http-lberror.html
inflating: lib/webserver-plugin/solaris/sjsws/libpassthrough.so
inflating: lib/webserver-plugin/solaris/sjsws/LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/sjsws/LBPlugin_root.res
creating: lib/webserver-plugin/solaris/apache2/
creating: lib/webserver-plugin/solaris/apache2/errorpages/
inflating: lib/webserver-plugin/solaris/apache2/errorpages/default-error.html
inflating: lib/webserver-plugin/solaris/apache2/errorpages/sun-http-lberror.html
inflating: lib/webserver-plugin/solaris/apache2/mod_loadbalancer.so
inflating: lib/webserver-plugin/solaris/apache2/secmod.db
inflating: lib/webserver-plugin/solaris/apache2/cert8.db
inflating: lib/webserver-plugin/solaris/apache2/key3.db
inflating: lib/webserver-plugin/solaris/apache2/LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/apache2/LBPlugin_root.res
creating: lib/webserver-plugin/solaris/apache2.2/
creating: lib/webserver-plugin/solaris/apache2.2/errorpages/
inflating: lib/webserver-plugin/solaris/apache2.2/errorpages/default-error.html
inflating: lib/webserver-plugin/solaris/apache2.2/errorpages/sun-http-lberror.html
inflating: lib/webserver-plugin/solaris/apache2.2/mod_loadbalancer.so
inflating: lib/webserver-plugin/solaris/apache2.2/secmod.db
inflating: lib/webserver-plugin/solaris/apache2.2/cert8.db
inflating: lib/webserver-plugin/solaris/apache2.2/key3.db
inflating: lib/webserver-plugin/solaris/apache2.2/LBPluginDefault_root.res
inflating: lib/webserver-plugin/solaris/apache2.2/LBPlugin_root.res

ロードバランサの設定ファイルをテンプレートディレクトリにコピー

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 が抽出されました.
SUNWaspx.zip が抽出されました.
BinariesLicense が展開されました.

apache > ls
BinariesLicense     SUNWaslb.zip        SUNWaspx.zip        aslb-9.1.1-b13.jar

apache > unzip SUNWaslb.zip
apache > unzip SUNWaspx.zip


apache > mkdir /usr/local/apache2.2.14/modules/resource
apache > mkdir /usr/local/apache2.2.14/modules/errorpage
apache > cp /tmp/AS_LB/lib/webserver-plugin/solaris/apache2.2/LBPluginDefault_root.res
/usr/local/apache2.2.14/modules/resource/

apache > cp /tmp/AS_LB//lib/webserver-plugin/solaris/apache2/LBPlugin_root.res
/usr/local/apache2.2.14/modules/resource/

apache > cp /tmp/AS_LB/lib/webserver-plugin/solaris/apache2.2/mod_loadbalancer.so
/usr/local/apache2.2.14/modules/

apache > cp /tmp/AS_LB/lib/lib*.so* /usr/local/apache2.2.14/modules/
apache > cp /tmp/AS_LB/lib/webserver-plugin/solaris/apache2.2/errorpages/*
/usr/local/apache2.2.14/modules/errorpage/

apache > cp /tmp/AS_LB/lib/plugin/lib/install/templates/loadbalancer.xml.example
/usr/local/apache2.2.14/conf/loadbalancer.xml

apache > cp /tmp/AS_LB/lib/plugin/lib/dtds/sun* /usr/local/apache2.2.14/conf/
apache > mkdir /usr/local/apache2.2.14/sec_db_files
apache > cp /tmp/AS_LB/lib/webserver-plugin/solaris/apache2.2/*.db /usr/local/apache2.2.14/sec_db_files/

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)
Enter pass phrase: [password]

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
-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
証明書がキーストアに追加されました。
[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
-keystore keystore.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]
]

上記で Apache 上でのロードバランサ設定は完了です。
次に GlassFish 上で Apache との連携用の設定を行います。

GlassFish の設定は次のエントリに記載しています。

2009年12月25日 at 5:40 午前

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:
============================
-> ps (GlassFish v3 で導入されているバンドル一覧)
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] [Installed ] [ 1] AMX V3 extensions implementation (3.0.0.b74b)
[ 3] [Resolved ] [ 1] org.glassfish.core.glassfish-extra-jre-packages
[ 4] [Installed ] [ 1] Branding Fragment (3.0.0.b74b)
[ 5] [Active ] [ 1] Private APIs of Glassfish V3 (3.0.0.b74b)
[ 6] [Resolved ] [ 1] Inversion of Control / Autodependency mechanism (1.0.0)
….. (中略)
[ 243] [Resolved ] [ 1] ejb-mapping module for cmp (3.0.0.b74b)
[ 244] [Resolved ] [ 1] metro (0)
[ 245] [Installed ] [ 1] MyBundle (1.0.0)
-> start 245
-> stop 245
-> start 245
-> exit
Good Bye!

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.
enterprise.v3.services.impl|_ThreadID=24;_ThreadName=Thread-1;|Started the OSGi Bundle|#]
[#|2009-12-22T14:51:15.594+0900|INFO|glassfishv3.0|javax.enterprise.system.std.com.sun.
enterprise.v3.services.impl|_ThreadID=24;_ThreadName=Thread-1;|Stopped the OSGi Bundle|#]
[#|2009-12-22T14:51:21.882+0900|INFO|glassfishv3.0|javax.enterprise.system.std.com.sun.
enterprise.v3.services.impl|_ThreadID=24;_ThreadName=Thread-1;|Started the OSGi Bundle|#]

このように、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.
コマンド deploy は正常に実行されました。

Felix Remote Shell Console:
============================
-> 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] [Active ] [ 1] AMX V3 extensions implementation (3.0.0.b74b)
[ 3] [Resolved ] [ 1] org.glassfish.core.glassfish-extra-jre-packages
[ 4] [Installed ] [ 1] Branding Fragment (3.0.0.b74b)
(….中略)
[ 244] [Resolved ] [ 1] metro (0)
[ 246] [Active ] [ 1] MyBundle (1.0.0)

2009年12月21日 at 10:20 午後

SIP コンテナの設定項目一覧

SailFin (Sun GlassFish Communications Server) の設定項目について調べ、
この情報は SailFin をご利用の方には有用な情報になるかと思い、本ブログでも
公開します。

下記は、SailFin の中で特に SIP コンテナに関連した設定項目の一覧になります。
もちろん、下記の設定項目以外に GlassFish で提供される設定項目も設定変更が
可能ですが、ここでは特に SIP コンテナ、SIP リスナーに関する項目だけを抜粋しています。
また、下記の設定項目は GUI の管理コンソールからも設定変更ができますので
必要に応じて、GUI 管理コンソールをご使用ください。

パラメータ名 意味 デフォルト値
server.log-service.module-log-levels.property.sip 各サーバーモジュールのログレベルを指定
します。

FINEST: 最大の詳細度

FINER: 中間の詳細度

FINE: 最小の詳細度

CONFIG: サーバー設定に関連するメッセージ

INFO: サーバー設定、またはエラーを除くサーバーの状態に関連するメッセージ

WARNING: 例外を含む警告

SEVERE: 正常なプログラム実行の妨げになるイベント

INFO
server.monitoring-service.module-monitoring-levels.property.sip-service SIP サービスの監視を有効
「LOW」または「HIGH」を選択します
OFF
server.sip-container.external-address コールバッククライアントがレスポンスを
返信する際に使用する外部からアクセス可能な
アドレスを指定します。
N/A
server.sip-container.external-sip-port コールバッククライアントがレスポンスを
返信する際に使用する外部からアクセス可能な
SIP用のポート番号を指定します。
5060
server.sip-container.external-sips-port コールバッククライアントがレスポンスを
返信する際に使用する外部からアクセス可能な
SIPS用のポート番号を指定します。
5061
server.sip-container.session-config.session-manager.manager-properties.max-sessions 最大セッション数 N/A
server.sip-container.session-config.session-manager.manager-properties.reap-interval-in-seconds 取得間隔
アクティブでないセッションデータが削除
されるまでの秒数
N/A
server.sip-container.session-config.session-manager.manager-properties.session-file-name セッションファイル名:
セッションデータを含むファイル。
N/A
server.sip-container.session-config.session-manager.manager-properties.session-id-generator-classname セッション ID ジェネレータクラス名:
セッション ID を生成するためのカスタムクラス
N/A
server.sip-container.session-config.session-manager.store-properties.directory = セッション情報をファイルに保存する際
ファイルの保存先のディレクトリを指定
(テスト環境においてのみ利用可能、
テスト時セッション情報の内容を確認する
ために利用)
N/A
server.sip-container.session-config.session-manager.store-properties.reap-interval-in-seconds 取得間隔:
アクティブでないセッションデータが削除
されるまでの秒数
N/A
server.sip-container.session-config.session-properties.timeout-in-seconds セッションタイムアウトの時間(秒) N/A
server.sip-service.property.accesslog アクセスログの保存先 ${com.sun.aas.instanceRoot}
/logs/sipaccess
server.sip-service.access-log.format SIPサービスのアクセスログのフォーマット
を指定
SIP ヘッダーの client.name、auth-user-name、
datetime、request、status、response.length、
max.forwards、from、cseq、contact、to、
content.type、via、call.id を指定可能
%client.name%
%auth-user-name%
%datetime%
%request%
%status%
%response.length%
server.sip-service.access-log.rotation-enabled アクセスログのローテーションを有効 TRUE
server.sip-service.access-log.rotation-interval-in-minutes ローテーション間隔を指定 15
server.sip-service.access-log.rotation-policy ローテーションのポリシーを指定
デフォルトの time 以外選択肢は無い
time
server.sip-service.access-log.rotation-suffix ローテーションサフィックス:
ローテーション後にアクセスログファイル名に
追加されるファイル名のサフィックス
yyyy-MM-dd
server.sip-service.connection-pool.max-pending-count 最大保留カウント:
LISTENソケットの保留の最大数
4096
server.sip-service.connection-pool.queue-size-in-bytes キューサイズ:
接続キューのバイト単位のサイズ.
-1 は、プロパティーが無効
-1
server.sip-service.connection-pool.receive-buffer-size-in-bytes 受信バッファーサイズ:
ソケットが使用する受信バッファのサイズ.
-1 は、プロパティーが無効
-1
server.sip-service.connection-pool.send-buffer-size-in-bytes 送信バッファーサイズ:
ソケットが使用する送信バッファのサイズ
8192
server.sip-service.keep-alive.max-connections 最大接続数:
キープアライブモードにある接続の最大数
256
server.sip-service.keep-alive.thread-count スレッド数:
システム内のキープアライブスレッドの数
1
server.sip-service.keep-alive.timeout-in-seconds タイムアウト:
接続がアイドルと見なされ、キープアライブ
状態で維持される最大時間。
-1 はタイムアウトが無効
-1
server.sip-service.request-processing.header-buffer-length-in-bytes SIP ヘッダーのバッファー長:
リクエスト処理スレッドがリクエストデータ
の読み込みに使用するヘッダーバッファのサイズ
8192
server.sip-service.request-processing.initial-thread-count 初期スレッド数:
SIP サービス開始時のリクエスト処理スレッド
の数
10
server.sip-service.request-processing.request-timeout-in-seconds リクエストタイムアウト:
SIPリクエストがタイムアウトされるまでの秒数
30
server.sip-service.request-processing.thread-count リクエストスレッド数:
リクエスト処理スレッドの最大数
10
server.sip-service.request-processing.thread-increment スレッドの増分:
リクエスト数が初期スレッド数に達した時点で
追加されるスレッド数
1
server.sip-service.sip-listener.sip-listener-*.address ネットワークアドレス:
ドットで区切られたペアまたは IPv6 形式で
指定可能。
複数のIPアドレスでリクエスト受け付けたい場合、
0.0.0.0、any (または ANY)、または
INADDR_ANY (すべて IP アドレス)を指定
0.0.0.0
server.sip-service.sip-listener.sip-listener-*.enabled SIP リスナーの有効/無効を設定 TRUE
server.sip-service.sip-listener.sip-listener-*.external-sip-address 外部向け SIPアドレス:
この値を指定した場合は、SIP コンテナの設定
よりも優先されます
N/A
server.sip-service.sip-listener.sip-listener-*.external-sip-port 外部向け SIPポート番号:
この値を指定した場合は、SIP コンテナの設定
よりも優先されます
N/A
server.sip-service.sip-listener.sip-listener-*.id SIPリスナーの識別名 sip-listener-1/
Sip-listener-2
server.sip-service.sip-listener.sip-listener-*.port SIPポート番号 5060/5061
server.sip-service.sip-listener.sip-listener-*.ssl.cert-nickname SIPS用のサーバ証明書のニックネームを設定 s1as
server.sip-service.sip-listener.sip-listener-*.ssl.client-auth-enabled SIPS用クライアント認証の有効/無効設定 FALSE
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-ciphers SIPS用 SSLv2の暗号化方式の指定 N/A
server.sip-service.sip-listener.sip-listener-*.ssl.ssl2-enabled SIPS用 SSLv2の有効/無効設定 FALSE
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-enabled SIPS用 SSLv3の有効/無効設定 FALSE
server.sip-service.sip-listener.sip-listener-*.ssl.ssl3-tls-ciphers SIPS用 SSLv3/TLSの暗号化方式の指定 N/A
server.sip-service.sip-listener.sip-listener-*.ssl.tls-enabled SIPS用 TLSの有効/無効設定 TRUE
server.sip-service.sip-listener.sip-listener-*.ssl.tls-rollback-enabled SIPS用のTLSロールバックの有効/無効設定 TRUE
server.sip-service.sip-listener.sip-listener-*.transport SIPリスナーの転送プロトコル TCP/UDP or tls
server.sip-service.sip-listener.sip-listener-*.type SIPリスナーの種類
タイプにはデフォルト、外部、または内部を
指定できます。内部リスナーは、clb により
プロキシの目的でのみ使用されます。
外部リスナーは、clb ではなく UA によってのみ
使用されます。デフォルトのタイプは両方利用
可能です。
default
server.sip-service.sip-protocol.default-tcp-transport デフォルトトランスポート:
contact および record-route ヘッダーの URI で
“transport=tcp” の挿入を有効/無効にします。
FALSE
server.sip-service.sip-protocol.error-response-enabled エラー応答:
不正な要求に対するエラー応答の送信を有効/
無効にします。
FALSE
server.sip-service.sip-protocol.sip-link.connection-alive-timeout-in-seconds 接続生存状態のタイムアウト:
接続を終了するまでに、SIP リンクがアクティブ
でない状態を許可される最大時間。
デフォルトは 120 秒。
120
server.sip-service.sip-protocol.sip-link.max-queue-length キューの最大長:
1 つのリンク上で書き込みを待機できる、
同時書き込み要求、または接続要求の最大数、
またはその両方の最大数。
デフォルトの要求数は 50
50
server.sip-service.sip-protocol.sip-link.write-timeout-in-millis 書き込みタイムアウト:
SIP リンクの 1 回の書き込み操作の最大時間
範囲は 1 から 50 ミリ秒
デフォルトは 10 ミリ秒
10
server.sip-service.sip-protocol.sip-link.write-timeout-retries 書き込みタイムアウトの再試行回数:
SIP リンクの単一の書き込み操作を再試行する
最大回数。範囲は 1 から 25
デフォルトは 25 です。
25
server.sip-service.sip-protocol.sip-timers.t1-in-millis SIP タイマー
タイマー T1:
T1 は、クライアントとサーバーの
トランザクション間の推定往復時間
デフォルト値は 500 ミリ秒
500
server.sip-service.sip-protocol.sip-timers.t2-in-millis タイマー T2:
非 INVITE 要求と INVITE 応答の最大の再送信
間隔
デフォルト値は 4000 ミリ秒
4000
server.sip-service.sip-protocol.sip-timers.t4-in-millis タイマー T4:
メッセージがネットワークに存続する最大時間
デフォルト値は 5000 ミリ秒
5000
server.overload-protection-service.enabled 過負荷保護サービス機能の有効/無効設定 FALSE
server.overload-protection-service.cpu-overload-protection CPU 過負荷保護の有効/無効設定 FALSE
server.overload-protection-service.cpu-http-threshold HTTP リクエストに対するアクセス拒否を行う
CPU の閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
70
server.overload-protection-service.cpu-ir-threshold SIP 初期リクエストに対するアクセス拒否を行う
CPU の閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
70
server.overload-protection-service.cpu-sr-threshold SIP 初期リクエスト以降のリクエストに対する
アクセス拒否を行うCPU の閾値を設定
(0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
90
server.overload-protection-service.cpu-mm-threshold HTTP/SIP の両リクエストに対するアクセス
拒否を行うCPU の閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
99
server.overload-protection-service.cpu-overload-activation-algorithm CPU 過負荷によるアクセス拒否
有効化アルゴリズムの選択:
CPU の過負荷保護を有効にするかどうかを
決定するアルゴリズムを指定します。
CONSECUTIVE もしくは MEDIAN を指定
MEDIAN
server.overload-protection-service.cpu-overload-deactivation-algorithm CPU 過負荷によるアクセス拒否
無効化アルゴリズムの選択:
CPU の過負荷保護を無効にするかどうかを
決定するアルゴリズムを指定します。
CONSECUTIVE もしくは MEDIAN を指定
CONSECUTIVE
server.overload-protection-service.mm-threshold-http-wait-time CPU 過負荷時
スレッドプールに戻されるまでにスレッドが
保持される期間を設定。
デフォルト2秒
2
server.overload-protection-service.number-of-samples CPU 過負荷の計測において
過負荷と判断されるまでに必要なサンプルの数を
設定
設定可能な最小サンプリングレートは 2
5
server.overload-protection-service.retry-after-interval CPU 過負荷を計測する間隔
503 エラーレスポンスの retry-after ヘッダに
ここで設定した値が書き加えられる
10
server.overload-protection-service.sample-rate CPU 過負荷の計測における計測間隔を設定
正の値を指定可能
2
server.overload-protection-service.memory-overload-protection メモリ過負荷保護の有効/無効設定 FALSE
server.overload-protection-service.mem-http-threshold HTTP リクエストに対するアクセス拒否を行う
メモリの閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
85
server.overload-protection-service.mem-ir-threshold SIP 初期リクエストに対するアクセス拒否を行う
メモリの閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
85
server.overload-protection-service.mem-sr-threshold SIP 初期リクエスト以降のリクエストに対する
アクセス拒否を行うメモリの閾値を設定
(0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
85
server.overload-protection-service.mem-mm-threshold HTTP/SIP の両リクエストに対するアクセス
拒否を行うメモリの閾値を設定 (0% から 100%)
閾値を超えるとHTTP 503 エラーを返す
99
server.overload-protection-service.mem-overload-activation-algorithm メモリ過負荷によるアクセス拒否
有効化アルゴリズムの選択:
メモリの過負荷保護を有効にするかどうかを
決定するアルゴリズムを指定します。
CONSECUTIVE もしくは MEDIAN を指定
MEDIAN
server.overload-protection-service.mem-overload-deactivation-algorithm メモリ過負荷によるアクセス拒否
無効化アルゴリズムの選択:
メモリの過負荷保護を無効にするかどうかを
決定するアルゴリズムを指定します。
CONSECUTIVE もしくは MEDIAN を指定
CONSECUTIVE

2009年12月21日 at 6:33 午後

GlassFish Administration Book









GlassFish v2.x 系の管理系の本が海外で出版されたようです。


2009年12月17日 at 10:21 午後 1件のコメント

SDC 連載記事のアーカイブ



以前、GlassFish に関する連載記事を弊社 SDC(sdc.sun.co.jp)のサイトで

行っていましたが、SDC のサイトが何らかの障害?閉鎖?で

アクセスできなくなっておりました。





以前、連載記事のバックアップをしていましたので、

こちらから連載記事をまとめてダウンロードできるようにいたしました。

(若干体裁はずれていますが、内容や画像はそのまま確認できるかと思います。)



jar 版と、tgz 版それぞれ用意いたしましたので、ご希望に応じて

入手してください。




jar アーカイブ版



tgz アーカイブ版




上記ファイルに含まれる連載のコンテンツは下記の通りです。



 第1回:導入編

 第2回:アプリケーションサーバの管理の基本

   第2回:アプリケーションサーバの管理の基本 アップデート情報

 第3回:クラスタと負荷分散 (1)

 第4回:クラスタと負荷分散 (2)

 第5回:インメモリリプリケーションによる高可用性の実現方法






訂正:確認した所すべてのコンテンツは下記に移されておりました。


移動先へのリンク








(伊豆下田)



(箱根の夕暮れ)


2009年12月16日 at 7:20 午後

GlassFish v3 インストールビデオ

早速、GlassFish v3 をダウンロードしてインストールしてみました。



MacBook で GlassFish v3 の WebProfile をインストールし日本語

環境にするまでの手順をビデオに撮りましたので、ぜひ参考にしてください。

GlassFish v2 の頃に比べオープンインストーラを使うように

なったので、インストールがとても簡単になっています。



また、GlassFish v3 からは Java SE 6 以上が必須となりますので、

Java SE 6 をお持ちでない方は事前にインストールしてください。

(※ Java SE 5 はノンサポートです。)

Java SE 6 をインストール後、JAVA_HOME の環境変数を設定して

GlassFish v3 のインストールを開始してください。





ビデオはこちらからも確認できます。



このビデオは、全く編集をしていません。(計:8分27秒)

途中 Update Tool の初期化やローカライズパッケージのダウンロードなどで

若干時間が掛かっていますが、これらの処理は恐らくどの環境でも同じかと思います。

待ち時間を除くと手作業は5分も掛かっていなくてとても簡単です。



インストールから、日本語環境の構築までが 8 分でできますので、

時間に余裕がある時にぜひインストールしてみてください。


2009年12月10日 at 8:02 午前

GlassFish v3 FCS 版が入手可能






つい先ほど(12/10 23時頃)から、GlassFish v3 の FCS 版がダウンロード

できるようになりました。

入手はこちらから

Mac版では、フルバージョンが 70MB、Web Profile 版が 50MB でした。

是非、この新鮮な GlassFish をご賞味あれ!!






2009年12月10日 at 6:36 午前

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

2009年12月9日 at 10:43 午後

今日の日本経済新聞 朝刊を見ました?



今日の日本経済新聞 朝刊を見た方いらっしゃいます?

日本 Oracle から Sun の既存のお客様に対して力強い

下記のメッセージ広告を頂きました。







GlassFish も今後も投資すると別資料で報告していますので、

安心してご使用ください。


2009年12月9日 at 3:39 午前 3件のコメント

Older Posts


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2009年12月
 123456
78910111213
14151617181920
21222324252627
28293031  

カテゴリー

clustermap

ブログ統計情報

  • 1,288,557 hits

Feeds

アーカイブ