Sun Java System Web Server 7 TP Install

今回は、SJS Web Server 7.0のインストールを行いたいと思います。
1. プロダクトの入手
まずは、下記よりSJS Web Server 7.0 Technology Preview 1を入手してください。
SJS Web Server 7.0
Technology Preview 1版の入手

上記より入手可能なファイルは下記になります。
sjsws-7.0_2006Q1-b44.2-solaris-sparc.tar.gz
今回、私は本ドキュメントを記述するため、上記より若干新しいバイナリ(2006Q1-b46.1)
を入手し検証を実施しています。
2. ファイルの展開とsetupの実行
ファイルを入手した後、下記を実行してください。


# gzip -dc sjsws-7.0_2006Q1-b44.2-solaris-sparc.tar.gz | tar xvf –
…..
…..
# ls -F
3RD-PARTY-LICENSE.txt
LICENSE.txt
README.txt
WebServer/
setup*
# ./setup

3. setupの実行画面
setupを実行すると下記の画面が表示され「次へ」ボタンを押下します。

4. ソフトウェアライセンス使用許諾契約画面
ソフトウェアライセンス使用許諾契約画面で、ライセンス契約書の条項に同意し、
「はい」ボタンを押下します。

5. インストールディレクトリの選択画面
インストールディレクトリの選択画面で、インストールディレクトリを指定し
(デフォルトで/sun/webserver7)「次へ」ボタンを押下します。

インストール先のディレクトリが存在しない場合、ディレクトリを作成します。

6. インストールのタイプ選択画面
インストールのタイプ選択画面にて、インストール方法を選択します。
今回は、クラスタ構成を組むため「カスタム」を選択し「次へ」ボタンを
押下します。

7. コンポーネントの選択画面
次に、インストールするコンポーネントを選択します。デフォルトでは
「サンプルアプリケーション」は選択されていませんが、今回は「すべて選択」ボタンを
押下し、すべてのコンポーネントをインストールします。

8. Java設定画面
次に、Java設定画面にてJava 2 SDK ,Standard Editionをインストール・設定します。
今回は、Web ServerにバンドルされているSDKをインストールします。

9. 構成のタイプの設定画面
次に構成タイプを選択します。
ここで、構成について説明します。
Web Server 6.1までは、同一の設定情報を持つWebサーバを構築するために、
それぞれのWebサーバ管理画面にて、同じ設定を各サーバ毎に設定しなければ
なりませんでした。
しかしWeb Server 7.0からは「管理サーバ」「管理エージェント」という
構成タイプに分かれ、複数の管理エージェントを単一の管理サーバから設定可能に
なりました。管理サーバから設定を行うとJMX経由で管理エージェントに対して
設定が施されるようになっています。
例えば、あるWeb Applicationをデプロイしたい場合、WS 6.1まではそれぞれの
管理画面よりデプロイの処理を実施しなければなりませんでしたが、WS 7.0からは
単一の管理画面よりすべての管理エージェントに対して同一のアプリをデプロイ可能
になっています。

ここでは、構成のタイプの設定画面にて、「管理サーバ」を選択し「次へ」ボタンを
押下します。

10. 管理サーバ設定画面
管理サーバ設定画面にて下記を入力し、「次へ」ボタン
を押下します。

11. Web Serverインスタンス設定画面
Web Serverインスタンス設定画面にて、デフォルトで作成されるインスタンスの
設定を行います。「次へ」ボタンを押下します。
(ここで作成するインスタンスは後で削除するため、デフォルトの
 設定のままで設定を行います。)

12. インストール準備画面
以上で、インストールの準備が完了いたしました。「今すぐインストール」ボタンを
押下し、インストールを行います。

13. インストール画面
インストール中は下記の画面が表示されます。

14. インストール完了画面
インストールが正常に完了すると下記の画面が表示されます。

15. 管理サーバの起動
ここで管理サーバを起動します。下記のメッセージが出力された後、
ブラウザより「https://jse8-026:8989」にアクセスし、
正常に管理サーバが起動されていることを確認します。

jse8-026> /sun/webserver7/admin-server/bin/startserv
Sun Java System Web Server 7.0 B06/18/2006 10:03
info: CORE3016: daemon is running as super-user
info: CORE5076: Using [Java Hotspot(TM) Server VM, Version 1.5.0_06] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [admin-server] at [/admingui]
info: WEB0100: Loading web module in virtual server [admin-server] at [/jmxconnector]
info: HTTP3072: admin-ssl-port: https://jse8-026:8989 ready to accept requests
info: CORE3274: successful server startup
jse8-026>

正常に管理サーバが起動されている場合、下記のログイン画面が表示されます。

16. 管理エージェントのインストール
次に、もう一台のマシン(jse8-027)に管理エージェントとしてWS 7.0をインストールします。管理エージェントのインストールは、管理サーバのインストール手順の
「1. プロダクトの入手」~「7. Java設定画面」までは同様の手順にて実施します。
「7. Java設定画面」の設定が完了すると、「構成のタイプの設定画面」にて
「管理インスタンスを管理エージェントとして設定する」を選択し「次へ」ボタンを
押下します。

17. Administration Agent Settings画面
管理エージェントの設定画面にて下記を入力し、「次へ」ボタンを押下します。

18. インストール準備完了画面
以上で、インストールの準備が完了いたしました。「今すぐインストール」ボタンを
押下し、インストールを行います。

19. 管理エージェントの起動
インストールが正常に完了した後、管理エージェントのプロセスを起動します。
jse8-027> /sun/webserver7/admin-server/bin/startserv
Sun Java System Web Server 7.0 B06/18/2006 10:03
warning: CORE1251: On HTTP listener admin-ssl-port, server name jse8-027 does not match subject “jse8-026” of certificate Admin-Server-Cert.
warning: CORE1250: In secure virtual server admin-server, host jse8-027 does not match subject jse8-026 of certificate Admin-Server-Cert.
info: CORE3016: daemon is running as super-user
info: CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.5.0_06] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [admin-server] at [/jmxconnector]
info: HTTP3072: admin-ssl-port: https://jse8-027:8989 ready to accept requests
info: CORE3274: successful server startup
jse8-027>

20. 管理サーバのデフォルトのインスタンスの削除
最後に、管理サーバにインストール時にデフォルトで作成される
インスタンスを削除します。下記のコマンドを実行して下さい。

jse8-026> ./wadm –user=admin
admin-user-password を入力してください> adminadmin(←実際は非表示)
Sun Java System Web Server 7.0 B06/18/2006 10:03
wadm> delete-instance –config=jse8-026 jse8-026
CLI201 コマンド ‘delete-instance’ は正常に実行されました
wadm> delete-config jse8-026
CLI201 コマンド ‘delete-config’ は正常に実行されました

以上で、管理サーバ、管理エージェントのインストールが完了いたしました。
現時点では、管理サーバ・管理エージェントが存在するだけで、インスタンスが
存在しません。
そこで次回は、クラスタ環境の構築、クラスタ環境の検証用のアプリを使用した
高可用性の検証を行います。

2006年6月21日 at 8:30 午前

Sun Java System Web Server 7 Technology Preview

本日から数回に分けて、次期 Web Serverである、
Sun Java System Web Server 7の新機能について
まとめてみたいと思います。
Sun Java System Web Server 7は現在、テクノロジー
プレビュー版として下記のURLより入手が可能です。
機能検証等を目的として御自由に御試し頂ければと思います。

SJS Web Server 7 Technology Preview版 入手先

今回、SJS Web Server 7では非常に多くの新機能が盛り込まれています。
下記に、新機能の一覧を示します。


  • JMX Based Management Infrastructure
  • Redesigned Administration Server Interface
  • Command-Line Interface Support
  • N1 Grid Container (Service Provisioning Support)
  • Consolidated Configuration Files
  • Java Servlet 2.4 and Java Server Pages (JSP) 2.0 Support
  • JavaServer Pages Standard Tag Library (JSTL) 1.1 and Java Server Faces 1.1 Support
  • JNDI Support
  • Java Database Connectivity and Connection Pooling Support
  • Java SE 5.0 Support
  • JavaWeb Services Developer Pack 2.0
  • Session Replication Support
  • Extensive Real-Time Monitoring Support
  • Integrated Reverse Proxy Plug-in and FastCGI Plug-in Support
  • Enhanced Security
  • Elliptic Curve Cryptography
  • NetBeans 5.0 Support
  • Sun Java Studio Enterprise Support

このように、非常に多くの機能が盛り込まれていますが、
Web Server 6.1から7にかけて、特に大きな変更は、
Session Replicationの機能がサポートされたことです。
今までは、Session Replicationの機能がなかったため、
Webサーバだけで高可用性を実現することはできませんでした。
そこで、EJBコンテナを利用しないWebアプリケーションでも
高可用性を実現するためだけにApplication Serverを
導入された方も多いかと思います。
今後、EJBを使用しないWebアプリケーションで高可用性を
実現したい場合、Webサーバで可能になります。
下記に、WebサーバとApplication Serverの比較を記述いたします。






Web Server 6.1Web Server 7.0Application Server 8.x EE
高可用性有(On Memory)有(HADB)
Servlet,JSPServlet 2.3,JSP 1.2Servlet 2.4,JSP 2.0Servlet 2.4, JSP 2.0
EJB ContainerEJB 2.1
実行環境32bit/64bit32bit/64bit32bit




※ WebサーバとApplication Serverで高可用性を
実現する方法が異なります。共有するセッション情報の保存先として
Application Serverでは外部 Data Base(High Availability Data Base[HADB])を
使用しますが、Webサーバではメモリを使用します。
HADBによるセッション保持
SJS Application Serverでは高可用性を実現するために、HADBを使用します。
HADBはApplication Serverのプロセスとは独自にDB用のプロセスが存在します。
そこで、Application Serverの再起動等が発生してもセッション情報がHADBに
格納されているため、Application Serverの再起動後にそのまま同一セッション
を利用可能です。そのため高可用性を実現するためにはHADBの方がより優れています。
メモリによるセッション保持
WS 7.0では高可用性を実現するために、メモリを使用します。
そこで、すべてのWSが再起動された場合、保持していたセッション情報がすべて
クリアされ再度セッションを確立しなければなりません。
多くのWeb Applicationの場合、高可用性を実現するために、メモリ上に
保持しておくだけで十分です。またセッション情報をDBに格納(ディスクアクセス)する
よりメモリ上で格納する方がより軽量ですみます。
しかし、エンタープライズ向けのミッションクリティカルなWeb Applicationの場合、
あらゆる障害や管理面を想定しHADBを御利用頂ければと思います。
次回から、Web Server 7のインストール方法、
Session Replicateの設定方法を説明します。

2006年6月20日 at 11:50 午後

NetBeans 5.0 Official Release

NetBeans 5.0がリリースされました。

http://www.netbeans.org

この製品中には弊社の最新のアプリケーションサーバである、

Sun Java System Application Server 8.2がバンドルされたことをはじめとして

Weblogic 9やJBoss4もサポートされています。



また、開発において重要なファクタであるエディタも拡張されており

キーマップの変更もNetBeans4.1に比べると容易にできるようになりました。



変更点の詳細については下記のURLを御参照ください。

http://www.netbeans.org/community/releases/50/index.html




NetBeans5.0の起動画面は下記となります。





またデスクトップに生成されるアイコンも少し変更されました。



下記はJSFのコードを入力する際のナビゲーションの例です。


最後に少し触ってみた感想を書きます。



NetBeans5.0でJSFのアプリケーションを作成するプロジェクトを

作成してみました。

Fileメニューより [New Project] → [Web] → [Web Application]にて

プロジェクトを作成していきます。必要項目に入力に[Next]ボタンを押下すると、

下記の画面のようにフレームワークを選択する画面が生成されます。

下記の画面で[JSF]を選択し[Finish]を押下するとJSF用のプロジェクトが

生成されます。







ここで、プロジェクト中のファイルを確認するとJSFアプリケーションの作成に必要な

web.xml等が自動的に生成されていました。faces-config.xmlについては中身

(の定義のみ記述)が空のファイルが生成されていました。



NetBeansでJSFアプリケーションを構築したい場合、基本的には全て自分で

作成・設定をする必要があります。つまりどちらかというと玄人向の製品に

仕上がっています。



Creatorと比較すると、Creatorでは新規JSPのページを作成する場合、対応する

バッキングビーンとなるJavaクラスが自動的に生成され、faces-config.xmlにも

設定されます。

この辺りは、素人の方に対しては開発の敷居を非常に低くしてくれます。

しかし、逆にCreator2の仕様に縛られるため余分なファイルやコードが生成されます。



一方、NetBeansでJSPファイルを新規生成してもバッキングビーンの自動生成や

faces-config.xmlに対する自動追加設定は行われません。

しかし、余分なファイルやコードを取り除くことができます。



どちらが優れているかというのを申し上げることは困難なのですが、

ケースバイケースで製品を使い分けていただければと思います。



おそらく、デモのWebアプリを作成する場合、Creatorで雛形を生成すると

一からの手書きやNetBeansでの作成の場合に比べて格段に早くアプリを生成する事が

できるようになると思います。



仮に余分なコードやクラスを削除したいという御要望がある場合は、

NetBeans5.0でCreatorのプロジェクトをインポートし余分なコードを削除することで

全体のコードがすっきりとするかと思います。



NetBeans5.0には面白い新機能がたくさん含まれていますので、

是非、御使いいただければと思います。

2006年2月2日 at 9:30 午後

Application Server 8.2 Platform Edition Release

Application Server 8.2 PEが正式リリースされていました。


Application Server 8.2を御使用される場合は、

下記より御入手いただくか、開発者の方でNetBeans5.0を御使用の方は

バンドルされますので、NetBeans5.0の正式リリースまで

今暫く御待ちください。

[Application Server 8.2 PEの入手先]

http://java.sun.com/j2ee/1.4/download.html



8.1→8.2での主な変更点は下記の通りです。


*パフォーマンスの改良
– Sun Fire T2000(Niagara Chip)に対応したコードの修正(2005/12に世界記録樹立)
– Deployにおけるパフォーマンスフィックス
*追加された特徴
– Red Hat 4.0への対応
– モニタリングフレームワークの追加
– パッチの自動取得
– ポイントベースのDBに変わりDerby(10.1.1)の組み込み
*8.1上で発生したバグフィックス

2006年1月31日 at 2:35 午前

Creator2 正式リリース


さて、久しぶりのアップデートになりますが、
本日、Sun Java Studio Creator 2 が正式リリース致しました。
もちろん、FREEで御使用いただけます。
Creator2 EA版を御使用いただいた方には既にご存知のことと思いますが、
MyFaces等に含まれていた、ファイルアップロードやカレンダー等の
コンポーネントも標準で含んでいるため、より容易にJSFアプリケーションの
開発ができるようになっています。
  #Creator2の使い方は本ブログにもアップしていますので、
  #どうぞ御参考にしていただければと思います。
また、日本語にも対応しておりますので、今までEA版を御使用されていた方は
是非、最新のCreator2の御入手を御検討ください。
最後に、NetBeans5.0ももう直ぐで正式リリースされる予定です、
このNetBeans5.0ではApplication Server9.0 PE版
(コードネーム:glassfish)がバンドルされる予定です。
これも非常に楽しみなIDEで正式リリースが非常に楽しみです。


Available Free!
Sun Java Studio Creator 2 makes visual web application and portlet development easy.


2006年1月25日 at 6:30 午前

Creator2でJSF Fileuploadアプリケーション


さて本日は、Creator2 EAを使用したファイルアップロードWebアプリケーションを
作成します。
まず、今までと同様新規プロジェクトを作成し下記の画面を作成してください。

ここで”アップロード”ボタンを押下します。
すると、”button1_action()”メソッドを実装する画面が表示されますので
下記のコードを記述します。
下記はファイルサイズを取得し1M未満のファイルであれば、
Applicationサーバが動作するマシンの”c:\tmp”ディレクトリにファイルを出力する
コードです。
(ただし、下記はファイルアップデートサンプルを記述するために、
 かなり手抜きに書いています。例:日本語ファイル名のファイルをアップロードした
 場合、下記はサーバ側でファイル名が文字化けします。)
 下記で重要な点は、fileUpload1というインスタンス変数を使用し
 アップロードされたファイルの操作を行うということです。

public String button1_action() {
UploadedFile upFile = fileUpload1.getUploadedFile();
//ファイルサイズの取得(バイト)
long fileSize = upFile.getSize();
if(fileSize <= 1048576){ //1M以下ならOK
//オリジナルファイル名の取得
String origFileName = upFile.getOriginalName();
//バイト配列の取得
byte[] data = upFile.getBytes();
try{
//オリジナルファイル名で書き込み
FileOutputStream fout = new FileOutputStream("c:\\tmp\\" + origFileName);
fout.write(data);
fout.flush();
fout.close();
}catch(IOException ioe){
return "error"; //エラーページへ
}
}else{
return "sizeerror"; //エラーページへ
}
return null;
}

上記の他、UploadedFileクラスのインスタンスメソッドには
下記のようなメソッドがあります。例えばコンテントタイプを取得し型に応じた処理を
行う場合にはgetContentType()メソッドを使用します。
また、取得するデータはgetBytes()メソッドの他、InputStreamを利用して
取得することも可能です。

//コンテントタイプの取得
String contentType = upFile.getContentType();
if(contentType.equals(“text/plain”)){
String stringData = upFile.getAsString();
//文字列処理を記述
}
try{
//InputStreamの取得
InputStream inStream = upFile.getInputStream();
}catch(IOException ioe){
return “error”; //エラーページへ
}

如何でしょう?
ファイルアップロードのWebアプリケーションも非常に簡単に作成できることが
御理解いただけたかと思います。

2005年12月14日 at 12:45 午前

Apache Derby DatabaseをJava Enterprise Systemへ

先日、弊社よりopen sourceのApache Derby Databaseを

Java Enterprise SystemやNetBeans5.0(次期Java統合開発環境)の

プラグインとして組み込まれることが正式に発表されました。

NetBeans5.0(Beta)ではメニューよりアップデートセンターへ問い合わせして

いただければ使用可能になります。(下記はNetBeans5.0 Beta2の画面の抜粋)














今まで、弊社のApplicationサーバやNetBeansではPointBaseという簡易DBが

付属で組み込まれていましたが、これに変わり今後Derbyも使用可能です。

そこで今後、開発案件の規模・システム要件に併せてOracle、PostgreSQLに加え

Apache Derbyも選択肢に入れていただき御使用いただければと思います。





Apache Derby Databaseの詳細http://db.apache.org/derby/




2005年12月13日 at 9:50 午後

LDAPコンテキストのディレクトリ配下全削除用コード


JNDI/LDAPによるエントリの削除は、ディレクトリを構成する

ノードの葉(一番最下層)から順に削除しなければなりません。

つまり、子ノードを持つエントリは直接削除することができないのです。

そこで、ノードの葉から順に再起的に削除する必要があるのですが、

下記は、指定したDN配下全てのエントリを再起的に削除するための

サンプルコードになります。。

赤線で示したコードが実際にLDAPサーバから削除するコードになります。


/**
* 指定したDN以下のノードを再起的に削除する。
*
* @param ctx ディレクトリコンテキスト
* @param dn 削除対象のルートノードのDN
*/
private void deleteAll (Context ctx,String dn) {
try {
NamingEnumeration list = ctx.listBindings(dn);
//現在のDNの配下にサブコンテキストが存在するか
while (list.hasMore()) {
Binding item = (Binding)list.next();
String className = item.getClassName();
String name = item.getName();
String subdn = name + “,” + dn;
Object o = item.getObject();
if (o instanceof javax.naming.Context){
Context subctx = (Context)o;
//さらにその下にサブコンテキストが存在するか
NamingEnumeration sublist = ctx.listBindings(subdn);
if(sublist.hasMore()){
//存在する場合、再起的呼び出し
deleteAll (ctx, subdn);
}else{
//存在しない場合、コンテキストを削除
ctx.destroySubcontext(subdn);
logger.info(“DN: ” + subdn + “is deleted from LDAP”);
}
}
}
ctx.destroySubcontext(dn);
logger.info(“DN: ” + dn + “is deleted from LDAP”);
}catch (NamingException ex) {
logger.error(“Failed to delete entry on LDAP”,ex);
}
}

2005年12月7日 at 12:59 午前

LDAP接続用コード

ちょいと、今日は覚え書きです。
弊社は、いろんなツールを提供しておりますが、
Directoryサーバも提供しております。
今回は、DirectoryサーバにJavaで接続するための手順を書きます。
LDAPへの接続用サンプルJavaコード(例外処理は除く)


下記のコードのように、LDAPへの接続にはホスト名・ポート番号を指定してください。

そして、dnはLDAPに接続し操作するユーザのDNとパスワードを指定します。

パラメータについては様々なパラメータが用意されているので別途 JavaDocを参照して
ください。

LDAPサーバに接続が完了した後、DirContextクラスのインスタンスdirconを使用して

LDAPの検索・登録・変更・削除処理等を行う。


host = “ldap_server.sun.com”;
port = “389”;
dn = “cn=Directory Manager”; //DIR操作が可能な接続ユーザ
password = “secret”; //パスワード
Properties env = new Properties();
env.put(DirContext.INITIAL_CONTEXT_FACTORY,
“com.sun.jndi.ldap.LdapCtxFactory”);
// LDAP URLの生成
env.put(DirContext.PROVIDER_URL, “ldap://” + host + “:” + port);
if (dn != null) { // バインドユーザとパスワードの設定
env.put(DirContext.SECURITY_PRINCIPAL, dn);
env.put(DirContext.SECURITY_CREDENTIALS,password);
}
//接続タイムアウトの設定(3秒)
env.put(“com.sun.jndi.ldap.connect.timeout”, “3000”);
// コネクションプールを有効化
env.put(“com.sun.jndi.ldap.connect.pool”, “true”);
//アイドル接続のコネクションを自動的に削除する設定5分
//本クラスでは明示的にclose()を呼び出していないため、
//5分間コネクションプーリングされる。
env.put(“com.sun.jndi.connect.pool.timeout”, “300000”);
//デバッグを全て
env.put(“com.sun.jndi.connect.pool.debug”, “all”);
// LDAPサーバへの接続&Directory Contextの作成
dircon = new InitialDirContext(env);
    ……..(何らかの処理の記述)
    dircon.close();

2005年12月7日 at 12:50 午前

データセンターで­


さて、今日は技術系の話から少し脱線して季節ねたをかきます。
今、仕事の関係でデータセンターに通っているのですが、
データセンターってとても乾いているし空気も循環しているだけ、
おまけに誇りっぽいと、とても風邪菌が繁殖しやすい環境です。
実際、JavaOneが開催する直前もこのデータセンターに通っていて、
大風邪を引いてしまいました。
病院の先生に無理を言って、点滴を打ってもらったのですが、
開催日の前々日まで熱を出しておりました。
やっと風邪が治りって安心していて
今日また行くと少し喉が痛くなりました。
データセンター等に出かける皆様くれぐれも御気をつけてくださいね。
あと、これから、インフルエンザや風邪のはやるシーズンになりますが、
くれぐれも体調には気をつけましょう。

2005年11月28日 at 8:45 午前

Older Posts Newer Posts


Java Champion & Evangelist

Translate

ご注意

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

カレンダー

2026年3月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カテゴリー

clustermap

ブログ統計情報

  • 1,314,978 hits

Feeds

アーカイブ