ヘッダーをスキップ
Oracle® JRockit Real Time紹介
リリース4.0
B61449-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

1 概要

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

この節では、以下の項目について説明します。

1.1 JRockit Real Timeの利点

特定の種類のアプリケーション、とりわけ電気通信業界や金融業界では、トランザクション待機時間に対して厳しい要求が課せられます。これらのアプリケーションをJavaで記述すると、ガベージ・コレクションによって、予測できない休止時間が生じます。これはトランザクション待機時間に深刻な悪影響を与える可能性があります。

このため、JRockit Real Timeでは、確定的なガベージ・コレクションを提供し、動的なガベージ・コレクションでの優先順位により、非常に短い休止時間を確約できます。このような短い休止時間により、通常のガベージ・コレクションを実行した場合と比べ、確定的なガベージ・コレクションではその影響を大幅に減らすことができます。

1.2 JRockit Real Timeの互換性

JRockit Real TimeはOracle JRockit JDK R28.0と完全な互換性があります。Oracle JRockit JDK R28.0で動作保証されているすべてのアプリケーションは、さらなる動作保証なしにJRockit Real Timeで使用できます。つまり、Oracle JRockit JDK R28.0でサポートされるすべてのOracleアプリケーションは(Java J2SE 5.0ベースかJava SE 6ベースかにかかわらず)、JRockit Real Timeでもサポートされます。

JRockit Real Timeでは、Java SE 6およびJ2SE 5.0ランタイム環境で実行されるスタンドアロンJavaアプリケーションの他、Spring Frameworkベースのアプリケーションもサポートされます(1.4「ソフトウェア・コンポーネント」を参照)。

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

1.3 サンプル・ユース・ケース

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

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

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

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

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

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

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

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

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

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ランタイム環境で実行するスタンドアロンJavaアプリケーションもサポートされます。

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

1.4.1 Oracle JRockit JDK 6 R28.0

Oracle JRockit JDK 6 R28.0はJava SE 6(update 17)との互換性が保証されています。このバージョンには、確定的なガベージ・コレクタが含まれ、動的なガベージ・コレクションの優先順位に基づいて非常に短い休止時間を確約できます(1.4.3「確定的なガベージ・コレクション」を参照)。また、Oracle JRockit JVMのプロファイリングに役立つ内部メトリックを提供するJRockitフライト・レコーダ(1.4.4「Oracle JRockitフライト・レコーダ」を参照)およびJRockitメモリー・リーク・ディテクタも含まれます。

JRockit Real Timeでサポートされるハードウェアおよびソフトウェアの構成については、1.5「JRockit Real Timeでサポートされる構成」を参照してください。

1.4.2 Oracle JRockit JDK 5.0 R28.0

Oracle JRockit JDK 5.0 R28.0はJ2SE 5.0(update 22)との互換性が保証されています。5.0 R28.0 JVMには、確定的なガベージ・コレクタが含まれ、動的なガベージ・コレクションの優先順位に基づいて非常に短い休止時間を確約できます(1.4.3「確定的なガベージ・コレクション」を参照)。また、Oracle JRockit JVMのプロファイリングに役立つ内部メトリックを提供するJRockitフライト・レコーダ(1.4.4「Oracle JRockitフライト・レコーダ」を参照)およびJRockitメモリー・リーク・ディテクタも含まれます。

JRockit Real Timeでサポートされるハードウェアおよびソフトウェアの構成については、1.5「JRockit Real Timeでサポートされる構成」を参照してください。

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

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

特定の種類のアプリケーション、とりわけ電気通信業界や金融業界では、トランザクション待機時間に対して厳しい要求が課せられます。これらのアプリケーションをJavaで記述すると、ガベージ・コレクションによって予測できない休止時間が生じて、アプリケーションに悪影響を与える可能性があります。

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

確定的ガベージ・コレクタの詳細は、Oracle Technology NetworkのOracle JRockit診断およびチューニング・ガイドを参照してください。

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

  • Javaコマンド・ラインで-Xgc:deterministicオプションを入力します。

  • 確定的ガベージ・コレクションを有効にしてOracle JRockit JVMを開始する方法を示すサンプルの起動スクリプトstartRealTime.cmd/.sh)を使用します。

1.4.4 Oracle JRockitフライト・レコーダ

基本的に、JRockitフライト・レコーダでは診断データおよびプロファイリング・データが循環バッファに書き込まれ、これらのデータをいつでもオンデマンドで利用できます。いわば「タイム・マシン」のようなもので、時間の流れを遡り、イベントが起こるに至るまでの診断データを収集できます。循環バッファには、JVMやアプリケーション・イベントなどのデータが格納されます。JFRはデフォルトの構成を使用して常に有効であり、パフォーマンスのオーバーヘッドは生じません。

Oracle JRockitのフライト・レコーダ対応バージョン(バージョンR28.0.0以降)を実行している場合、Mission Control 4.0 Clientでフライト・レコーダGUIのフライト記録の内容を参照できます。GUIには、記録の内容、現在の記録の設定、およびランタイム・パラメータが表示されます。GUIはパフォーマンス・データを論理グループに集約した一連のタブで構成されています。

1.5 JRockit Real Timeでサポートされる構成

Oracle JRockit Real Timeは、Oracle JRockit JVM R28と同じ構成(ハードウェアとプラットフォーム)でサポートされていますが、Windows ItaniumおよびLinux Itanium構成は例外です。それらの構成ではサポートされていません。サポートされる構成の完全なリストは、Oracle JRockit JDK R28の動作保証マトリックスを参照してください。

http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html