49
GlassFish v3 Q&A GlassFish Japan Users Group 蓮沼 賢志 http://www.coppermine.jp/ Twitter @btnrouge ユーザーから見たGlassFish #2

GlassFish v3 Q&A

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: GlassFish v3 Q&A

GlassFish v3 Q&A

GlassFish Japan Users Group

蓮沼 賢志 http://www.coppermine.jp/

Twitter @btnrouge

ユーザーから見たGlassFish #2

Page 2: GlassFish v3 Q&A

Q. GlassFishって何ですか?

Page 3: GlassFish v3 Q&A

A. 今、一番HotなWebアプリケーションサーバーです!

Page 4: GlassFish v3 Q&A

解説 GlassFishの特徴: Java EEのリファレンス実装。 オープンソース。 Tomcat並に軽量。 WebLogicに匹敵する高い信頼性。 米Oracleが全面的に支援。

※Oracleによる有償サポートあり。

Page 5: GlassFish v3 Q&A

解説 GlassFish v3の強み: 機能単位での追加・削除・更新が可能 (機能追加は再起動不要の場合も…) • Java EEのプロファイル対応にも利用 • 軽快な動作を求めるときは最小構成 • 大規模システムではフルスペック ★実装=HK2+OSGiランタイム ※WebLogic Server 12c にも類似のアーキテクチャが採用されている(はず)

Page 6: GlassFish v3 Q&A

Q. GlassFishをTomcatのようにサービスとして動かすことは出来ますか?

Page 7: GlassFish v3 Q&A

A. できます! (あまり知られていませんが…)

Page 8: GlassFish v3 Q&A

解説 GlassFishのサービス化は、asadminで簡単に実現できます。

# asadmin create-service <domain-name> (For example…) # asadmin create-service domain1

Page 9: GlassFish v3 Q&A

解説 ただし、GlassFishのサービス化は、OSによって実装が異なります。 • Windows – Windowsサービス • Solaris – SMF (Solaris 10以降) • Linux – rcスクリプト

※asadminではサービスを削除できません。削除方法については後述します。

Page 10: GlassFish v3 Q&A

解説 GlassFishのサービス化: Windows 同梱のwinswが使用されます。

具体的には、 C:¥glassfish3¥glassfish¥domains¥domain1¥bin¥domain1Service.exe

がサービスとして登録されます。 ※同じフォルダ上のdomain1Service.xmlはサービスの登録・解除の際に使われます。

Page 11: GlassFish v3 Q&A

解説 GlassFishのサービス化: Windows 【サービスの削除】 コマンドプロンプトで以下を入力: > domain1Service.exe uninstall

参考: winsw (Windows Service Wrapper) http://kenai.com/projects/winsw

Page 12: GlassFish v3 Q&A

解説 GlassFishのサービス化: Solaris SolarisのSMFに登録され、以降svcadmおよびsvcsコマンドで管理できます。 ※登録されたことの確認手順 # svcs | grep GlassFish online 7月_03 svc:/application/GlassFish/domain1:default

Page 13: GlassFish v3 Q&A

解説 GlassFishのサービス化: Solaris 【サービスの削除】

サービスを完全に停止させた後、svccfgコマンドでサービスの削除を行います。 # svccfg delete svc:/application/GlassFish/domain1:default

Page 14: GlassFish v3 Q&A

解説 GlassFishのサービス化: Linux 以下のrcスクリプトが作成されます。 /etc/init.d/GlassFish_domain1 OSの起動/停止に合わせて動作させるには、適切なランレベルのディレクトリに、このrcスクリプトへのシンボリックリンクを手動で作成します。

Page 15: GlassFish v3 Q&A

解説 GlassFishのサービス化: Linux 【サービスの削除】 /etc/init.d/GlassFish_domain1 と作成したシンボリックリンクすべてを削除します。

Page 16: GlassFish v3 Q&A

Q. JDKのバージョンを上げたらGlassFishが動かなくなったんですけど?

Page 17: GlassFish v3 Q&A

A. /glassfish3/glassfish/config以下の

asenv.conf (Solaris/Linux/Mac/AIX) asenv.bat (Windows)

を開いて、環境変数AS_JAVAが正しいJDKの位置を指していること(もしくはAS_JAVA自体が定義されていないこと)を確認してください。

Page 18: GlassFish v3 Q&A

解説 GlassFish(実際にはasadmin)は以下の優先順位で使用するJDKを決定します。 1. asenv.conf or asenv.batのAS_SERV

を確認する→あればその値を用いる 2. AS_SERVが見つからない場合は、パス

の通っている java or java.exe

【超重要】 GlassFishは環境変数JAVA_HOMEを参照しません。

Page 19: GlassFish v3 Q&A

解説 Windowsユーザーはさらに注意! • asenv.batに環境変数AS_SERVが定義

されていない • パスにJDKが含まれていない • JRE6以降がインストール済

(JDK同梱の公開JREを含む) →C:¥WINDOWS¥System32¥java.exe=JREを使おうとする(当然動かない)

Page 20: GlassFish v3 Q&A

Q. GlassFish v3.1はJava 7の環境で動作しますか?

Page 21: GlassFish v3 Q&A

A. 動作しません! Java 7対応済のv3.1.1以降をご利用ください。 なお、v3.1.1はJava SE 7と同日リリース(2011年7月28日)されています。

Page 22: GlassFish v3 Q&A

Q. GlassFish 4.0の管理コンソールがWebLogic風になるって、本当ですか?

Page 23: GlassFish v3 Q&A
Page 24: GlassFish v3 Q&A
Page 25: GlassFish v3 Q&A

A. 先ほどの画面はv4.0の新機能で、「PaaSコンソール」といいます。

Page 26: GlassFish v3 Q&A

解説 GlassFish 4.0では、GlassFish自身がクラウド基盤として利用できます。 「PaaSコンソール」は、GlassFishベースのクラウドを管理するためのツールです。 ★GlasFish 4.0本体のコンソールは、v2からおなじみのあのインタフェースです。

Page 27: GlassFish v3 Q&A
Page 28: GlassFish v3 Q&A

Q. Windows環境でGlassFishのクラスタを組むにはどうすればいいの?

Page 29: GlassFish v3 Q&A

A. Windowsに限って言うと、実はかなり厄介です。 (反対にSolaris/Linuxではとても簡単)

Page 30: GlassFish v3 Q&A

SSH Session

管理サーバー ノード scp

ssh

解説 まず前提として、GlassFishのSSHプロビジョニングの仕組みをおさらいしましょう。

自分自身を複製する

Page 31: GlassFish v3 Q&A

解説 GlassFishのクラスタ構成にはSSH/SCPが必須です。しかしWindowsはSSH実装を持っていません。 代替案: • Cygwin(OpenSSH) • SFU/SUA + OpenSSH • 商用SSHサーバー(Tectia Server等)

Page 32: GlassFish v3 Q&A

解説 【ここでWindowsユーザーに朗報!】 GlassFish 3.1.2 & 4.0では、 Windows環境下でDCOMをSSH/SCPの代替として使えるようになります。 もはやCygwinも商用SSHも要りません! ※j-Interopというライブラリを使います。

Page 33: GlassFish v3 Q&A

Q. コミュニティ版とOracle版(製品版)はどこが違うのですか?

Page 34: GlassFish v3 Q&A

A. ロゴと製品名を除いて、基本的には同じものです。品質にも差はありません。 【補足】GlassFishの製品名 コミュニティ版 : GlassFish Server Open Source Edition

Oracle版(製品版) : Oracle GlassFish Server

Page 35: GlassFish v3 Q&A

解説 • GlassFishはコミュニティが設計からテ

スト、リリースまですべて担当します。 • Oracleはコミュニティ版GlassFishに追

加のモジュールと有償サポートを付加して顧客に提供しています。

• コミュニティにはOracle社員も数多く参加しています。

Page 36: GlassFish v3 Q&A

解説 GlassFishのライセンスは、コミュニティ版とOracle版で全く異なります。

コミュニティ版 ※以下のどちらかを選択 • CDDL:OpenSolarisと同じ • クラスパス例外付きGPL:OpenJDKと同じ Oracle版(製品版) • 一般ライセンス:有償、サポート付き • OTN開発ライセンス:開発用途限定で無償

Page 37: GlassFish v3 Q&A

Q. なぜGlassFishよりTomcatの方が選ばれているのですか?

Page 38: GlassFish v3 Q&A

A.

そんなこと、私に聞くな!

Page 39: GlassFish v3 Q&A

解説 まあ、そういう感情論は置いておいて…

• Tomcatが長きにわたってServlet/JSPの世界を牽引してきたのは揺るぎない事実であり、数え切れない運用実績とノウハウが蓄積されています。

• Apache Licenseに基づくフリーソフトウェアのため、広く使われ、また多くの開発者が携わっているのも確かです。

Page 40: GlassFish v3 Q&A

解説 • Tomcatは開発者・ユーザーともに非常

に多く、コアの部分はJ2EEのリファレンス実装に採用されていた時期もあります。

• 以上の経緯から「Tomcatは長い歴史を持つ、安定したサーバーである」という認識がほぼ定着しています。

Page 41: GlassFish v3 Q&A

ところが、昨今のTomcatを見ていると、そうとも言えないんだな、これが…

Page 42: GlassFish v3 Q&A

解説 TomcatとGlassFishの間には、製品の品質に関して考え方に大きな違いがあります。

Page 43: GlassFish v3 Q&A

解説 Tomcatのコンポーネントには、安定した実装、中途半端な実装、実験的な実装があります。 【問題点】 • Tomcatは正式リリースであっても、こ

れらが混在しています。 • 中途半端な実装や実験的な実装につい

て安定した実装と明確に区別しないこともあります。

Page 44: GlassFish v3 Q&A

解説 Tomcatの中途半端or実験的な実装の例 • コネクションプール • クラスタ機能

Tomcat 6系までは代表的な「実験的」実装。Tomcat 7系では?

• NIOコネクタ、ノンブロッキングI/O Grizzlyとの間にはいまだ越えられない壁が…

• バルブ 実装そのものは安定。ただし、比較的新しい機能なのに早速、将来削除の方向に…

Page 45: GlassFish v3 Q&A

解説 GlassFishのコンポーネントは、リリース時には安定した実装しか含まれません。 リリースまでに安定しない実装は次期リリースに先送りされたり、あるいは削除されることもあります。

※上記の品質管理方針のため、GlassFishはリリース直後の段階でかなり高い品質を誇ります。

Page 46: GlassFish v3 Q&A

解説 GlassFishの中途半端or実験的な実装の例 • v3のクラスタ機能:v3.1に先送り

「v3は商用では使えない」という悪評が… • v3の新管理コンソール:中止 • 動的言語サポート:縮小傾向

プロジェクトの体力の問題で機能・品質を維持できない。

• GlassFish 3.2 :計画中止 成果はv4.0(一部v3.1.2)に引き継がれた。

Page 47: GlassFish v3 Q&A

Q. GlassFishでわからないことがあったら、どこに質問すればいいですか?

Page 48: GlassFish v3 Q&A

A. 周りに詳しい方がいればその方に質問するのが手っ取り早いです。

※しかし、そのような恵まれた環境に置かれている方々は残念ながら少数派です。 そこで私たちはMLを用意しています。

Page 49: GlassFish v3 Q&A

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]