Understanding DMS Event Output

6-28 Oracle Fusion Middleware Performance and Tuning Guide

6.8 DMS Best Practices

The use of DMS metrics can have an impact on application performance. When adding metrics, consider the following: ■ Use a High Resolution Clock to increase DMS Precision By default DMS uses the system clock for measuring time intervals during a PhaseEvent. The default clock reports microsecond precision in C processes such as Apache and reports millisecond precision in Java processes. Optionally, DMS supports a high resolution clock to increase the precision of performance measurements and lets you select the values for reporting time intervals. You can use a high resolution clock when you need to time phase events more accurately than is possible using the default clock or when the systems default clock does not provide the resolution needed for your requirements. System clocks are not necessarily as accurate as their precision implies. For example, a system clock that reports time in milliseconds may not tick change once per millisecond. Instead, it may take up to 15ms to tick as shown in the following example: Table 6–10 shows a phase with a 12ms duration that runs from actual time 12:00:00.002 to 12:00:00.014 would be calculated in system time as having a duration of zero. Similarly, a phase with a 2ms duration running from 12:00:00.014 to 12:00:00.016 would be reported in system time as having a duration of 15ms. ■ Configure DMS Clocks for Reporting Time for Java Execution Context - - - Yes Yes - Http Request - - - Yes Yes - Table 6–10 Default System Clock Time versus Actual Time in milliseconds Actual Time System Time 12:00:00.000 12:00:00.000 12:00:00.001 12:00:00.000 12:00:00.002 12:00:00.000 [...] 12:00:00.014 12:00:00.000 12:00:00.015 12:00:00.015 12:00:00.016 12:00:00.015 Note: These behaviors are more evident on some operating systems than others. Use caution when analyzing individual periods of time that are shorter than the tick period of the system clock. Configuring DMS to use a higher resolution clock will cause DMS to record phase sensor activations with higher resolution, but the accuracy will still be limited by the underlying system. Table 6–9 Cont. Actions Performed on Source Object Types Create Update Delete Start Stop Abort Oracle Dynamic Monitoring Service 6-29 Selecting the high resolution clock changes clocks for all applications running on the server where the clock is changed. You set the DMS clock and the reporting values globally using the oracle.dms.clock and oracle.dms.clock.units properties, which control process startup options. For example, to use the high resolution clock with the default values, set the following property on the Java command line: -Doracle.dms.clock=highres Table 6–11 shows supported values for the oracle.dms.clock property. Table 6–12 shows supported values for the oracle.dms.clock.units property. Note the following when using the high resolution DMS clock: ■ When you set the oracle.dms.clock and the oracle.dms.clock.units properties, any combination of upper and lower case characters is valid for the value that you select case is not significant. For example, any of the following values are valid to select the high resolution clock: highres, HIGHRES, HighRes. ■ DMS checks the property values at startup. When the clock property is set with a value not listed in Table 6–11 , DMS uses the default clock. If the oracle.dms.clock property is not set, DMS uses the default clock. Caution: If you use the high resolution clock, the default values are different from the value that Fusion Middleware Control expects msecs. If you need the Fusion Middleware Control displays to be correct when using the high resolution clock, then you need to set the units property as follows: -Doracle.dms.clock.units=msecs Table 6–11 oracle.dms.clock Property Values Value Description DEFAULT Specifies that DMS use the default clock. With the default clock, DMS uses the Java call java.lang.System.currentTimeMillis to obtain times for PhaseEvents. The default value for the units for the default clock is MSECS. HIGHRES The Java Highres clock uses System.nanoTime no JNI required. Table 6–12 oracle.dms.clock.units Property Values Value Description MSECS Specifies that the time be converted to milliseconds and reported as msecs. A millisecond is 10 -3 seconds. Note : This is the default value for the default clock. USECS Specifies that the time be converted to microseconds and reported as usecs. A microsecond is 10 -6 seconds. NSECS Specifies that the time be converted to nanoseconds and reported as nsecs. A nanosecond is 10 -9 seconds. Note : This is the default value for the high resolution clock. 6-30 Oracle Fusion Middleware Performance and Tuning Guide ■ When the clock units property is set to a value not listed in Table 6–12 , DMS uses the default units for the specified clock. 7 Oracle Metadata Service MDS Performance Tuning 7-1 7 Oracle Metadata Service MDS Performance Tuning This chapter provides tuning tips for Oracle Metadata Service MDS. ■ Section 7.1, About Oracle Metadata Services MDS ■ Section 7.2, Tuning Database Repository ■ Section 7.3, Purging Document Version History ■ Section 7.4, Using Database Polling Interval for Change Detection ■ Section 7.5, Tuning Cache Configuration ■ Section 7.6, Analyzing Performance Impact from Customization ■ Section 7.7, Understanding DMS metrics and Characteristics

7.1 About Oracle Metadata Services MDS

Oracle Metadata Services MDS is an application server and Oracle relational database that keeps metadata in these areas: a file-based repository data, dictionary tables accessed by built-in functions and a metadata registry. One of the primary uses of MDS is to store customizations and persisted personalization for Oracle applications. Oracle Metadata Services MDS is used by components such as Oracle WebCenter Framework and Oracle Application Development Framework ADF to manage metadata. Examples of metadata objects managed by MDS are: JSP pages and page fragments, ADF page definitions and task flows, and customized variants of those objects.

7.2 Tuning Database Repository

For optimal performance of MDS APIs, the database schema for the MDS repository must be monitored and tuned by the database administrator. This section lists some recommended actions to tune the database repository: ■ Collect Schema Statistics ■ Increase Redo Log Size ■ Reclaim Disk Space Note: Most of the Oracle Metadata Service configuration parameters are immutable and cannot be changed at run time unless otherwise specified.