Friday, June 29, 2012

Enable Discovery Cache to Avoid Long Delay during Login to EM console – Oracle SOA Suite 11g

Enable Discovery Cache to Avoid Long Delay during Login to EM console in Oracle SOA Suite 11g

Logging into Enterprise Manager of Fusion Middleware Control 11g (fmwctl) takes a long time, the fmwctl discovery is always performed as part of login.  For installations with thousands of targets (e.g. Composites), fmwctl discovery may take 45-60 seconds. This time is expected because EM discovery Mbeans need to be invoked for every target. If the number of fmwctl monitored targets (e.g. Deployed Composites) increases, the login time will go up as well.
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 fmwctl users. This will still require the entire discovery to be done at least once.
New parameters are added to enable/disable and to control the usage of the cached discovery results.  
  • If the caching is enabled, fmwctl will use the cached discovery results.
  • The default setting is "not use the cached results"
We have observed this issue in Oracle SOA Suite version 11.1.1.5.0 and Oracle suggested the patch 13251077 to enable the fmwctl discovery cache.

Steps to enable fmwctl discovery cache:

  1. Upgrade to FMw 11.1.1.6 or apply available patch 13251077 for your version.
    If applying patch 13251077, set ORACLE_HOME to MW_HOME/oracle_common before applying.
  2. Navigate to fmwctl System mBean browser.



1.                3. Access following AdminServer mBean for setting the cache property.
    • emoms.props:Location=AdminServer,name=emoms.properties,type=Properties,Application=em
    • Select Operations, Setproperty


  1. 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
    • Following is example of setting oracle.sysman.emas.discovery.wls.FMW_DISCOVERY_USE_CACHED_RESULTS=true
  1. If new targets (e.g. new Composites are deployed) are added after enabling discovery cache and new targets are not displayed in fmwctl, perform a manual refresh of the Farm to update the discovery cache.



No comments:

Post a Comment