Archive for 5月, 2008

データセンターでインストールも楽なGlassFish Enterprise Server




そういえば、ふと紹介していなかったのを思い出したので、

今日はコンソールベースでGlassFishをインストールする方法を紹介します。



Sun GlassFish Enterprise Server(Sun Java System Application Server)の

インストーラはデータセンターでインストールする時(GUIが使えない環境)も

インストールがもかんたんです。



インストール時に-consoleオプションを指定してください。




> ./sjsas_ee-9_1_02-solaris-sparc-ml.bin -console

Checking available disk space…

Checking Java(TM) 2 Runtime Environment…

Extracting Java(TM) 2 Runtime Environment files…

Extracting installation files…

Launching Java(TM) 2 Runtime Environment…

Java Accessibility Bridge for GNOME loaded.





You are running the installation program for Sun Java System Application Server

with HADB. This program asks you to supply configuration preference settings

that it uses to install the server.



The installation program consists of one or more selections that provide you

with information and let you enter preferences that determine how Sun Java

System Application Server with HADB is installed and configured.



When you are presented with the following question, the installation process

pauses to allow you to read the information that has been presented. When you

are ready, press Enter to continue.



……………………………………..

Please contact Sun Microsystems, Inc. 4150 Network Circle,

Santa Clara, California 95054 if you have questions.



If you have read and accept all the terms of the entire Software License

Agreement, answer ‘yes’, and the installation will continue.



If you do not accept all the terms of the Software License Agreement, answer

‘no’, and the installation program will end without installing the product.



Have you read, and do you accept, all of the terms of the preceding Software

License Agreement [no] {“<" goes back, "!" exits}? Yes



The Sun Java System Application Server with HADB components will be installed

in the following directory, which is referred to as the “Installation

Directory”.To use this directory, press only the Enter key. To use a different

directory, type in the full path of the directory to use followed by pressing

the Enter key.



Installation Directory [/opt/SUNWappserver] {“<" goes back, "!" exits}: /opt/SUNWappserver


The directory “/opt/SUNWappserver” does not exist.





Do you want to create it now or choose another directory?



1. Create Directory

2. Choose New



Enter the number corresponding to your choice [1] {“<" goes back, "!"

exits} 1



Please choose components.



Do you want to install Node Agent [yes] {“<" goes back, "!" exits}? yes

Do you want to install High Availability Database Server [no] {“<" goes

back, “!” exits}? yes
Do you want to install Load Balancing Plugin [no] {“<" goes back, "!"

exits}? no

Do you want to install Domain Administration Server [yes] {“<" goes back,

“!” exits}? yes

Do you want to install Sample Applications [yes] {“<" goes back, "!" exits}? yes

Java Configuration



The Sun Java System Application Server requires a Java 2 SDK.

Please provide the path to a Java 2 SDK 5.0 or greater.



1. Install Java 2 SDK (5.0)

2. Reuse existing Java 2 SDK

3. Exit



What would you like to do [1] {“<" goes back, "!" exits}? 1

Supply the admin user’s password and override any of the other initial

configuration settings as necessary.

Admin User [admin] {“<" goes back, "!" exits}: admin

Admin User’s Password (8 chars minimum):[********]

Re-enter Password: [********]

Master Password will be used as SSL certificate database password.

Master Password (8 chars minimum):[********]

Re-enter Master Password:[********]

Admin Port [4848] {“<" goes back, "!" exits}:

HTTP Port [8080] {“<" goes back, "!" exits}:

HTTPS Port [8181] {“<" goes back, "!" exits}:



Please choose installation options.

Do you want to enable Updatecenter client [yes] {“<" goes back, "!" exits}? yes

Do you want to upgrade from previous Application Server version [no] {“<"

goes back, “!” exits}? no

Checking disk space…





The following items for the product Sun Java System Application Server with

HADB will be installed:



Product: Sun Java System Application Server with HADB

Location: /opt/SUNWappserver

Space Required: 462.04 MB

—————————————————–

Java 2 SDK, Standard Edition 5.0

Uninstall

Sun Java System Message Queue 4.1

Application Server

Sample Applications

High Availability Database Server

High Availability Database Administration Client

Startup





Ready to Install



1. Install Now

2. Start Over

3. Exit Installation



What would you like to do [1] {“<" goes back, "!" exits}? 1



Installing Sun Java System Application Server with HADB



|-1%————–25%—————–50%—————–75%————–100%|



Installation Successful.



Next Steps:



1. Access the About Application Server 9.1 welcome page at:

file:///opt/SUNWappserver/docs/about.html



2. Start the Application Server by executing:

/optSUNWappserver/bin/asadmin start-domain –user admin domain1



3. Start the Admin Console:

https://localhost:4848



4. Access sample applications:

http://localhost:8080/samples/index.html





Please press Enter/Return key to exit the installation program. {“!” exits}

Deleting temporary files…

>





また、https://glassfish.dev.java.netからダウンロードしたGlassFishのインストールも

同様にコンソールオプションを使用してインストールができます。




> java -Xmx256m -jar glassfish-installer-v2ur2-b04-darwin-ml.jar -console

COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0



1. Definitions.



1.1. Contributor. means each individual or entity that creates or

contributes to the creation of Modifications.



1.2. Contributor Version. means the combination of the Original

Software, prior Modifications used by a Contributor (if any), and the

Modifications made by that particular Contributor.



1.3. Covered Software. means (a) the Original Software, or (b)

Modifications, or (c) the combination of files containing Original

Software with files containing Modifications, in each case including

portions thereof.



1.4. Executable. means the Covered Software in any form other than

Source Code.



(省略)……………………………………………………………………………………………..

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………

…………………………………………………………………………………………………………



As a special exception, the copyright holders of this library give you

permission to link this library with independent modules to produce an

executable, regardless of the license terms of these independent

modules, and to copy and distribute the resulting executable under

terms of your choice, provided that you also meet, for each linked

independent module, the terms and conditions of the license of that

module.? An independent module is a module which is not derived from

or based on this library.? If you modify this library, you may extend

this exception to your version of the library, but you are not

obligated to do so.? If you do not wish to do so, delete this

exception statement from your version.



Accept or Decline? [A,D,a,d] a

glassfish

glassfish/docs

glassfish/docs/css

glassfish/docs/de

glassfish/docs/de/css

glassfish/docs/de/figures

glassfish/docs/de/graphics

glassfish/docs/es

glassfish/docs/es/css

glassfish/docs/es/figures


(省略)……………..

…………………………

…………………………

…………………………


glassfish/updatecenter/LICENSE.txt

glassfish/updatecenter/README

glassfish/updatecenter/registry/SYSTEM/local.xml

installation complete





2008年5月30日 at 3:40 AM コメントする

Hudsonを使ったアジャイルな開発入門








以前、Hudsonについて私のブログでもで紹介しましたが、

その後、Hudsonが今年のJava One 2008 サンフランシスコで

Duke Choice Award
受賞したことはご存知の方も多いことでしょう。



また、今日アクエリウム
でも報じられましたが、Hudsonの開発者である

川口さんついにHudsonを専業で開発できるようになったようですね。



Hudsonは開発の現場を変えることのできるツールです。

是非、皆様も試してみてくださあい。



そんな川口さんから、直接Hudsonについて日本語で説明されている記事が下記にあります。

是非、皆様下記の特集を読んでHudsonを使って開発効率をあげましょう!!



技術評論社 特集:「Hudsonを使ったアジャイルな開発入門」



川口さんの日本語ブログはこちら


2008年5月30日 at 1:30 AM コメントする

John Gage氏来日中




JavaOneの顔でありJavaOneのホスト役であるJohn Gage氏が現在、来日しています。

今回の目的は、明日5月29日(木)から「ザ・プリンス パークタワー東京」で開催される

グリーンIT国際シンポジウムでの発表が目的なのですが、少しだけ時間が取れたようで

御会いすることができました。















Sun Microsystems Inc.の創設メンバーの一人として長くSunを導いてきた方であり、

JavaOne会場の壇上でいつもプレゼンターを勤めるあの御方とこんな距離で

御会いできるとは思ってもみなかったので、今日は朝からかなりハイテンションでした。


2008年5月28日 at 12:15 AM コメントする

バグを見つけてGlassFish Award Program(GAP)へ登録しよう!!




先日、塩田さんからGlassFish Award Program(GAP)について詳しく説明して頂きました。



丁度その矢先にGAPの事務局の一人から下記のようなメールをもらいました。



これは以前、私がGlassFishのバグを登録していたのですが、

そのバグが修正され、GlassFishの質の向上につながったので、

GAPに応募しないか?という内容でした。


私はSunの社員なのでこのGAPには応募はできないのですが、

もし、GlassFishのバグを見つけたという方がいらっしゃいましたら、

是非、バグ登録をしてGAPにご応募ください。




I have been doing some digging in the issues filed recently (and mostly fixed)
against GlassFish.

You’re receiving this email because you’ve submitted a bug which led to a fix
which in turn improved GlassFish or one of its sub-projects.



I’d like to remind you that we’re running the GAP
(GlassFish Awards Program – http://glassfish.org/GAP) and that as part of
it we’re rewarding valuable bug reports.



Since you’re receiving this (and you are not a Sun employee), you are most likely eligible.

So, please feel free to send an email to with
your name and a reference to the bug report you’d like to compete with.


Of course, we’d love to have more valuable reports (say for the recent v2ur2 or v3),
so now is a good time to actually file that annoyance or serious issue you’ve been
working around for a while.




バグは見つけているんだけど、英語になおすのはちょっとという方は

まずは、日本のコミュニティのメーリングリスト(グラジェーや、

discuss_ja@glassfish.dev.java.net メーリングリスト
)に参加し日本語で報告ください。



GlassFishコミュニティは日本ユーザの皆様の御参加を御待ちしております!!


2008年5月26日 at 7:00 PM コメントする

JavaOne 2008 報告会開催




大渕さんのブログでもアナウンスされていますが、

今月末の5/31(土)にJavaOne 2008 報告会がSunの

神宮前オフィスで開催されます。

昨日の夕方に登録開始して既に130名以上の登録が

あるようです。



何名で定員締め切りか私もしらないのですが、

現時点でまだ、申し込みが可能でしたので、

御時間に都合がつく方は是非御参加下さい。



Masako Ofuchi’s Weblog
登録〆切迫る – JavaOne 2008 報告会 -



● 参加のお申し込みはこちらから



PS.

当日、私も受付を行っております。

皆様の御来場を御待ちしております。(^_^)


2008年5月23日 at 2:35 AM コメントする

Grizzlyの概要 2 : Java New I/Oで実装されたサーバ




さてさて、今日も引き続きGrizzlyを説明したいと思いますが、

その前に、やはりJava New I/Oについて理解して頂かなければ

本当の意味でGrizzlyを理解していただけませんので、Grizzlyの

ソースコードを追う前にJava New I/Oについて簡単に復習して

おきたいと思います。

ただし、ここではほんの概要程度の説明ですのでちゃんと

理解されたい方は別途Java NIOについて説明されている記事を

読んで理解してください。


※ 本エントリの一番最後にJava New I/Oを学ぶことができる

  参考URLを示しています。



Java New I/Oでノンブロッキングサーバの実装:



前回、Java New I/Oを使って実装されたサーバは、今までの

マルチスレッド型のBlocking I/Oを使用して実装されたサーバより

新規スレッドを作成する必要がなくスレッド数を少なくすることが

できると説明しましたが、では具体的にどのようにして実装されているかを

説明致します。







まず、Non Blocking I/Oを理解する上で必要なJava New I/OのAPIを紹介します。



チャネル:


チャネルとは、ハードウェアデバイス、ファイル、ネットワークソケットのほか、

個別の入出力操作を実行できる接続を表します。

Non Blockingにできるチャネルは、java.nio.channels.SelectableChannelクラス

継承したサブクラスで、java.nio.channels.SocketChannel

java.nio.channels.ServerSocketChannelクラスがあります。

このクラスのインスタンスメソッドで、configureBlocking(false)を

実行するとチャネルをNon Blockingモードに調整することができます。



例えば、ServerSocketChannelを使ってチャネルをノンブロッキングモードに

する為には下記のようにserverChannel.configureBlocking(false)を記載します。









selector = Selector.open();
serverChannel = ServerSocketChannel.open();
serverChannel.configureBlocking(false);
serverChannel.socket().bind(new InetSocketAddress(SERVER_PORT));
serverChannel.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select() > 0) {
for (Iterator it = selector.selectedKeys().iterator(); it.hasNext();) {
SelectionKey key = (SelectionKey) it.next();
it.remove();
if (key.isAcceptable()) {
doAccept((ServerSocketChannel) key.channel());
} else if (key.isReadable()) {
SocketChannel channel = (SocketChannel)key.channel();
doRead(channel);
}
}
}




serverChannelというチャネルをNon Blockingモードに設定した後、

Selectorのインスタンス selector に対してregister(登録)します。

実はこの行がJava New I/Oの中でとても重要な箇所です。



今までのマルチスレッド型のサーバの場合、java.net.ServerSocket.accept()メソッド

を呼び出してソケットのアクセプト処理を行っていましたが、Java New I/Oでは

java.nio.channels.ServerSocketChannel.accept()メソッドでアクセプト処理を行います。

この際、ServerSocketChannel.accept()メソッドはNon Blockingモードに設定されている場合、

保留されている接続がない場合、直ちにnullを返します。

つまりServerSocket.accept()のように新たなクライアントからの接続がくるまで

待ち続けることはありません。



しかし、クライアントからの接続を待たないということはサーバ側ではどのタイミングで

アクセプト処理を行えばよいのかが分からなくなります。

そこで、利用できるチャネル(接続)を取得する為にセレクタ(Selector.select())を使用します。

チャネルをセレクタに登録しておき、セレクタの中で利用できるようになったチャネルを

SelectionKeyとして取得して入出力操作を行うことができます。

セレクタには、複数のチャネルを登録することもでき、

複数の入出力操作を同時に行うことができるようになります。



例えば、下記にかんたんなエコーサーバをJava NIOを使用して

作成してみましたが、下記ではクライアントからの接続毎に

スレッドを生成していないことが御分かりいただけるかと思います。

また、マルチスレッド型のサーバのようにコネクション毎に新規スレッドを

生成していないことがわかります。



例:Java New I/Oで実装したサンプルエコーサーバ







import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.util.Iterator;
public class NonBlockingServer {
private static final int SERVER_PORT = 8888;
private static final int BUF_SIZE = 2000;
private Selector selector;
public static void main(String[] args) {
NonBlockingServer nserver = new NonBlockingServer();
nserver.start();
}
public void start(){
ServerSocketChannel serverChannel = null;
try {
selector = Selector.open();
serverChannel = ServerSocketChannel.open();
serverChannel.configureBlocking(false);
serverChannel.socket().bind(new InetSocketAddress(SERVER_PORT));
serverChannel.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select() > 0) {
for (Iterator it = selector.selectedKeys().iterator();
it.hasNext();) {
SelectionKey key = (SelectionKey) it.next();
it.remove();
if (key.isAcceptable()) {
doAccept((ServerSocketChannel) key.channel());
} else if (key.isReadable()) {
SocketChannel channel = (SocketChannel)key.channel();
doRead(channel);
}
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
private void doAccept(ServerSocketChannel serverChannel) {
try {
SocketChannel channel = serverChannel.accept();
channel.configureBlocking(false);
channel.register(selector, SelectionKey.OP_READ);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
private void doRead(SocketChannel channel) {
ByteBuffer buf = ByteBuffer.allocate(BUF_SIZE);
Charset charset = Charset.forName(“UTF-8″);
try {
if (channel.read(buf) < 0) {
return;
}
buf.flip();
System.out.print(
charset.decode(buf).toString());
buf.flip();
channel.write(buf);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}




このように、Java New I/Oを使用して作成されたサーバは、接続毎に

新規スレッドを作成しなくてもよくなるため、既存のサーバ実装とは

特に大量のアクセス等が発生した際に大きな差がでてきます。

例えば、メモリの消費量も少なくて済むので高負荷時になればなるほど

使用するサーバリソースが大きく変わってくるかと思います。



次回は、Grizzly 1.0.19のソースコードを読む際にどこから見ていけばよいのか、

また、Grizzly 1.0.19の中でどのようなクラスが重要なのか等

ソースコードを見るために必要な情報を紹介したいと思います。



※  Grizzlyのソースコードを読む前に、上記のSelector,SocketChannel

  ServerSocketChannel,SelectionKey等のクラスを理解しておいてください。



Java New IOの参考記事へのURL:



● 横河電機の櫻庭さんによるIT Proの記事「New I/Oで高速な入出力」

● TECHSCORE (5. ノンブロッキングチャネル)


2008年5月23日 at 12:05 AM コメントする

SDC 連載記事 第3回:クラスタと負荷分散 (1)




SDC SQUARE 2008年5月号がリリースされました。

JavaOneのレポートの他、4月に開催されたイベントの情報も記載されています。

CommunityOne + 2008 JavaOne Conference テクニカルレポート

4 月開催のイベントレポート



また、GlassFish連載記事では第3弾として「GlassFishのクラスタ構成や負荷分散」

について、私の所属するグループの吉田さんにとても詳しく書いて頂いています。

  #GlassFishを複数台のマシンで構成する場合、どのようにして設定情報等を

  #共有するのかについて詳しく説明されていますので、是非一度御確認ください。

  ■ SDCのGlassFish連載記事 第3回:クラスタと負荷分散(1)



ちなみに、吉田さんには高橋さん岡崎さんと共に来月のイベントに登壇いただく予定です。

(私もしゃべるかも?!)

イベントの開催日時:2008年06月12日(木)

イベント情報:IT サービス設計の新しい方法論



また、SDCの連載記事ではGlassFish以外にも新しい技術が紹介されています。

『今月も片貝さんかな?!』によるNetBeans:第4回:ソースコードのバージョン管理

町田さんによるSun SPOT:第4回:入出力ポートにセンサーやアクチュエータを取り付けてみよう

の記事もありますので、是非ご覧ください。


2008年5月21日 at 12:00 AM 2件のコメント

過去の投稿


ご注意

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

JavaOne

カレンダー

2008年5月
« 4月   6月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

Twitter

  • この少年のスピーチはとても素晴らしかった。彼の中で脳内革命がおこり、成果が出るまで色々な葛藤をして結果をだしたんだろう。彼は恐らく本質が何なのかが分かっているのだろうし、この結果を元にさらなる夢を持っている。素晴らしい。 fb.me/2n8U84clf 20 hours ago
  • JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG) fb.me/1iiGmrowJ 1 day ago
  • 川向さんや、記事の中にも出てくるマーケの方がいなければ、実現できていなかっただろうなぁ。皆様に感謝。 fb.me/38mNd12Mm 1 day ago
  • へぇ。今日は、因島でこんなのやるんだ。 rurubu.com/season/summer/… fb.me/6I8eLmlaC 3 days ago
  • ミーティング終了。ありがとうございました。 3 days ago

clustermap

ブログ統計情報

  • 533,755 hits

Feeds


フォロー

新しい投稿をメールで受信しましょう。

現在3,458人フォロワーがいます。