Oracle JRockit Real Time の概要

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

[概要]

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

 


Oracle JRockit Real Time とは

Oracle JRockit Real Time は、低レイテンシのイベント駆動型アプリケーションのための軽量なフロント オフィス インフラストラクチャを提供します。パフォーマンスが鍵を握り毎ミリ秒が重視される、激化する競争環境にある企業のために、JRockit Real Time は Java ベースの最初のリアルタイム コンピューティング インフラストラクチャを提供します。

たとえば、アプリケーションのタイプによっては (とりわけ電気通信業界や金融業界では)、トランザクション待ち時間に対して厳しい要求が課せられます。そうしたアプリケーションが Java で記述されている場合、ガベージ コレクションによる休止時間を予測できないと、待ち時間に悪い影響を与えるおそれがあります。

このため、Oracle JRockit Real Time 独自の Oracle JRockit JVM R27.6 には、非常に短い休止時間が確保され、これらの休止の総数が所定の枠内に制限される、動的なガベージ コレクションの優先順位である確定的なガベージ コレクションの機能があります。このような短い休止により、通常のガベージ コレクションを実行した場合と比べ、確定的なガベージ コレクションではその影響を大幅に減らすことができます。

 


Oracle JRockit Real Time の互換性

Oracle JRockit Real Time 3.1.0 は Oracle JRockit JDK R27.6 と完全な互換性があります。Oracle JRockit JDK R27.6 で動作が確認されているすべてのアプリケーションは、追加の確認の必要なく Oracle JRockit Real Time 3.1.0 で使用できます。つまり、Oracle JRockit JDK R27.6 でサポートされるすべての Oracle アプリケーションは (Java 1.4.2、5.0、または 6 ベースにかかわらず) Oracle JRockit Real Time 3.1.0 でもサポートされます。

また、Oracle JRockit Real Time 3.1.0 では、Java SE 6、J2SE 1.4.2、5.0 ランタイム環境で実行するスタンドアロン Java アプリケーションと、「ソフトウェア コンポーネント」で説明しているように、Spring Framework ベースのアプリケーションもサポートされています。

Oracle JRockit Real Time 3.1.0 のパフォーマンスは依然としてアプリケーションの種類とサイズに依存するため、アプリケーションがハードウェアやヒープサイズなどの最適なパフォーマンス用のメトリックの基本要件を満たしていることを確認する必要があります。

 


JRockit Real Time 3.1.0 の Oracle JRockit JDK の機能

JRockit Real Time 3.1.0 には次のバージョンの Oracle JRockit JDK がバンドルされています。

上記のバージョンの Oracle JRockit JDK は Oracle JRockit Mission Control に含まれています。この製品は、Java アプリケーションで発生している問題の監視、管理、プロファイリング、および調査を行うために設計されたツール スイートであり、この種のツールにつきもののパフォーマンスのオーバーヘッドは発生しません。

JRockit Mission Control には、Oracle JRockit Real Time 3.1.0 のユーザにとって特に興味深い次の 2 つのツールが含まれています。

JRockit Latency Analysis Tool

Latency Analysis Tool (LAT) は、JRockit Runtime Analyzer (JRA) の一部であり、Java アプリケーションのレイテンシの克服に役立ちます。 レイテンシ グラフを使用して、レイテンシが含まれる Java アプリケーションをビジュアル化できます。このツールでは、コード内の待機している箇所や他のレイテンシの発生箇所を正確に特定できる柔軟性がもたらされます。

レイテンシ データを記録するには、JRA 記録を作成する必要があります。JRA 記録を開始する前に、レイテンシ データを記録するため、いずれかのレイテンシ記録プロファイルを選択する必要があります。

レイテンシ分析とレイテンシ データを記録する JRA 記録の使用に関するその他の情報については、「Oracle JRockit Runtime Analyzer」を参照してください。 Oracle JRockit Mission Control を起動した後、オンライン ヘルプを使用してこの機能に関するその他のドキュメントを参照することもできます。

JRockit Memory Leak Detector

JRockit Memory Leak Detector は、Java アプリケーションのメモリ リークを検出し、その原因を突き止めるためのツールです。JRockit Memory Leak Detector の傾向分析により、進行の遅いリークを発見します。Memory Leak Detector には詳細なヒープの統計 (リークしているオブジェクトを指し示すタイプとインスタンスを含む)、割り当てられている場所が表示され、メモリ リークの原因をすばやく絞り込むことができます。Memory Leak Detector では高度なグラフィカル表示手法が使われているため、時として複雑な情報をより簡単に操作し、把握することができます。

Memory Leak Detector の使用に関する追加の情報については、「Introduction to JRockit Memory Leak Detector」を参照してください。JRockit Mission Control を起動した後、オンライン ヘルプを使用してこの機能に関するその他のドキュメントを参照することもできます。

JRockit Mission Control の起動

JRockit Mission Control を起動するには、次の手順に従います。

  1. JAVA_HOME 環境変数が JRockit Real Time 3.1.0 に含まれる Oracle JRockit JDK のルート フォルダを指していることを確認します。
  2. Windows プラットフォーム用のコマンド :

    注意 : 次の例では、Windows コマンド プロンプト (DOS) または互換コマンド シェルを使用し、デフォルトの製品インストール ディレクトリを選択していることを前提としています。
    set JAVA_HOME=%ProgramFiles%\JRockit Real Time \wlrt<wlrt_version>-<java_version>\bin

    Linux および Solaris プラットフォーム用のコマンド :

    注意 : 次の例では、UNIX bash シェルまたは互換コマンド シェルを使用し、デフォルトの製品インストール ディレクトリを選択していることを前提としています。
    export JAVA_HOME=$HOME/wlrt<wlrt_version>-<java_version>/bin
  3. コマンド ウィンドウを開きます。
  4. %JAVA_HOME%\bin ディレクトリにある jrmc 実行可能ファイルを実行します。
  5. (Windows)  prompt> %JAVA_HOME%\bin\jrmc
    (Linux)    prompt> ${JAVA_HOME}/bin/jrmc

 


使用事例

以下の使用事例では、応答時間を重視するアプリケーションに対し、JRockit Real Time によって高パフォーマンスな環境向けのソリューションがどのように提供されるかについて示します。

デリバティブ取引での裁定取引トレーダーの排除

大手リテール バンクの投資部門が欧州の証券のデリバティブ取引を提供しています。これは OTC によるクォート要求および実行システムです (ただし、清算サービスは提供していません)。 ブローカーはクォート要求を送信し、投資の ID と数量を含めます。 クォーテーションはシステムで受理され、特定のビジネス ルールが適用されます。 投資 ID とマーケット条件に応じて、要求は特定のサードパーティのマーケット メーカーに送られ、そこでデリバティブの売値と買値の価格が計算および提示されます。 応答は OTC 取引を通じてブローカーに返されます。 ブローカーはその後の要求を通じてデリバティブの取引を実行でき、これは OTC 取引を通じて適切なマーケット メーカーに送られます。

この複雑な取り決めの状況では、クォート要求が処理される間の短期間に生じるレイテンシを裁定取引トレーダーが測定できるため、銀行側の OTC 取引のインフラストラクチャで生じるレイテンシの遅延がそれらのトレーダーに利用されるという問題があります。 動きの早いマーケットでは、このレイテンシ期間内でデリバティブの価格が変動する可能性があります。裁定取引トレーダーがマーケットプレイスの非効率性を利用できるようになると、投資銀行は過度の損害を被る危険にさらされます。

投資銀行では、JRockit Real Time などの、極めて高度なパフォーマンス駆動型ソフトウェア インフラストラクチャが必要になります。 そして、OTC 取引のレイテンシを極限まで低く抑える必要があります。 とりわけ、裁定取引トレーダーに対抗するには、取引のインフラストラクチャのレイテンシを裁定取引トレーダーのインフラストラクチャのレイテンシよりも抑える必要があります。 これにより、裁定取引トレーダーのデータは取引のデータよりも先に古くなるため、利用できなくなります。

競合他社に対し優位を保つリスク計算用のインフラストラクチャ

大手投資銀行は定率利益債券のマーケット メーカーです。 TradeWeb などの業者間マーケットの ECN (電子コミュニケーション ネットワーク) からの RFQ (クォート要求) が受信されました。 この RFQ はいくつかの組織に送信されています。 競争力で優位に立つため、できる限り良い価格で、できる限り迅速にクォーテーションを返すことがきわめて重要です。 このため、投資銀行が顧客を必ず獲得できるようにするには、レイテンシを最低限に抑えることが必要です。または、少なくとも組織の競合他社のレイテンシよりも低く抑えることが必要です。

クォーテーション プロセスでは、顧客への提示価格を決定するためリスクおよび価格設定モデルが実行されます。 これらの計算は複雑であるため、現在夜間に実行されています。 この結果、定率債券の価格に適用される少なくとも 4 等級に格付けされたリスク勧告が生成されます。 これらのリスク計算には最低でも 12 時間の遅延が生じていることに注意します。 たとえ翌日の業務開始時であっても計算は古くなるため、この遅延はリスクの可能性につながります。 このリスクを低減し、より良い価格を顧客に提示するには、リアルタイムでのリスクおよび価格の計算機能が必要です。 JRockit Real Time は、このような要件を実現するレイテンシ削減のためのインフラストラクチャを提供します。

 


ソフトウェア コンポーネント

JRockit Real Time では、Oracle WebLogic Event Server 2.0、Oracle WebLogic Server 10.0 (またはそれ以上)、Oracle WebLogic Server 8.1 などの Oracle 製品 (ただし、これらに制限されません) で実行する Java アプリケーションがサポートされます。また、Java SE 6、J2SE 5.0 および 1.4.2 ランタイム環境で実行するスタンドアロン Java アプリケーションもサポートされます。

JRockit Real Time には次のソフトウェア コンポーネントが含まれます。

Oracle JRockit JDK 6 R27.6

Oracle JRockit JDK 6 R27.6 は Java SE 6 (update 3) との互換性が確認されています。このバージョンには、「確定的なガベージ コレクション」で説明しているように、確保される休止時間が非常に短く、これらの休止の総数が所定の枠内に制限される、動的なガベージ コレクションの優先順位の確定的なガベージ コレクタが含まれています。 また、「JRockit Runtime Analyzer (JRA)」で説明しているように、Oracle JRockit JVM のプロファイルに役立つ内部メトリックを提供する JRockit Runtime Analyzer (JRA)、Latency Analysis Tool (LAT)、および Memory Leak Detector もインストールされます。

JRockit Real Time でサポートされているハードウェアおよびソフトウェア コンフィグレーションの一覧については、「JRockit Real Time でサポート対象のコンフィグレーション」を参照してください。

Oracle JRockit JDK 5.0 R27.6

Oracle JRockit JDK 5.0 R27.6 は J2SE 5.0 (update 14) との互換性が確認されています。5.0 R27.3 JVM には、「確定的なガベージ コレクション」で説明しているように、確保される休止時間が非常に短く、これらの休止の総数が所定の枠内に制限される、動的なガベージ コレクションの優先順位の確定的なガベージ コレクタが含まれています。 また、「JRockit Runtime Analyzer (JRA)」で説明しているように、JRockit JVM のプロファイルに役立つ内部メトリックを提供する JRockit Runtime Analyzer (JRA)、Latency Analysis Tool (LAT)、および Memory Leak Detector もインストールされます。

JRockit Real Time でサポートされているハードウェアおよびソフトウェア コンフィグレーションの一覧については、「JRockit Real Time でサポート対象のコンフィグレーション」を参照してください。

Oracle JRockit JDK 1.4.2 R27.6

Oracle JRockit JDK 1.4.2 R27.6 は J2SE 1.4.2_16 との互換性が確認されています。1.4.2 R27.6 JVM には、「確定的なガベージ コレクション」で説明しているように、確保される休止時間が非常に短く、これらの休止の総数が所定の枠内に制限される、動的なガベージ コレクションの優先順位の確定的なガベージ コレクタが含まれています。 また、「JRockit Runtime Analyzer (JRA)」で説明しているように、JRockit JVM をランタイム JVM として使用する Java 開発者向けに内部メトリックを提供する JRockit Runtime Analyzer (JRA) もインストールされます。

Oracle JRockit Real Time でサポートされるハードウェアおよびソフトウェア コンフィグレーションの一覧については、「JRockit Real Time でサポート対象のコンフィグレーション」を参照してください。

確定的なガベージ コレクション

メモリ管理は効率的な「ガベージ コレクション」に依存しています。ガベージ コレクションとは、ヒープから不要になったオブジェクトを消去して、その領域を新しいオブジェクトのために解放するプロセスです。JRockit Real Time では、確保される休止時間が非常に短く、それらの休止の総数が所定の枠内に制限されるよう最適化された、動的で「確定的な」ガベージ コレクションの優先順位 (-Xgcprio:deterministic) が使用されます。

アプリケーションのタイプによっては (とりわけ電気通信業界や金融業界では)、トランザクション待ち時間に対して厳しい要求が課せられます。そうしたアプリケーションが Java で記述されている場合、ガベージ コレクションによる休止時間を予測できないと、待ち時間に悪い影響を与えるおそれがあります。

ただし、短い確定的な休止時間が高いスループットを実現するとは限りません。確定的なガベージ コレクションの目的は、ガベージ コレクションの発生中に実行されるアプリケーションの最大レイテンシを低くすることです。休止時間を短くすることで、通常のガベージ コレクションを実行する場合に比べ、確定的なガベージ コレクションの影響は少なくて済みます。

確定的ガベージ コレクタの詳細については、Oracle JRockit の『診断ガイド』を参照してください。

確定的なガベージ コレクタの有効化

スタンドアロンまたは Spring ベースの Java アプリケーションの場合は、次のいずれかを実行して確定的ガベージ コレクタを有効にします。

JRockit Runtime Analyzer (JRA)

JRockit Runtime Analyzer (JRA) は、アプリケーションと Java ランタイムのプロファイルに役立つアプリケーションです。 JRockit JVM をランタイム VM として使用する場合に役立つさまざまな有効なメトリックを提供します。

JRockit Runtime Analyzer は 2 つの部分で構成されています。1 つの部分は JVM 内部で実行し、現在実行中の JVM と Java アプリケーションの情報を記録し、この情報を JRA 記録ファイル (filename.jra) に保存します。 このファイルは、ツールのもう 1 つの部分のアナライザで開かれます。これは、ファイルの情報を視覚化するのに使用される通常の Java アプリケーションです。

JRocking Runtime Analyzer は JRockit Mission Control 3.1.0 ツール スイートの一部としてパッケージ化されます。Mission Control 3.1.0 のドキュメントは、オンライン ドキュメントとしてツールに付属しています。Mission Control 3.1.0 の一般的な情報については、「Oracle JRockit Mission Control の概要」を参照してください。

 


JRockit Real Time でサポート対象のコンフィグレーション

Oracle JRockit Real Time は、Oracle JRockit JVM R27.6 と同じコンフィグレーション (ハードウェアとプラットフォーム) でサポートされていますが、Windows Itanium および Linux Itanium コンフィグレーションは例外です。それらのコンフィグレーションではサポートされていません。サポート対象のコンフィグレーションの完全なリストについては、Oracle JRockit サポート対象のコンフィグレーションを参照してください。

 


用語

表 1-1 はこのドキュメントで使用される用語および頭字語を定義しています。

表 1-1 用語 
用語
定義
リアルタイム
ユーザにとって十分に即時的であると感じられる程度で、コンピュータによる外部プロセスの追跡を可能にする (たとえば、常に変化する天候を視覚化して提示するなど) コンピュータの応答レベル。
レイテンシ
ある指定された地点から別の地点にデータが移動するのにかかる時間の表現。
スループット
指定された時間内にコンピュータが処理することのできる仕事量。
確定的なガベージ コレクション
メモリ ヒープのガベージ コレクションのための短い、規定可能な休止時間。これは、使われないオブジェクトをヒープから削除し、新しいオブジェクトのために領域を解放するプロセスです。


  ページの先頭       前  次