Monday, January 15, 2018

Performance Tune Oracle SOA 12c EM Console

This article applies to Enterprise Manager for Fusion Middleware Version 11.1.1.2.0 and later, i.e., it applies to 11g and 12c. Logging into Enterprise Manager Fusion Middleware Control (FMWC) takes a long time.  Sometimes as long as 45-60 seconds.  This is often viewed as slow response time, performance or hanging issues. This time is expected because EM discovery 'mbeans' need to be invoked for every target.
Solution is to cache the discovery results in the servlet context and use it for subsequent logins. This discovery result will be shared by all the FMWC users. This will still require the entire discovery to be done at least once. 

Enable the “Data Display Option”: Login into EM console and make the data display option to 30 minutes default, so when user will login into EM console, it will load data of last 30 minutes process and it will load EM console faster as with default configuration.
  • Enable the checkbox for below options-
  • Disabled fetching of instance and fault matrices count.
Restrict display of instance and fault to the last 30 minute


Decrease the frequency of DMS application: EM has one inbuilt application called Dynamic Monitoring System (DMS) which does the status collection for all the targets wherever DMS got deployed, if the frequency of DMS stats collection will be too fast then it makes EM console to slow down. To increase the frequency here are the steps-
Increased below parameters in dms_config.xml file given at this location –
$MiddlewareHome/fmw/soa11.1.1.6/oracle_common/modules/oracle.dms_11.1.1/server_config
prefetch intervalSeconds from 15 second to 120,
Discover intervalSeconds from 180 second to 300 seconds
<collectorConfiguration>
   <prefetch intervalSeconds="120" removeCycle="2" isDefault="true"/>
   <prefetch intervalSeconds="300" removeCycle="3"/>
   <discover intervalSeconds="300"/>
</collectorConfiguration>

Disabled “BPEL recovery console” option from Dashboard: Once you logged in into EM console, during dashboard page loading, EM will try to fetch the data from “DLV_MESSAGE” tables for “invoke” and “callback” activities which take longer time since DLV_ MESSAGE table normally is quite huge.
In order to disable the same please perform this –
EM console>>Farm>>soa-infra>>Administration>>System Mbeam Browser>> Filter>> Type bean name "oracle.as.soainfra.config:name=soa-infra,*", >> In result click on "AduitConfig" attribute and change the "bpelRecoveryStatus=Off", default value for bpelRecoveryStatus is "all"

Added JVM parameter at domain level “-Dweblogic.management.disableManagedServerNotifications=true”
Above JVM parameter has been suggested by Oracle, this parameter will help to reduce JMX notification which occur between Admin and Managed servers whenever any new component get added, any state get changes etc.
This configuration got added only for Admin Server Instance, not at Manage server level, and we have notice huge benefit in EM after this change, now EM was not at all hanging during login time, internal link were slow but at least multiple users were able to login into EM.

Increased cache timeout for discovery: During login process in EM console, EM does three things:
  • Authentication
  • Discovery of targets
  • Loading the page.
 Discovery of target step was taking too long around 10 minute since Domain was big and having a list of targets.

From Oracle note 1423893.1 we can implement to cache the discovery result, so the sub sequent login attempt will be fast - Following given Mbeans attributes has been added into to improve performance.

All timing for mbeans in milliseconds. After implementing above change, very first user login will take time after restart of Admin and the discovery result will be stored in cache and sub sequent login attempt will be fast.
  • If the caching is enabled, fmwc will use the cached discovery results.
  • The default setting is "not use the cached results"










  • This step applies to FMW 11g & 12c.

    -If FMW version is lower than 11.1.1.6,  upgrade to FMw 11.1.1.6 or apply available patch 13251077 for your version.
    -If applying patch 13251077, pay attention to patch README for setting of ORACLE_HOME.

    Navigate to fmwc System mBean browser. (Screenshots are shown for fmw 11g, it is similar for 12c)

    Access following AdminServer mBean for setting the cache property.
    • emoms.props:Location=AdminServer,name=emoms.properties,type=Properties,Application=em
    Setting following three properties.  Unless using non-default values, the last two properties are optional.

    # Enable caching of FMw Discovery data and use it for other subsequent users.
    # Values=true/false   Default=false
    oracle.sysman.emas.discovery.wls.FMW_DISCOVERY_USE_CACHED_RESULTS=true
    # If caching of discovery data is true, this parameter indicates how long the discovery data
    # from cache should be used before requiring a fresh discovery.
    # Time value is in milliseconds.  Default is 7200000 milliseconds.
    oracle.sysman.emas.discovery.wls.FMW_DISCOVERY_MAX_CACHE_AGE=7200000
    # If caching of discovery data is true, a user logs in and a discovery session is in progress,
    # this parameter indicates how long the user can wait for current discovery to complete.
    # After this wait time is elapsed and discovery is still not finished:  If there is already data
    # in cache it will be used, else the user will launch a new discovery session.
    # Time value is in milliseconds.  Default is 10000 milliseconds.
    oracle.sysman.emas.discovery.wls.FMW_DISCOVERY_MAX_WAIT_TIME=10000

    If new targets are added after enabling discovery cache and new targets are not displayed in fmwc, perform a manual refresh of the Farm to update the discovery cache.

    Please subscribe to the blog and For any further queries you can email me on samiappsdba@gmail.com

    I wish you all a Very Happy and Prosperous New Year 2018.