1 Overview

Oracle JRockit Real Time provides lightweight, front-office infrastructure for low latency, event-driven applications. For companies in highly-competitive environments where performance is key and every millisecond counts, Oracle JRockit Real Time 4.0 provides a Java-based real-time computing infrastructure.

This section contains information on the following subjects:

1.1 Benefits of JRockit Real Time

Certain types of applications, particularly in those in the Telecom and Finance industries, place stringent requirements on transaction latency. When written in Java, these applications can experience unpredictable pause times caused by garbage collection. This can have a profound and potentially harmful affect on transaction latency.

For this reason, JRockit Real Time features deterministic garbage collection, a dynamic garbage collection priority that ensures extremely short pause times. Such short pauses can greatly lessen the impact of the deterministic garbage collection when compared to running a normal garbage collection.

1.2 JRockit Real Time Compatibility

JRockit Real Time is fully compatible with Oracle JRockit JDK R28.0 and all applications certified with the latter will work on the former without need for additional certification. This means that all Oracle applications supported by Oracle JRockit JDK R28.0 (whether based upon J2SE 5.0 or Java SE 6) are also supported with JRockit Real Time.

JRockit Real Time also supports standalone Java applications running on Java SE 6 and J2SE 5.0 runtime environments, as well as Spring Framework-based applications, as described in Section 1.4, "Software Components."

JRockit Real Time performance still depends upon application type and size, so you will need to verify that you applications meet the base requirements on hardware, heap size and other metrics for optimal performance.

1.3 Sample Use Cases

These use cases provide examples of how JRockit Real Time can provide solutions for high-performance environments with response-time sensitive applications.

1.3.1 Derivative Exchange Defies Arbitrage Traders

An investment arm of a large retail bank provides an exchange for derivatives of European securities. It is an over-the-counter (OTC) request-for-quote and execution system (but provides no settlement and clearing services). A broker submits a request for a quotation and includes the investment identifier and quantity. The system accepts the quotation and applies certain business rules. Depending upon the investment identifier and market conditions, the request is routed to a particular third-party market-maker who then calculates and provides the bid and ask price for the derivative. The response is returned to the broker via the OTC exchange. The broker can then execute the trade of the derivative through a subsequent request, which is routed via the OTC exchange to the appropriate market maker.

The complication with this arrangement is that arbitrage traders can take advantage of the latency delay in the bank's OTC exchange infrastructure because the arbitrage trader can measure the latency that occurs during the small period in which the request for quotation is handled. In a fast moving market, price changes of the derivative may occur within this latency period. This presents an opportunity for an arbitrage trader to take advantage of inefficiency in the marketplace and expose the investment bank to intolerable risk.

The investment bank requires a very high performance-driven software infrastructure, such as JRockit Real Time. It requires that the latency of the OTC exchange be extremely low. Specifically, to combat arbitrage traders, the latency of the exchange's infrastructure must be less than the latency of the arbitrage traders' infrastructure. In this way, the arbitrage traders' data becomes stale before the exchange's, and therefore is not actionable.

1.3.2 Competition-Beating Risk Calculation Infrastructure

A large investment bank is a market-maker for fixed income securities. A request-for-quote (RFQ) is received from an inter-dealer market electronic communication network (ECN), such as TradeWeb. This RFQ would have been submitted to a number of entities. To be competitive, it is vital that the quotation is returned as quickly as possible with the best possible price. Therefore, a minimum amount of latency is necessary to ensure that the investment bank wins customers, or at least, the latency is less than that of the organization's competitors.

During the quotation process, a risk and pricing model is executed to determine the quote price to provide to the customer. Because of the complexity of these calculations, they are currently performed overnight. The result is a stratum of at least four grades of risk advisories that govern fixed rate securities prices. Note that there is at least a twelve-hour lag in these risk calculations. This leads to a risk window since the calculations are stale even at the start of next-day business. To lower this risk, and potentially provide better rates to customers, a real-time risk and pricing calculator would be required. JRockit Real Time provides a latency-adverse infrastructure to make this feasible.

1.4 Software Components

JRockit Real Time supports Java applications running on such Oracle products as (but not limited to) Oracle WebLogic Event Server 2.0, Oracle WebLogic Server 10.0 (or higher), and Oracle WebLogic Server 8.1. It also supports standalone Java applications running on Java SE 6 and J2SE 5.0 runtime environments.

JRockit Real Time includes the following software components:

1.4.1 Oracle JRockit JDK 6 R28.0

The Oracle JRockit JDK 6 R28.0 is certified to be compatible with Java SE 6 (update 17). This version includes the Deterministic Garbage Collector for dynamic garbage collection priority that ensures extremely short pause times, as described in Section 1.4.3, "Deterministic Garbage Collection". It also includes the JRockit Flight Recorder, which provides internal metrics that are useful for profiling the Oracle JRockit JVM (see Section 1.4.4, "Oracle JRockit Flight Recorder") and the JRockit Memory Leak Detector.

For a listing of the hardware and software configurations supported by JRockit Real Time, see Section 1.5, "Supported Configurations for JRockit Real Time".

1.4.2 Oracle JRockit JDK 5.0 R28.0

The Oracle JRockit JDK 5.0 R28.0 is certified to be compatible with J2SE 5.0 (update 22). The 5.0 R28.0 JVM includes the Deterministic Garbage Collector for dynamic garbage collection priority that ensures extremely short pause times, as described in Section 1.4.3, "Deterministic Garbage Collection". It also includes the JRockit Flight Recorder, which provides internal metrics that are useful for profiling the Oracle JRockit JVM (see Section 1.4.4, "Oracle JRockit Flight Recorder") and the JRockit Memory Leak Detector.

For a listing of the hardware and software configurations supported by JRockit Real Time, see Section 1.5, "Supported Configurations for JRockit Real Time".

1.4.3 Deterministic Garbage Collection

Memory management relies on effective garbage collection, which is the process of clearing dead objects from the heap, thus releasing that space for new objects. JRockit Real Time uses a dynamic "deterministic" garbage collection priority (-Xgc:deterministic) that is optimized to ensure extremely short pause times and limit the total number of those pauses within a prescribed window.

For certain types of applications, particularly in the Telecom and Finance industries, stringent requirements are placed on transaction latency. When these applications are written in Java, the unpredictable pause times caused by garbage collection can have a profound and potentially harmful affect on such applications.

However, shorter deterministic pause times do not necessarily equal higher throughput. Instead the goal of the deterministic garbage collection is to lower the maximum latency for applications that are running when garbage collection occurs. Such shorter pause times should lessen the impact of the deterministic garbage collection compared to running a normal garbage collection.

For more information on the deterministic garbage collector, see the Oracle JRockit Diagnostics and Tuning Guide, available on the Oracle Technology Network.

For standalone or Spring-Based Java applications, enable the Deterministic Garbage Collector by doing one of the following:

  • Enter the -Xgc:deterministic option from a Java command line.

  • Use the sample startup scripts, startRealTime (.cmd/.sh), that demonstrate how to start the Oracle JRockit JVM with deterministic garbage collection enabled.

1.4.4 Oracle JRockit Flight Recorder

At its most basic, the JRockit Flight Recorder is a rotating buffer of diagnostics and profiling data that is always available, on demand. You might consider it a sort “time machine” that enables you to go back in time to gather diagnostics data leading up to an event. The data stored in the rotating buffer includes JVM and application events. Since JFR is always-on using the default configuration will not result in any performance overhead.

Assuming you are running a Flight Recorder-compliant version of Oracle JRockit (that is, version R28.0.0 or later), you can see the content of a flight recordings on the Flight Recorder GUI in the Mission Control 4.0 Client. The GUI shows what has been recorded, current recording settings, and runtime parameters. The GUI is comprised of a series of tabs that aggregate performance data into logical groups.

1.5 Supported Configurations for JRockit Real Time

Oracle JRockit Real Time is supported on the same configurations (hardware and platform) as Oracle JRockit JVM R28, with the exception of Windows Itanium and Linux Itanium configurations: it is not supported on those configurations. For a complete list of supported configurations, see the Oracle JRockit JDK R28 Certification Matrix at:

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