Download - GlassFish v3 Q&A
GlassFish v3 Q&A
GlassFish Japan Users Group
蓮沼 賢志 http://www.coppermine.jp/
Twitter @btnrouge
ユーザーから見たGlassFish #2
Q. GlassFishって何ですか?
A. 今、一番HotなWebアプリケーションサーバーです!
解説 GlassFishの特徴: Java EEのリファレンス実装。 オープンソース。 Tomcat並に軽量。 WebLogicに匹敵する高い信頼性。 米Oracleが全面的に支援。
※Oracleによる有償サポートあり。
解説 GlassFish v3の強み: 機能単位での追加・削除・更新が可能 (機能追加は再起動不要の場合も…) • Java EEのプロファイル対応にも利用 • 軽快な動作を求めるときは最小構成 • 大規模システムではフルスペック ★実装=HK2+OSGiランタイム ※WebLogic Server 12c にも類似のアーキテクチャが採用されている(はず)
Q. GlassFishをTomcatのようにサービスとして動かすことは出来ますか?
A. できます! (あまり知られていませんが…)
解説 GlassFishのサービス化は、asadminで簡単に実現できます。
# asadmin create-service <domain-name> (For example…) # asadmin create-service domain1
解説 ただし、GlassFishのサービス化は、OSによって実装が異なります。 • Windows – Windowsサービス • Solaris – SMF (Solaris 10以降) • Linux – rcスクリプト
※asadminではサービスを削除できません。削除方法については後述します。
解説 GlassFishのサービス化: Windows 同梱のwinswが使用されます。
具体的には、 C:¥glassfish3¥glassfish¥domains¥domain1¥bin¥domain1Service.exe
がサービスとして登録されます。 ※同じフォルダ上のdomain1Service.xmlはサービスの登録・解除の際に使われます。
解説 GlassFishのサービス化: Windows 【サービスの削除】 コマンドプロンプトで以下を入力: > domain1Service.exe uninstall
参考: winsw (Windows Service Wrapper) http://kenai.com/projects/winsw
解説 GlassFishのサービス化: Solaris SolarisのSMFに登録され、以降svcadmおよびsvcsコマンドで管理できます。 ※登録されたことの確認手順 # svcs | grep GlassFish online 7月_03 svc:/application/GlassFish/domain1:default
解説 GlassFishのサービス化: Solaris 【サービスの削除】
サービスを完全に停止させた後、svccfgコマンドでサービスの削除を行います。 # svccfg delete svc:/application/GlassFish/domain1:default
解説 GlassFishのサービス化: Linux 以下のrcスクリプトが作成されます。 /etc/init.d/GlassFish_domain1 OSの起動/停止に合わせて動作させるには、適切なランレベルのディレクトリに、このrcスクリプトへのシンボリックリンクを手動で作成します。
解説 GlassFishのサービス化: Linux 【サービスの削除】 /etc/init.d/GlassFish_domain1 と作成したシンボリックリンクすべてを削除します。
Q. JDKのバージョンを上げたらGlassFishが動かなくなったんですけど?
A. /glassfish3/glassfish/config以下の
asenv.conf (Solaris/Linux/Mac/AIX) asenv.bat (Windows)
を開いて、環境変数AS_JAVAが正しいJDKの位置を指していること(もしくはAS_JAVA自体が定義されていないこと)を確認してください。
解説 GlassFish(実際にはasadmin)は以下の優先順位で使用するJDKを決定します。 1. asenv.conf or asenv.batのAS_SERV
を確認する→あればその値を用いる 2. AS_SERVが見つからない場合は、パス
の通っている java or java.exe
【超重要】 GlassFishは環境変数JAVA_HOMEを参照しません。
解説 Windowsユーザーはさらに注意! • asenv.batに環境変数AS_SERVが定義
されていない • パスにJDKが含まれていない • JRE6以降がインストール済
(JDK同梱の公開JREを含む) →C:¥WINDOWS¥System32¥java.exe=JREを使おうとする(当然動かない)
Q. GlassFish v3.1はJava 7の環境で動作しますか?
A. 動作しません! Java 7対応済のv3.1.1以降をご利用ください。 なお、v3.1.1はJava SE 7と同日リリース(2011年7月28日)されています。
Q. GlassFish 4.0の管理コンソールがWebLogic風になるって、本当ですか?
A. 先ほどの画面はv4.0の新機能で、「PaaSコンソール」といいます。
解説 GlassFish 4.0では、GlassFish自身がクラウド基盤として利用できます。 「PaaSコンソール」は、GlassFishベースのクラウドを管理するためのツールです。 ★GlasFish 4.0本体のコンソールは、v2からおなじみのあのインタフェースです。
Q. Windows環境でGlassFishのクラスタを組むにはどうすればいいの?
A. Windowsに限って言うと、実はかなり厄介です。 (反対にSolaris/Linuxではとても簡単)
SSH Session
管理サーバー ノード scp
ssh
解説 まず前提として、GlassFishのSSHプロビジョニングの仕組みをおさらいしましょう。
自分自身を複製する
解説 GlassFishのクラスタ構成にはSSH/SCPが必須です。しかしWindowsはSSH実装を持っていません。 代替案: • Cygwin(OpenSSH) • SFU/SUA + OpenSSH • 商用SSHサーバー(Tectia Server等)
解説 【ここでWindowsユーザーに朗報!】 GlassFish 3.1.2 & 4.0では、 Windows環境下でDCOMをSSH/SCPの代替として使えるようになります。 もはやCygwinも商用SSHも要りません! ※j-Interopというライブラリを使います。
Q. コミュニティ版とOracle版(製品版)はどこが違うのですか?
A. ロゴと製品名を除いて、基本的には同じものです。品質にも差はありません。 【補足】GlassFishの製品名 コミュニティ版 : GlassFish Server Open Source Edition
Oracle版(製品版) : Oracle GlassFish Server
解説 • GlassFishはコミュニティが設計からテ
スト、リリースまですべて担当します。 • Oracleはコミュニティ版GlassFishに追
加のモジュールと有償サポートを付加して顧客に提供しています。
• コミュニティにはOracle社員も数多く参加しています。
解説 GlassFishのライセンスは、コミュニティ版とOracle版で全く異なります。
コミュニティ版 ※以下のどちらかを選択 • CDDL:OpenSolarisと同じ • クラスパス例外付きGPL:OpenJDKと同じ Oracle版(製品版) • 一般ライセンス:有償、サポート付き • OTN開発ライセンス:開発用途限定で無償
Q. なぜGlassFishよりTomcatの方が選ばれているのですか?
A.
そんなこと、私に聞くな!
解説 まあ、そういう感情論は置いておいて…
• Tomcatが長きにわたってServlet/JSPの世界を牽引してきたのは揺るぎない事実であり、数え切れない運用実績とノウハウが蓄積されています。
• Apache Licenseに基づくフリーソフトウェアのため、広く使われ、また多くの開発者が携わっているのも確かです。
解説 • Tomcatは開発者・ユーザーともに非常
に多く、コアの部分はJ2EEのリファレンス実装に採用されていた時期もあります。
• 以上の経緯から「Tomcatは長い歴史を持つ、安定したサーバーである」という認識がほぼ定着しています。
ところが、昨今のTomcatを見ていると、そうとも言えないんだな、これが…
解説 TomcatとGlassFishの間には、製品の品質に関して考え方に大きな違いがあります。
解説 Tomcatのコンポーネントには、安定した実装、中途半端な実装、実験的な実装があります。 【問題点】 • Tomcatは正式リリースであっても、こ
れらが混在しています。 • 中途半端な実装や実験的な実装につい
て安定した実装と明確に区別しないこともあります。
解説 Tomcatの中途半端or実験的な実装の例 • コネクションプール • クラスタ機能
Tomcat 6系までは代表的な「実験的」実装。Tomcat 7系では?
• NIOコネクタ、ノンブロッキングI/O Grizzlyとの間にはいまだ越えられない壁が…
• バルブ 実装そのものは安定。ただし、比較的新しい機能なのに早速、将来削除の方向に…
解説 GlassFishのコンポーネントは、リリース時には安定した実装しか含まれません。 リリースまでに安定しない実装は次期リリースに先送りされたり、あるいは削除されることもあります。
※上記の品質管理方針のため、GlassFishはリリース直後の段階でかなり高い品質を誇ります。
解説 GlassFishの中途半端or実験的な実装の例 • v3のクラスタ機能:v3.1に先送り
「v3は商用では使えない」という悪評が… • v3の新管理コンソール:中止 • 動的言語サポート:縮小傾向
プロジェクトの体力の問題で機能・品質を維持できない。
• GlassFish 3.2 :計画中止 成果はv4.0(一部v3.1.2)に引き継がれた。
Q. GlassFishでわからないことがあったら、どこに質問すればいいですか?
A. 周りに詳しい方がいればその方に質問するのが手っ取り早いです。
※しかし、そのような恵まれた環境に置かれている方々は残念ながら少数派です。 そこで私たちはMLを用意しています。
GlassFish関連のメーリングリスト
★本家(glassfish.org) http://glassfish.java.net/public/mailing-lists.html • ユーザー向けML : [email protected] • 開発者向けML : [email protected]
★日本GlassFishユーザー会 https://groups.google.com/forum/#!forum/glassfish • ML : [email protected]