診断ガイド

     前  次    目次     
コンテンツの開始位置

Oracle JRockit JDK へのアプリケーションの移行

この節では、別の JDK で開発された Java アプリケーションを、実行時の最適なパフォーマンスを損なうことなく Oracle JRockit JDK に移行する方法について説明します。この節の内容は以下のとおりです。

 


アプリケーションの移行について

アプリケーションを BEA JRockit JVM に移行するプロセスは比較的簡単です。環境を若干変更して、簡単なコーディングのガイドラインに従うだけで済みます。この節では、その簡単なプロセスを正常に完了するための手順とヒントを示します。利点や、移行中に発生する可能性のある問題についても説明します。JRockit JDK で実行するときにアプリケーションが正常に動作するための、J2SE コーディングのベスト プラクティスも紹介します。

移行する理由

JRockit JDK は Oracle WebLogic Server に付属しているデフォルトの JDK です。現在、Java アプリケーションの開発に使用できる他の JDK も市販されていますが、Oracle では、Oracle の製品として JRockit JDK を使用することをお勧めします。

移行に関する制限

移行は、JRockit JDK を含む Oracle WebLogic Server がサポートされているすべてのプラットフォームで実行できます。サポートされるプラットフォームのリストについては、以下を参照してください。

http://edocs.bea.com/platform/suppconfigs/index.html

 


移行のサポート

アプリケーションを JRockit JDK に移行するときに問題が発生したりバグを見つけたりした場合は、support@bea.com まで電子メールでご連絡ください。問題に関する以下のような情報をできる限りご提供ください。

 


移行手順

この節では、Sun Microsystems の JDK など、サードパーティ JDK から JRockit JVM に移行する際に必要な、環境および実装の基本的な変更点について説明します。内容は以下のとおりです。

環境の変更

注意 : この節で説明する変更は、主に Oracle WebLogic Server に該当します。別の Java アプリケーションを使用している場合は、アプリケーションの設定に従って、スクリプトと環境を変更する必要があります。

サードパーティ JDK から JRockit JVM に移行するには、ファイルを以下のように変更する必要があります。

その他のヒント

アプリケーションを JRockit JDK に正常に移行するためのその他のコーディング プラクティスについては、「Java アプリケーションの開発」を参照してください。

アプリケーションに合わせた JRockit JVM のチューニング

アプリケーションを JRockit JDK に移行したら、最適なパフォーマンスを求めて JVM をチューニングすることができます。たとえば、別の起動ヒープ サイズを指定したり、カスタムのガベージ コレクション パラメータを設定したりできます。JRockit JVM のチューニングに関する詳細については、「プロファイリングおよびパフォーマンス チューニング」を参照してください。

非標準のオプション (-X で始まるオプション) は、起動時に JVM をチューニングするための重要なツールです。これらのオプションを使用して、さまざまな Java アプリケーションのニーズに適合するように JRockit JVM の動作を変更します。

どの JVM でも非標準のオプションを使用しますが、オプション名は JVM 同士で異なる場合があります。たとえば、JRockit JVM では、世代別コンカレントおよび世代別パラレル ガベージ コレクタで、ナーサリを設定するために非標準の -Xns オプションを使用しますが、Sun の HotSpot JVM では、この値を設定するために非標準の -XX:NewSize オプションを使用します。

アプリケーションを JRockit JDK に移行する場合は、用意されている非標準のオプションについて理解しておくことをお勧めします。詳細については、リファレンス マニュアルを参照してください。

また、非標準のオプションはいつでも変更される可能性があることに注意してください。

 


アプリケーションのテスト

アプリケーションをプロダクション環境に置く前に、必ず JRockit JVM 上でアプリケーションをテストしてください。Sun JVM (HotSpot) で開発したアプリケーションは、プロダクション環境に置く前に JRockit JVM 上でテストする必要があります

テストする理由

テストを行う重要な理由は以下のとおりです。

テスト方法

JRockit JVM でアプリケーションをテストするには、次の手順に従います。

  1. アプリケーションに適したテスト スクリプトまたはベンチマークに対して、アプリケーションを実行します。
  2. 問題が発生した場合は、特定のアプリケーションで通常行うように、問題に対応します。

 


Sun JDK と一緒に提供したツールのレプリカ

Sun JDK に通常備わっている以下の J2SE ツールは、JRockit JDK には付属しません。

JRockit JDK では、Sun ツールの大部分より同等であるか、または良いかを内部のツールを提供します。コード リスト 5-1 には、Sun ツールと、それに対応する JRockit JDK の一覧を示します。ツールの中には、jrcmd 機能を必要とするものがあります。詳細については、「診断コマンドの実行」を参照してください。

表 5-1 JRockit JDK/Sun のツールの同等物
Sun のツール
JRockit JDK に同梱
JRockit JDK 同等物
jinfo
省略可能
jrcmd <pid> print_properties
jrcmd <pid> command_line
jhat
省略可能
JRockit Memory Leak Detector (「JRockit Memory Leak Detector」を参照) および JRockit Runtime Analyzer (「JRockit Runtime Analyzer」を参照)
jmap
省略可能
JRockit Memory Leak Detector (「JRockit Memory Leak Detector」を参照)
jrcmd <pid> print_object_summary
jrcmd <pid> verbose_referents
jrcmd <pid> heap_diagnostics
jsadebugd
省略可能
なし
jstack
省略可能
jrcmd <pid> print_threads
jps
必須
jrcmd
jstat
必須
同等物なし。jstat は JRockit JVM と動作します。JRockit Runtime Analyzer (「JRockit Runtime Analyzer」を参照) および Oracle JRockit Mission Control 内の JRockit Management Console (「JRockit Management Console」を参照) はこのためにしかしながら、より良いツールです。
jstatd
必須
同等物なし。jstatd は JRockit JVM と動作します。
jconsole
必須
jconsole は JRockit JVM と動作します。JRockit Mission Control の JRockit Management Console (「JRockit Management Console」を参照) は JRockit JVM をモニタするためのしかしながら、より良いツールです。
jrunscript
必須
同等物なし。jrunscript は JRockit JVM と動作します。

 


JRockit JVM と Sun の間のコマンドライン オプションの互換性

この節では、JRockit JVM の実行時および Sun Hotspot JVM の実行時に利用できるコマンドライン オプションの互換性について説明します。オプションの中には、名前だけが同じもの、機能だけが同じもの、および名前と機能の両方が同じものがあります。

表 5-2 は、Sun Hotspot JVM と JRockit JVM で名前が同じであるにもかかわらず、機能が異なるオプションを示しています。

表 5-2 名前が同じで機能が異なるオプション
オプション名
Hotspot の機能
JRockit JVM の機能
-Xms
ヒープの初期サイズを設定する。
ヒープの初期サイズおよび最小サイズを設定する。詳細については、「-Xms」を参照。

表 5-3 は、Sun Hotspot と JRockit JVM で同じまたは類似の機能を持つ JVM にもかかわらず、名前が異なるオプションを示しています。

表 5-3 機能が同じまたは類似で名前が異なるオプション
Hotspot のオプション名
JRockit JVM のオプション名
機能
-XX:+AggressiveHeap
大量のメモリを要求する作業負荷に合わせてメモリ システムをコンフィグレーションし、大量のメモリ リソースを有効に使用して高いスループットを確実に実現することが可能な予想値を設定する。JRockit JVM は、ラージ ページが使用可能な場合はラージ ページを使用する。
-verbose:gc
-Xverbose:memory
メモリ システムに関するログ情報を出力する。
-Xmn、-XXNewSize、-XXMaxNewSize
若い世代のサイズを設定する。
-XX:+UseConcMarkSweepGC
-Xgc:singlecon
コンカレント方式を使用するようにガベージ コレクタを設定する。
-XX:+UseParallelGC
-Xgc:parallel
パラレル方式を使用するようにガベージ コレクタを設定する。

表 5-4 は、Oracle JRockit JVM でのみ利用できるオプションを示しています。

表 5-4 JRockit JVM でのみ利用できるオプション
オプション名
機能
休止時間の均等化とスループットの最大化のどちらを優先するかを指定する。
アプリケーションの適切な休止時間を指定する。

 


移行に関するヒントの提出

この節で説明した移行に関するヒントは、今後発展していくものです。JRockit JDK へ正常に移行するための方法は、移行するアプリケーションや使用されている VM によって異なることがよくあります。Oracle では、Oracle JRockit JDK へのアプリケーションの移行に関するユーザの経験に基づいた提案を歓迎します。Oracle JRockit のフォーラム (dev2dev) に移行のアイデアやコメントをお気軽にお寄せください。


  ページの先頭       前  次