ヘッダーをスキップ
Oracle® JRockitの紹介
リリースR28
B61437-02
  目次へ移動
目次

前
 
次
 

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

この章では、別のJDKで開発されたJavaアプリケーションを、実行時の最適なパフォーマンスを得るためにJRockit JDKへ移行する方法について説明します。

この章の内容は以下のとおりです。


注意:

Oracle JRockit JDKへの正常な移行は、移行対象のアプリケーションと同じくらいJVMにも依存する場合がほとんどです。アプリケーションのOracle JRockit JDKへの移行に関する経験に基づくあらゆる提案をオラクルでは歓迎しています。

JRockit JDKへのアプリケーションの移行で必要なのは、環境の若干の変更と、簡単なコーディング・ガイドラインに従うことだけです。

この章では、移行プロセスの実行に役立つ手順およびヒントを示します。また、移行の利点や、移行中に発生する可能性のある問題についても説明します。さらに、JRockit JDKへの移行後にアプリケーションが正常に動作するための、Javaコーディングのベスト・プラクティスについても説明します。

JRockit JDKはOracle WebLogic Serverに付属しているデフォルトのJDKです。他のJDKも市販されていますが、Oracle製品ではJRockit JDKを使用することをお薦めします。

アプリケーションの移行は、Oracle WebLogic ServerとJRockit JDKがサポートされているすべてのプラットフォームに対して実行できます。詳細は、Oracle JRockit JDKのサポートされる構成(http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html)を参照してください。

5.1 移行の問題に対するサポート

アプリケーションのJRockit JDKへの移行中に問題が発生した場合は、My Oracle Supportからオラクルにお問合せください。

オラクルにお問合せの際は、問題に関する次のような情報を可能なかぎりご提供ください。

5.2 移行タスク

次の項では、サード・パーティJDKからOracle JRockit JDKにアプリケーションを移行する際に実行が必要なタスクについて説明します。

5.2.1 アプリケーション環境で必要とされる変更


注意:

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

サード・パーティJDKからJRockit JDKに移行するには、アプリケーション環境を次のように変更します。

  • WL_HOME/common/commEnv.cmd(または.sh)のJAVA_HOME環境変数を適切なパスに設定します。

  • WL_HOME/common/commEnv.cmd(または.sh)のJAVA_VENDOR環境変数をBEAに設定します。

  • 起動スクリプトを使用する場合は、サード・パーティJVMに固有のコマンドライン・オプションを削除します。可能であれば、サード・パーティのオプションをOracle JRockit JVMに固有のオプション(-Xnsなど)に置き換えます。変更する必要のある他のフラグはMEM_ARGSJAVA_VMです。

    Oracle JRockit JVMでサポートされているコマンドライン・オプションの詳細は、『Oracle JRockitコマンドライン・リファレンス』を参照してください。

  • JRockit JDKでは、config.xmlのデフォルトのコンパイラ設定を、javacコンパイラを指すように変更します。


    注意:

    『Oracle JRockitアプリケーション開発ガイド』に示されているガイドラインに従って、アプリケーションがOracle JRockit JDKで稼働するように開発されているか確認してください。

5.2.2 最適なパフォーマンスのためのJRockit JVMのチューニング

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

非標準のコマンドライン・オプション(-Xで始まるオプション)は、起動時にJVMをチューニングするための重要なツールです。これらのオプションは、様々なJavaアプリケーションのニーズに適合するようにJRockit JVMの動作を変更します。アプリケーションをJRockit JDKに移行する場合は、用意されている非標準のオプションについて理解しておくことをお薦めします。詳細は、『Oracle JRockitコマンドライン・リファレンス』を参照してください。


注意:

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

非標準のオプションはいつでも変更される可能性があります。


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

前述の移行タスクを実行したら、JRockit JVMでアプリケーションをテストします。

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

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

5.4 HotSpot JDKとともに提供されるツールのレプリケート

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

JRockit JDKは、ほとんどのHotSpotツールに相当する内部ツールを備えています。表5-1に、HotSpot JDKツールと、それに対応するJRockit JDKツールの一覧を示します。ツールの中には、jrcmd機能を必要とするものがあります。詳細は、Oracle JRockit JDKツールを参照してください。

表5-1 JRockit JDKとHotSpot JDK: ツールの対応

HotSpotツール JRockit JDKに同梱 Oracle JRockitの対応ツール

jinfo

いいえ

jrcmd pid print_properties

jrcmd pid command_line

jmap

いいえ

JRockitメモリー・リーク・ディテクタ(Oracle JRockit JDKツールを参照)

次の診断コマンド:

  • jrcmd pid print_object_summary

  • jrcmd pid verbose_referents

  • jrcmd pid heap_diagnostics

jsadebugd

いいえ

なし

jhat

はい

jhatはJRockit JVMと動作します。

JRockitメモリー・リーク・ディテクタおよびJRockitフライト・レコーダも使用できます。

jstack

いいえ

jrcmd pid print_threads

jps

はい

jrcmd

jstat

はい

jstatはJRockit JVMと動作します。

JRockitフライト・レコーダおよびOracle JRockit Mission Control内のJRockit管理コンソールも使用できます(Oracle JRockit JDKツールを参照)。

jstatd

はい

jstatdはJRockit JVMと動作します。

jconsole

はい

jconsoleはJRockit JVMと動作します。

Oracle JRockit Mission Control内のJRockit管理コンソールも使用できます(Oracle JRockit JDKツールを参照)。

jrunscript

はい

jrunscriptはJRockit JVMと動作します。


5.5 JRockitおよびHotSpotのJVM間のコマンドライン・オプションの互換性

この項では、JRockit JVMの実行時に利用できる重要かつ汎用的なコマンドライン・オプションと、Hotspot JVMの実行時のオプションの互換性について説明します。

表5-2は、HotSpotおよびJRockitのJVMの両方で名前が同じであるにもかかわらず、機能が異なるオプションを示しています。

表5-2 名前が同じで機能が異なるオプション

オプション HotSpot JVMの機能 JRockit JVMの機能

-Xms

ヒープの初期サイズを設定します。

ヒープの初期サイズおよび最小サイズを設定します。

詳細は、『Oracle JRockitコマンドライン・リファレンス』を参照してください。


表5-3は、HotSpotおよびJRockitのJVMの両方で同じまたは類似した機能を実行するにもかかわらず、名前が異なるオプションを示しています。

表5-3 機能が同じまたは類似で名前が異なるオプション

HotSpot JVMのオプション JRockit JVMのオプション 機能

-verbose:gc

-Xverbose:gc

このオプションはメモリー・システムに関するログ情報を出力します。

-Xmn-XX:NewSizeおよび-XX:MaxNewSize

-Xns

このオプションは若い世代のサイズを設定します。

-XX:+UseConcMarkSweepGC

-Xgc:singlecon

このオプションはコンカレント方式を使用するようにガベージ・コレクタを設定します。

-XX:+UseParallelGC

-Xgc:parallel

このオプションはパラレル方式を使用するようにガベージ・コレクタを設定します。


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

表5-4 JRockit JVMでのみ利用できるオプション

オプション 機能

-XpauseTarget

アプリケーションの適切な休止時間を指定します。



注意:

-Xintおよび-XX:MaxPermSizeはHotspot JVMではよく使用されますが、JRockit JVMにはインタープリタもpermgen領域もないため、JRockit JVMには有効ではありません。