ユーザーから見たGlassFish #2 GlassFish v3 Q&A GlassFish Japan Users Group 蓮沼 賢志 http://www.coppermine.jp/ Twitter @btnrouge 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¥d omain1¥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ではとても簡単) 解説 まず前提として、GlassFishのSSHプロビ ジョニングの仕組みをおさらいしましょう。 管理サーバー scp ssh 自分自身を 複製する SSH Session ノード 解説 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]
© Copyright 2024 ExpyDoc