2005年 12月 27日 火曜日 |
Sun Java Studio Enterprise 8 Patch 1が出ています English Translation: (Yahoo!) / (Google) Sun Java Studio Enterprise 8のPatch 1が出ています。Sun Java Studio Enterprise - Downloads - Patchesから121045-01.zip (パッチが新しくなると末尾の 01は変わっているかもしれません)をダウンロードして、ZIPファイルを解凍するといくつかの nbmファイルが展開されます。これをメニューの「ツール」→「アップデートセンター」を選択して、「手動でダウンロードしたモジュール(.nbmファイル)をインストール」を選び、ウィザードで先ほど展開した nbmファイルを追加してインストールします。
パッチのREADMEによれば、今回のパッチはアクセシビリティ関連の修正が主なようですが、個人的に直ってほっとしているのは6335731 (ソースコードで完全に限定されている場合でも) RE がパッケージ内に要素を配置しない(Java ソースを UML モデルにリバースエンジニアリングする場合、インポートされたパッケージからの項目用のモデル要素は、対応するパッケージ内ではなくモデルのルートに配置されます。)というバグです。リバースエンジニアリング機能をご利用の方はこのパッチをご活用ください。 Java Tuing White Paper(英語)が出ています English Translation: (Yahoo!) / (Google) MYCOM PCWEBの記事Sunからチューニングの最新ベストプラクティス - Java Tuing White Paperで知ったのですが、java.sun.comにJavaのチューニングの白書Java Tuning White Paper(英語)が出ていました。 ざっと斜め読みした限りでは、細かいチューニングのテクニックというよりは、どのようなアプローチでチューニングしていくか、またそのチューニング方法ということでこれからチューニングを始めようという方または、チューニングで悩んでいる方には分量的にもちょうどよいドキュメントだと思います。
個人的にはここで記述されている以上の高度なチューニングを行うのは、メンテナンス性を低下させるだろうと思いますので慎重に行った方がよいと思います。なぜなら、そのチューニング技術を維持するためにはこれ以上のドキュメントを読まなければいけませんし、そういったスキルを持った方を育成していくのは結構難しいことですし、そもそもそういったチューニングで得られる効果は5%にも満たない場合がほとんどだからです。(それならば、この前発表されたUltraSPARC-T1を搭載したSun Fire T2000なんかと入れ替えた方が電気代も下がってお得だと思います Sun Java System App Serverへようこそ! AVK 次の一歩 English Translation: (Yahoo!) / (Google) 前回はAVKを紹介しましたが、たいていの場合、これで警告やエラーが報告されるとその報告箇所を手動で直していかなければならないのですが、もう少し進んでよきに計らってくれるツールが存在します。Migration Tool for Sun Java System Application Server 8です。
現バージョンで移行をサポートしている移行元のサーバは次のとおりです。
移行ツール(Migration Toool for Sun Java System Application Server8)の使い方使い方はMigration Tool for Sun Java System Application Server - User Guideに詳しく載っていますが、シンプルな例を今回はご紹介します。 なお、準備作業が結構面倒くさいのですが、手動でいろいろマイグレーションするよりははるかに楽な作業ですし、一度設定が終わってしまえば後はそれほどでもありませんので長いですがお付き合いください。インストールMigration Tool for Sun Java System Application Server 8のリンクのダウンロードから asmt-1_0_3-as8.zip (バージョンによって若干ファイル名が変わりますが読み替えてください) をダウンロードして、適当なディレクトリに展開します。今回は C:\sfw\asmt に展開したものとして説明していきます。Sun Java System Application Server 8の準備すでにインストール済みで、それを使用して移行を行う場合は不要です。ただ、個人的には設定の手間が面倒でなければ移行のためにもうひとつ用意してもよいと思います。J2EE v1.4 DownloadsからSun Java System Application Server Platform Edition 8.1 UR2をダウンロードし、インストールします。今回は sjsas_pe-8_1_02_2005Q2-windows-ml.exe (Windows版、国際化対応版)をダウンロードし、 C:\sfw\asmt\AppServer 以下にインストールしました。
アプリケーションサーバのクラスパスを設定するSun Java System Application Serverに移行ツールのライブラリと、Oracle 8.1.7のライブラリを追加します。Oracleのライブラリは http://download.oracle.com/otn/utilities_drivers/jdbc/817/classes12.zip からダウンロードすることができます。ダウンロードには米国オラクル社のOTNアカウント(無償登録)が必要です。米国のオラクルから持ってくるのが大変だ、という方は日本オラクルのサイトからもダウンロードすることができます。 OTN Japan - ソフトウエア: JDBC & SQLJにあるjdbc817jdk12-nt.zip に含まれる classes12.zip を使用してください(なお、こちらも無償登録のOTNアカウントは必要です 日本語か、英語かの違いだけですね :-)。 classes12.zipの準備が完了したら適当なディレクトリに設置します。今回は C:\sfw\asmt\lib 以下に置きました。
次に、Sun Java System Application Server上でクラスパスを通します。User Guideではコマンドラインで通す方法を説明していますが、コマンドラインはちょっと・・という方は次の方法でグラフィカルな管理ツールから設定することができます。まず、アプリケーションサーバを起動します。Windowsの場合、インストーラによって起動のためのショートカットがスタートメニューに作成されているはずですので「スタート」メニューより、「Sun Microsystems」→「Application Server PE」→「Start Default Server」を選択します。
$ /opt/Sun/AppServer/bin/asadmin start-domain domain1のようにして起動します。 次に、管理サーバにログインします。Windowsの場合は同様に「スタート」メニューより、「Sun Microsystems」→「Application Server PE」→「Admin Console」を選択します。SolarisやLinuxの場合はアプリケーションサーバを起動したホストの管理ポート (デフォルトは 4848) にアクセスしますデフォルトの場合 http://localhost:4848 などでしょう。 次にクラスパスに追加を行います。管理コンソールから次のように操作します。(1) アプリケーションサーバをクリック、(2) JVM設定をクリック、(3) パス設定をクリック、(4) クラスパスのサフィックスに asmt-rt.jarと classes12.zip を絶対パスで追加、(5) 保存。
ここまでの作業が完了したらアプリケーションサーバを再起動します。再起動をするにはWindowsの場合「Sun Microsystems」→「Application Server PE」→「Stop Default Server」を選択して停止後に、「Sun Microsystems」→「Application Server PE」→「Start Default Server」を選択してください。SolarisやLinuxの場合は次のように asadminコマンドを使って再起動を行います。 $ /opt/Sun/AppServer/bin/asadmin stop-domain domain1 $ /opt/Sun/AppServer/bin/asadmin start-domain domain1なお、Weblogic 5から移行を行う場合でWeblogic 5で提供されていたステートレス・セッションビーンのスケジューリングサービスを移行する場合にはPreparing the Application Server to Run Migrated Applicationsの手順も同様に実施してください。 アプリケーションの準備アプリケーションを移行するためには次のどちらかが必要です。
$ jar xvf Sample1WebService.ear Sample1WebService.war が展開されました。 META-INF/MANIFEST.MF が展開されました。 META-INF/application.xml が展開されました。 META-INF/ibm-application-bnd.xmi が展開されました。 META-INF/ibm-application-ext.xmi が展開されました。 $ jar xvf Sample1WebService.war WEB-INF/classes/com/ibm/wsdk/Sample1/Hello.class が展開されました。 WEB-INF/classes/com/ibm/wsdk/Sample1/Sample1Interface.class が展開されました。 WEB-INF/Hello_mapping.xml が展開されました。 WEB-INF/ibm-webservices-bnd.xmi が展開されました。 WEB-INF/ibm-webservices-ext.xmi が展開されました。 WEB-INF/webservices.xml が展開されました。 WEB-INF/wsdl/Hello.wsdl が展開されました。 WEB-INF/wsdl/Hello_interface.wsdl が展開されました。 META-INF/MANIFEST.MF が展開されました。 WEB-INF/web.xml が展開されました。 WEB-INF/ibm-web-bnd.xmi が展開されました。 WEB-INF/ibm-web-ext.xmi が展開されました。この展開したディレクトリの WEB-INF/classes/com/ibm/wsdk/Sample1/Hello.classと Sample1Interface.classに対応するソースコードを、そのディレクトリに設置して次のようなディレクトリ構成となるようにします。 $ find . . ./META-INF ./META-INF/application.xml ./META-INF/ibm-application-bnd.xmi ./META-INF/ibm-application-ext.xmi ./META-INF/MANIFEST.MF ./Sample1WebService.ear ./Sample1WebService.war ./WEB-INF ./WEB-INF/classes ./WEB-INF/classes/com ./WEB-INF/classes/com/ibm ./WEB-INF/classes/com/ibm/wsdk ./WEB-INF/classes/com/ibm/wsdk/Sample1 ./WEB-INF/classes/com/ibm/wsdk/Sample1/Hello.class ./WEB-INF/classes/com/ibm/wsdk/Sample1/Hello.java ./WEB-INF/classes/com/ibm/wsdk/Sample1/Sample1Interface.class ./WEB-INF/classes/com/ibm/wsdk/Sample1/Sample1Interface.java ./WEB-INF/Hello_mapping.xml ./WEB-INF/ibm-web-bnd.xmi ./WEB-INF/ibm-web-ext.xmi ./WEB-INF/ibm-webservices-bnd.xmi ./WEB-INF/ibm-webservices-ext.xmi ./WEB-INF/web.xml ./WEB-INF/webservices.xml ./WEB-INF/wsdl ./WEB-INF/wsdl/Hello.wsdl ./WEB-INF/wsdl/Hello_interface.wsdlここまででアプリケーションの準備が完了です。 移行ツールの起動ここまで準備が完了したら移行ツールを起動します。移行ツールの起動のためには次の3つの環境変数を設定しておく必要があります。
C:\sfw\asmt\bin>SET JAVA_HOME=C:\Progra~1\Java\jdk1.5.0_05 C:\sfw\asmt\bin>SET J2EE_HOME=C:\sfw\asmt\AppServer C:\sfw\asmt\bin>SET ASMT_HOME=C:\sfw\asmt\なお、DOSでの短縮名は dir コマンドに /x オプションをつければ確認することができます。
C:\>dir /x P*
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 588C-6340 です
C:\ のディレクトリ
2005/12/05 00:06 <DIR> PROGRA~1 Program Files
0 個のファイル 0 バイト
1 個のディレクトリ 9,159,884,800 バイトの空き領域
ここまで環境が整ったら、移行ツールを起動します。移行ツールはグラフィカルモードと
コマンドラインモードがありますが、今回はグラフィカルモードを紹介いたします。
グラフィカルモードで起動する場合には -u オプションをつけて asmigrate.cmd (Solaris/Linuxは asmigrate.sh )を
起動します。
C:\sfw\asmt\bin>asmigrate.cmd -u
これで起動できました。
アプリケーションを移行するアプリケーションを移行します。先ほど準備したアプリケーションのファイルディレクトリを Source で指定されている欄に入力し、Source Serverを指定します。今回は移行ツールのサンプルを使って WebSphere 5.1からの移行をしてみることにします。 次に、移行後のファイルを出力するディレクトリを Target(Output) ApplicationのDirectoryに指定します。
ここまで出来上がればあとは、「Migrate」ボタンを押すと移行作業が行われます。
あとは「View Report」ボタンを押すと移行が失敗・成功などの情報や、どのように行われたかのレポートが表示されます。
移行したアプリケーションをデプロイするために移行したアプリケーションのデプロイの前に、移行元サーバの設定と同等の設定をSun Java System Application Serverに対しても設定しなければならない場合があります。 その場合、どの設定をすべきかが出力ディレクトリにテキストファイルで出力されます(出力されていない場合は不要です)。詳しくはManually Migrate Relevant Configuration Parametersをご覧ください。 あとは、アプリケーションのearをSun Java System Application Server用に作り直します。作り直すためのスクリプトが作られますのでそれを実行するだけです。出力先に指定したディレクトリ以下にWindowsの場合 build_ear.cmd、Solaris/Linuxの場合は build_ear.shが作成されますのでそれを実行します。
C:\tmp\asmt-3\src>build_ear.cmd
"NOTE: DATASOURCES, IF ANY, SHOULD BE REGISTERED MANUALLY."
Buildfile: C:\tmp\asmt-3\src\build_ear.xml
init:
makeasmtbuild:
runsubants:
[中略]
ear:
[ear] Updating ear: C:\tmp\asmt-3\src\asmtbuild\Sample1WebService.ear
basic:
BUILD SUCCESSFUL
Total time: 3 seconds
これで完成です。あとはこの生成されたEARファイルをデプロイするだけです。おめでとうございます!
これでJ2EE 1.4の世界に移行することができました。
AVKでJava EEアプリケーションを検査する English Translation: (Yahoo!) / (Google) 今回はJavaOne Tokyo 2005のセッション 「JSJE111-01 なぜJava開発の問題がなかなか解決しないのか」で紹介させていただいた、Java Application Verification Kit (AVK) for the Enterprise(以降 AVKと書きます)のご使い方を紹介いたします。AVKを使うにはNetBeansを使うのがとても手軽ですが、今回はAVKを単体で利用した場合の例です。
AVKの概要AVKでは次のようなことができるようになっています。
インストールまず、AVKのページにあるDownloadのリンクから、使用しているプラットホームのAVKをダウンロードします。今回は、Windowsでの例でご紹介いたします。次のようにダウンロードできたら、インストーラを起動します。インストーラをダブルクリックして起動して問題なければそのままインストールを続けていただき、起動時にエラーが出た場合にはつぎのようにjavahomeを指定してインストールを開始します。インストーラは J2SDK 1.4.xでなければ起動しないようなので、該当バージョンのJ2SDKを事前にインストールしておいてください。C:\sfw>javke-1_4_1-windows.exe -is:javahome "C:/Program Files/Java/j2sdk1.4.2_10"以前のバージョンではAVK専用にSun Java System Application Serverをインストールしていましたが、現バージョンではインストール済みのSun Java System Application Serverを使用することができるようになっています。これによって、すでにSun Java System Application Serverにデプロイしているアプリケーションの検査が簡単に行えるようになっています。
新規にアプリケーションサーバをインストールする場合はここでInstall Sun Java System Application Server Platform Edition 8.1を選択して適切な設定を行います。デフォルトの設定でよければパスワードを設定します。
次は既存のアプリケーションサーバを使用するためにUse an existing Sun Java System Application Server Platform Edition 8.1を選択した場合の設定です。
このように既存のインストールディレクトリや管理者パスワード、管理ポートなどを設定します。 これでインストールが完了です。 アプリケーションを検査するでは早速アプリケーションを検査してみます。AVKについているサンプルを使ってもよいのですがそれではつまらないので、J2EEアプリケーションで一番有名(?)なPetStoreを使ってみることにします。今回はJ2EE v1.4 DownloadsページのJ2EE 1.4 SDK Samples 2005Q2 UR2に含まれているものを使用しました。このサンプルアプリケーションのアーカイブ j2eesdk-1_4_02_2005Q2-samples.zip のsamples/buleprintsディレクトリ以下にある petstore1.4ディレクトリを適当なディレクトリにコピーします。 コピーが終了したら、AVKのサンプルディレクトリ(デフォルトインストールの場合 C:/Sun/javk1.4.1/samples/ )以下にある build.propertiesと build.xmlを petstore1.4ディレクトリにコピーします。 コピーができたら次にbuild.propertiesのavk.homeを適切に書き換えます。ここでは C:/Sun/javk1.4.1 以下にインストールした場合のサンプルを示します。 # # Copyright 2004 Sun Microsystems, Inc. All rights reserved. # SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. # avk.home=C:/Sun/javke1.4.1 次にbuild.xmlを書き換えます。build.xmlには大きくわけて3つのタスクがあります。
<target name="static-archive-test"
description="static archive tests for application containing
enterprise beans and web components, reporting on all tests">
<ArchiveTest appName="${avk.home}/samples/bookstore/bookstore.war"
reportingOpts="a" />
</target>
ここの ArchiveTestタスクの appName属性で指定されているところがターゲットのアプリケーションです。
repotingOptsは aがすべての結果、f が失敗した検査のみ、w は失敗と警告を表示するようなオプションです。
今回は petstore.earをターゲットとするためにこの部分を次のように書き換えます。また、必要に応じて
結果の出力先を resultDir属性で指定します。省略すると <AVK_HOME>/bin/reporttool/static以下に
作成されます。なお、appNameも resultDirもフルパスで指定しないとうまく動作しないようです。
<target name="static-archive-test"
description="static archive tests for application containing
enterprise beans and web components, reporting on all tests">
<ArchiveTest appName="c:/tmp/petstore1.4/petstore.ear"
resultDir="c:/tmp/petstore1.4/result"
reportingOpts="a" />
</target>
この状態で Sun Java System Application Serverに付属の asantコマンドを使ってビルドを実行すると
resultDirで指定したディレクトリ以下にレポートが生成されます。
C:\tmp\petstore1.4>C:\Sun\javke1.4.1\appserver\bin\asant static-archive-testscan-codeやtranslate-ddも同じような感じで実行することができます。今日は時間の都合でここまで ですが、別の機会にもう少し詳しく紹介していこうと思います。 Solaris ZFSのパワー English Translation: (Yahoo!) / (Google) 最近、Sun Java System Portal Serverなどを触るために、ノートPCにインストールしたり、設定をいじって壊したり・・、アンインストールしたりしていますが、ZFSのスナップショットは予想以上に便利です。 いまのところZFSでシステムを起動することはできないので(zfs bootプロジェクトは進行中)、次のパスをZFS配下においています。
普通、こういう作業を行う際には設定ファイルを server.xmlから server.xml.origとかファイル名を変えてバックアップしたり、ファイルシステムの一部または全部を tarやzipでバックアップしたりするわけですが、ファイル名を変える方は間違えて上書き保存してしまうようなことがあったり、tar/zipでのバックアップも容量が多いと結構めんどうなんで、さぼってしまいがち。そういうときに限って前の状態に戻したいなんてことがよくある訳です。 ZFSのスナップショットは、もう少しミッションクリティカルなデータベースなどをターゲットとしているのかもしれませんが、ちょうどCVSのバージョン管理をしているときにタグを振るようにスナップショットされるのでスナップショットにかかる時間は一瞬であるため、気軽にスナップショットをとれるわけです。これに慣れるともう、UFSやNTFSに戻れません! いままでで、使い始めてこれは戻れないなと思ったのは、気がついたら手になじむようになっていた vi テキストエディタ、自宅のPCをWindowsからMacにしたとき、C++からJavaに鞍替えしたときのガーベジコレクションといったところです。ZFSはまた新しい「使ったら戻れない」技術であるように思います。 ところで、Windowsを使っていて疑問に思うのはNTFSってジャーナリングしているのに、シャットダウンに失敗した際には必ずCHKDSK(UNIXでいうfsck相当)が走るのはなんでなんでしょうか・・。一瞬で終わるならいいんですが、どうも全チェックしてるように見えます。FATに比べれば壊れることはほとんどなくなったのかもしれませんが、ZFSに慣れたいまではどうも心もとなくてなりません。 |
Today's Page Hits: 1245 |