22 Tuning Oracle WebCenter Portal

You can tune Oracle WebCenter Portal to optimize its performance as a deployed application.

22.1 About Oracle WebCenter Portal

Oracle WebCenter Portal helps companies to build enterprise-scale intranet and extranet portals that provide a foundation for the next-generation user experience (UX) with Oracle Fusion Middleware and Oracle Fusion Applications.

Portals built with Oracle WebCenter Portal commonly support thousands of users who create, update, and access content and data from multiple back-end sources. Oracle WebCenter Portal delivers intuitive user experiences by leveraging the best UX capabilities from a significant portfolio of leading portal products and related technologies. From the user's perspective, the integration is seamless.

Business users can easily assemble new portals or composite applications by using Portal Composer and a page editor that includes a library of prebuilt reusable components. They can enhance user experience by wiring components together on the page, configuring content personalization, enabling the use of integrated social tools, and creating data visualizations.

For more information about Oracle WebCenter Portal, see:

22.2 Basic Tuning Considerations

Tuning considerations apply to most WebCenter Portal application deployment scenarios.

It is highly recommended that you review these configurations and implement those that meet your particular usage requirements.

22.2.1 Setting System Limit

To run WebCenter Portal at moderate load, set the open-files-limit to 4096. If you encounter errors, such as running out of file descriptors, then increase the system limit.

For example, on Linux, you can use this command:

ulimit -n 8192

Refer to your operating system documentation to find out how to change this system limit.

22.2.2 Setting JDBC Data Source

To determine the correct setting for the JDBC data source, use the Oracle WebLogic Server Administration Console to monitor the running system database connection usage as described Configuring JDBC Data Sources. If the Waiting for Connection Failure rate is noticeably higher, and the Active Connections Current Count is close to reaching the maximum capacity, then consider increasing the capacity to avoid potential database connection contention.

However, if the Active Connections Current Count is routinely lower than the maximum capacity, consider reducing the capacity to save memory.

For more information, see Configuring Connection Pool Features in Oracle Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server.

The following data source settings are WebCenter Portal defaults for data sources mds-SpacesDS and WebCenterDS. These settings can be adjusted depending on the application's usage pattern and load.

    <jdbc-connection-pool-params>
        <initial-capacity>10</initial-capacity> 
        <max-capacity>50</max-capacity> 
        <capacity-increment>1</capacity-increment> 
        <shrink-frequency-seconds>0</shrink-frequency-seconds> 
        <highest-num-waiters>2147483647</highest-num-waiters> 
        <connection-creation-retry-frequency-seconds>0</connection-creation-retry-frequency-seconds> 
        <connection-reserve-timeout-seconds>60</connection-reserve-timeout-seconds>
        <test-frequency-seconds>0</test-frequency-seconds> 
        <test-connections-on-reserve>true</test-connections-on-reserve> 
        <ignore-in-use-connections-enabled>true</ignore-in-use-connections-enabled>
       <inactive-connection-timeout-seconds>0</inactive-connection-timeout-seconds>
        <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name> 
        <login-delay-seconds>0</login-delay-seconds>
        <statement-cache-size>5</statement-cache-size> 
        <statement-cache-type>LRU</statement-cache-type> 
        <remove-infected-connections>true</remove-infected-connections> 
        <seconds-to-trust-an-idle-pool-connection>60</seconds-to-trust-an-idle-pool-connection> 
        <statement-timeout>-1</statement-timeout> 
        <pinned-to-thread>false</pinned-to-thread> 
    </jdbc-connection-pool-params>

For information on how to edit MDS data source settings, see Tuning Data Source Connection Pools in Oracle Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server.

22.2.3 Setting JRockit Virtual Machine (JVM) Arguments

JVM arguments are set in the setDomainEnv.sh file on Unix operating systems and the setDomainEnv.cmd file on Windows operating systems. The setDomainEnv file is located in the domain_dir/bin directory.

  • WebLogic Server production mode: When WebCenter Portal is installed for production deployment, the WebLogic Server is set to production mode. However, if it is installed for development and then switched to production mode for better performance, you need to include the following parameter in the startup command:

    -Dweblogic.ProductionModeEnabled=true
    

    For information on setting your domain to production mode by using the Administration Console, see Change to production mode in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help.

  • Heap size: If the server is overloaded, that is, garbage is collected or an out-of-memory error occurs frequently, then increase the heap size as appropriate to your server's available physical memory.

    For more information, see Tuning Java Virtual Machines (JVMs) and Set Java options for servers started by Node Manager in the Oracle Fusion Middleware Oracle WebLogic Server Administration Console Online Help.

    The following parameters can be modified in the server's startup command or through the Administration Console to increase heap size:

    jrockit vm: -Xms2048M -Xmx2048M -Xns512M
    
    hotspot vm: -Xms2048M -Xmx2048M -XX:MaxPermSize512M
    

22.2.4 Using Content Compression to Reduce Downloads

If clients connect to your server using relatively slow connections, that is, by using modems or VPN from remote locations, consider compressing the content before it downloads to the client. While content compression increases the load on the server, the client's download experience is much improved.

Note:

Beginning with release 11.1.1.8.0, WebCenter Portal is preconfigured with an ADF caching filter, which automatically sets up caching for static resources and do compression. This preconfigured ADF caching filter is available only for use with WebLogic Server.

Several content compression methods are available. The following steps describe how to use the mod_deflate module from Apache.

  1. Enable mod_deflate module on Apache.

    To do this, add the following to the httpd.conf ($OH/instances/$INSTANCE_NAME/config/OHS/$OHS_NAME)

    LoadModule deflate_module "${ORACLE_HOME}/ohs/modules/mod_deflate.so"

  2. Setup the Output Filter and specify the rules for compression.

    Here is a sample snippet that you can add to the httpd.conf (same location mentioned above). Modify the content based on your content and the compression requirements.

    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom+xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.(?:pdf|doc?x|ppt?x|xls?x)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
    </IfModule>
    

For more information about the mod_deflate module, refer to: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html.

22.3 Tuning Configuration for WebCenter Portal

You can tune configuration parameters to improve the performance of WebCenter Portal.

22.3.1 Setting a Session Timeout for WebCenter Portal

The default session timeout for the WebCenter Portal application is 45 minutes. Administrators can customize the session time to suit their installation. For details see Specifying Session Timeout Settings in Oracle Fusion Middleware Using Oracle WebCenter Portal.

22.3.2 Setting MDS Cache Size and Purge Rate

If you encounter the any of the following conditions, then you can increase the MDS cache size in the adf-config.xml file. The default MDS cache size is 100 MB.

  • Error message JOC region full

  • Frequent MDS database access after the page is warmed up

  • Retained memory by ADF application is close to the max-size-kb

Post deployment, modify these properties through the System MBeans Browser. For more information, see Changing MDS Configuration Attributes for Deployed Applications in Oracle Fusion Middleware Administering Oracle Fusion Middleware.

The following is a sample snippet of the adf-config.xml file:

<cache-config> 
<max-size-kb>150000</max-size-kb> 
</cache-config>

Purging MDS data improves MDS queries. If your portal site changes frequently, you may want to purge old MDS data more often, by reducing the time between purges.

Consider setting the MDS auto-purge seconds-to-live parameter (as shown in the example below) to remove older versions of metadata automatically every hour. By default, old versions of metadata are automatically purged every hour, that is, the auto-purge seconds-to-live parameter is set to 3600 seconds (as shown in the example below).

Note:

Each purge incurs CPU usage in the database. Do not purge too often (for example, every 5 or 10 minutes) because the database CPU impact might outweigh the performance gains from the purge.

If excessive metadata is accumulated and each purge is very expensive, reduce this interval in the adf-config.xml file.

By default, there is no auto-purge entry in the adf-config.xml file. Use the following sample snippet of the adf-config.xml file to modify auto-purge:

<mdsC:adf-mds-config version="11.1.1.000">
    <mds-config xmlns="http://xmlns.oracle.com/mds/config">
      <persistence-config>
        <metadata-namePortal>
           ...
        </metadata-namespace>
        <auto-purge seconds-to-live="3600"/>
      </persistence-config>

To ensure the initial purge does not impact ongoing user activities, consider using the following WLST command to induce an MDS purge immediately before the bulk of the user load hits the system:

The following example shows how to purge all documents in the application repository whose versions are older than 10 seconds:

wls:/weblogic/serverConfig>purgeMetadata(application='[AppName]',server='[ServerName]',olderThan=10)

22.3.3 Configuring Concurrency Management

Concurrency management includes global settings that impact the entire WebCenter Portal and the service and resource specific settings that only impact a particular service.

You can define deployment-specific overrides or additional configuration in the adf-config.xml file. For example, you can specify resource-specific (producers) values that are appropriate for a particular deployment.

The following code snippet describes the format of the global, service, and resource entries in the adf-config.xml file:

<concurrent:adf-service-config 
  xmlns="http://xmlns.oracle.com/webcenterportal/concurrent/config"> 
  <global         
      queueSize="SIZE" 
      poolCoreSize="SIZE" 
      poolMaxSize="SIZE" 
      poolKeepAlivePeriod="TIMEPERIOD" 
      timeoutMinPeriod="TIMEPERIOD" 
      timeoutMaxPeriod="TIMEPERIOD" 
      timeoutDefaultPeriod="TIMEPERIOD" 
      timeoutMonitorFrequency="TIMEPERIOD" 
      hangMonitorFrequeny="TIMEPERIOD" 
      hangAcceptableStopPeriod="TIMEPERIOD" /> 
  <service 
      service="SERVICENAME" 
      timeoutMinPeriod="TIMEPERIOD" 
      timeoutMaxPeriod="TIMEPERIOD" 
      timeoutDefaultPeriod="TIMEPERIOD" /> 
  <resource 
      service="SERVICENAME" 
      resource="RESOURCENAME" 
      timeoutMinPeriod="TIMEPERIOD" 
      timeoutMaxPeriod="TIMEPERIOD" 
      timeoutDefaultPeriod="TIMEPERIOD" /> 
</concurrent:adf-service-config> 

Where:

SIZE: A positive integer. For example: 20.

TIMEPERIOD: Any positive integer followed by a suffix indicating the time unit, which must be one of: ms for milliseconds, s for seconds, m for minutes, or h for hours. For example: 50ms, 10s, 3m, or 1h. The following are examples of default settings for different services. These settings are overwritten with any service-specific configurations in the connections.xml file or the adf-config.xml files:

<concurrent:adf-service-config 
  xmlns="http://xmlns.oracle.com/webcenter/concurrent/config"> 
  <service service="oracle.webcenter.community" timeoutMinPeriod="2s" timeoutMaxPeriod="50s" timeoutDefaultPeriod="30s"/>
  <resource service="oracle.webcenter.community" 
      resource="oracle.webcenter.doclib" 
      timeoutMinPeriod="2s" timeoutMaxPeriod="10s" timeoutDefaultPeriod="5s"/> 
  <resource service="oracle.webcenter.community" 
      resource="oracle.webcenter.collab.calendar.community" 
      timeoutMinPeriod="2s" timeoutMaxPeriod="10s" timeoutDefaultPeriod="5s"/> 
  <resource service="oracle.webcenter.community" 
      resource="oracle.webcenter.collab.rtc" 
      timeoutMinPeriod="2s" timeoutMaxPeriod="10s" timeoutDefaultPeriod="5s"/> 
  <resource service="oracle.webcenter.community" 
      resource="oracle.webcenter.list" 
      timeoutMinPeriod="2s" timeoutMaxPeriod="10s" timeoutDefaultPeriod="5s"/> 
  <resource service="oracle.webcenter.community" 
      resource="oracle.webcenter.collab.tasks" 
      timeoutMinPeriod="2s" timeoutMaxPeriod="10s" timeoutDefaultPeriod="5s"/> 
</concurrent:adf-service-config>

Note:

All the attributes except service and resource are optional, and therefore, for example, the following tags are valid:

<global queueSize="20"/>
    <resource service="foo" resource="bar" timeoutMaxPeriod="5s"/>

You can use the Enterprise Manager System MBean Browser to view, add, modify, and delete the concurrency configuration based on your usage pattern. To access the MBean Browser, see Accessing the System MBean Browser in Oracle Fusion Middleware Administering Oracle WebCenter Portal.

  1. In System MBean Browser, navigate to:

    Application Defined MBeans -> oracle.adf.share.config -> Server: (your server name) -> Application: (your application name) ->ADFConfig -> ADFConfig (bean) -> ADFConfig -> WebCenterConcurrentConfiguration -> Operations -> listResource

    Figure 22-1 System MBean Browser - WebCenterConcurrentConfiguration

    Description of Figure 22-1 follows
    Description of "Figure 22-1 System MBean Browser - WebCenterConcurrentConfiguration"
  2. To view the current concurrency settings, select listResource, and then click Invoke (Figure 22-2).

    Figure 22-2 System MBean Browser - listResource

    Description of Figure 22-2 follows
    Description of "Figure 22-2 System MBean Browser - listResource"
  3. To change a setting, select setResource, enter the resource details, and then click Invoke (Figure 22-3).

    Figure 22-3 System MBean Browser - setResource

    Description of Figure 22-3 follows
    Description of "Figure 22-3 System MBean Browser - setResource"

    Take care to enter the correct values for service, resource, name and value.

    Note:

    If the resource parameter that you are attempting to modify already has a [value] setting, you must remove the setting first by invoking the [removeResource] operation (Figure 22-4).

    Figure 22-4 System MBean Browser - removeResource

    Description of Figure 22-4 follows
    Description of "Figure 22-4 System MBean Browser - removeResource"
  4. To save changes, navigate to Application Defined MBeans: ADFConfig:ADFConfig -> save, and click Invoke.

22.4 Tuning Tools and Services Configuration

You can tune the performance of tools and services used by WebCenter Portal.

For information about how to tune and improve the performance of back-end servers, for example, mail servers, BPEL servers, content servers, and so on, refer to the appropriate product documentation for each server.

22.4.1 Tuning Performance of Announcements

To manage overall resource usage for the announcements, you can tune the Connection Timeout property:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample code snippet of the connections.xml file to change the default timeout to 5 seconds:

<Reference name="Jive-7777" className="oracle.adf.mbean.share.connection.webcenter.Announcement. AnnouncementConnection">
<Factory className="oracle.adf.mbean.share.connection.webcenter.forum.ForumConnectionFactory"/>
          <StringRefAddr addrType="connection.time.out">
             <Contents>5</Contents>
          </StringRefAddr>
       </RefAddresses>
</Reference>

22.4.2 Tuning Performance of Discussions

To manage the overall resource usage for discussions, you can tune the Connection Timeout property:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample snippet of the connections.xml file:

<Reference name="Jive-7777" className="oracle.adf.mbean.share.connection.webcenter.forum.ForumConnection">
         <Factory className="oracle.adf.mbean.share.connection.webcenter.forum.ForumConnectionFactory"/>
         <RefAddresses>
            <StringRefAddr addrType="forum.url">
               <Contents>http://[machine]:[port]/owc_discussions_5520</Contents>
               <StringRefAddr addrType="connection.time.out">
               <Contents>5</Contents>
            </StringRefAddr>
         </RefAddresses>
</Reference>

22.4.3 Tuning Performance Instant Messaging and Presence

To manage the overall resource usage for instant messaging and presence, you can tune the Connection Timeout property:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample code snippet of the connections.xml file to change the default timeout to 5 seconds:

<Reference name="IMPService-LCS"
   className="oracle.adf.mbean.share.connection.webcenter.rtc.RtcConnection">
  <Factory className="oracle.adf.mbean.share.connection.webcenter.rtc.RtcConnectionFactory"/>
   <RefAddresses>
    <StringRefAddr addrType="connection.time.out">
     <Contents>5</Contents>
    </StringRefAddr>
   </RefAddresses>
</Reference>

22.4.4 Tuning Performance of Mail

To manage the overall resource usage for mail, you can tune the Connection Timeout property:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample code snippet of the connections.xml file to change the default timeout to 5 seconds:

<Reference name="MailConnection"
className="oracle.adf.mbean.share.connection.webcenter.mail.MailConnection">
  <StringRefAddr addrType="connection.time.out">
      <Contents>5</Contents>
  </StringRefAddr>
</Reference>

22.4.5 Tuning Performance of Personal Events

To manage the overall resource usage for personal events, you can tune the Connection Timeout property:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

You can also set a cache expiration period:

  • Default: 10 seconds

  • Minimum: 0 seconds

  • Maximum: 45 seconds

Post deployment, modify the Connection Timeout and Cache Expiration properties through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample code snippet of the connections.xml file to change the default timeout to 5 seconds:

<Reference name="MSExchange-my-pc"className="oracle.adf.mbean.share.connection.webcenter.calendar.PersonalEventConnection">
  <Factory className="oracle.adf.mbean.share.connection.webcenter.calendar.PersonalEventConnectionFactory"/>
  <StringRefAddr addrType="eventservice.connection.timeout">
    <Contents>5</Contents>
  </StringRefAddr>
  <StringRefAddr addrType="eventservice.cache.expiration.time">
    <Contents>5</Contents>
  </StringRefAddr>
 </RefAddresses>
</Reference>

22.4.6 Tuning Performance of RSS News Feeds

To manage the overall resource usage for RSS news feeds, you can adjust the refresh interval and timeout in the adf-config.xml file.

If you must modify these properties, post deployment, use the System MBeans Browser.

The following is a sample snippet of the adf-config.xmlfile:

<rssC:adf-rss-config>
       <rssC:RefreshSecs>3600</rssC:RefreshSecs>
       <rssC:TimeoutSecs>3</rssC:TimeoutSecs>
       <rssC:Configured>true</rssC:Configured>
</rssC:adf-rss-config>

22.4.7 Tuning Performance of Searches

To manage the overall resource usage and user response time for searching, you can adjust the number of saved searches displayed, the number of results displayed, and these timeout values:

  • prepareTimeoutMs: Maximum time that a service is allowed to initialize a search (in ms).

  • timeoutMs: Maximum time that a service is allowed to execute a search (in ms).

  • showAllTimeoutMs: Maximum time that a service is allowed to display all search results (in ms).

Post deployment, modify timeout properties through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample snippet of the adf-config.xmlfile:

<searchC:adf-search-config xmlns="http://xmlns.oracle.com/webcenter/search/config">
         <display-properties>
            <common numSavedSearches="25"/>
            <region-specific>
               <usage id="simpleSearchResultUIMetadata" numServiceRows="5"/>
               <usage id="searchResultUIMetadata" numServiceRows="5"/>
               <usage id="localToolbarRegion" numServiceRows="5"/>
            </region-specific>
         </display-properties>
        <execution-properties prepareTimeoutMs="1000" timeoutMs="3000" showAllTimeoutMs="20000" />
         </execution-properties>
</searchC:adf-search-config>

22.4.8 Tuning Policy Store Parameters

If you are experiencing performance issues post login, especially in the area of permission checks, you may need to tune the policy store parameters as described in OPSS PDP Service Tuning Parameters. Depending on your use case scenarios, performance of WebCenter Portal can be improved by modifying the following parameters:

  • Set oracle.security.jps.policystore.rolemember.cache.warmup.enable to True

  • Modify oracle.security.jps.policystore.rolemember.cache.size based on the number of active portals in your WebCenter Portal deployment.

    Note:

    Only modify this parameter if your WebCenter Portal deployment expects to have more than 3000 active portals.

  • Set oracle.security.jps.policystore.policy.cache.size to 5 times the expected number of portals.

Note:

Always refer to your own use case scenarios before you modify the policy store parameters. For more information, see Oracle Fusion Middleware Administering Web Services before tuning any security parameters.

22.5 Tuning Identity Store Configuration

Performance-related configurations may be required for specific environments.

22.5.1 Tuning the Identity Store when Using SSL

When you configure an identity store for WebCenter Portal, you can choose to configure either an SSL port or a non-SSL port. If you choose an SSL port, by default, the JNDI connections are not pooled causing increased response time and decreased performance when looking up users, groups, or other identity store entities. To address this, do the following:

  1. Open the jps-config.xml file under domain_home/config/fmwconfig/jps-config.xml, locate the idstore.ldap service instance and add the line highlighted below:
    <!-- JPS WLS LDAP Identity Store Service Instance -->
        <serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
           <property name="idstore.config.provider"   value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
           <property name="CONNECTION_POOL_CLASS"    value="oracle.security.idm.providers.stdldap.JNDIPool"/>
           <property name="java.naming.ldap.factory.socket"
    value="javax.net.ssl.SSLSocketFactory"/> 
         </serviceInstance> 
    
  2. Restart all the servers within the domain that are connected to the identity store on an SSL port with the following JVM parameter:
    -Dcom.sun.jndi.ldap.connect.pool.protocol=ssl
    

    You can specify this by modifying setDomainEnv.sh or directly from the console.

22.5.2 Tuning Performance when Using OVD

For Oracle Virtual Directory (OVD), the only object class against which attributes are looked up is inetOrgPerson (and it's parent object classes). Since the Profile Gallery can display attributes not defined in inetOrgPerson, all the additional attributes not covered in inetOrgPerson would require an additional round trip to the identity store.For best performance when using OVD in a production environment, Oracle recommends that you add the following configuration entry (in bold) to the domain-level jps-config.xml file:

        <!-- JPS WLS LDAP Identity Store Service Instance -->
        <serviceInstance name="idstore.ldap"
         provider="idstore.ldap.provider">
            <property name="idstore.config.provider"
value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
            <property name="CONNECTION_POOL_CLASS"
value="oracle.security.idm.providers.stdldap.JNDIPool"/>
 
          <extendedProperty>
            <name>user.object.classes</name>
            <values>
               <value>top</value>
               <value>person</value>
               <value>inetorgperson</value>
               <value>organizationalperson</value>
               <value>orcluser</value>
               <value>orcluserv2</value>
               <value>ctCalUser</value>
            </values>
          </extendedProperty>
        </serviceInstance>

22.5.3 Tuning Performance when Using Active Directory

For best performance when using Active Directory in a production environment, Oracle recommends that you add the following configuration entries (in bold) to the domain-level jps-config.xml file:

        <serviceInstance provider="idstore.ldap.provider"
         name="idstore.ldap">
           <property value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"
           name="idstore.config.provider"/>
          <property value="oracle.security.idm.providers.stdldap.JNDIPool"
           name="CONNECTION_POOL_CLASS"/>
          <property name="PROPERTY_ATTRIBUTE_MAPPING" value="WIRELESS_ACCT_NUMBER=mobile:MIDDLE_NAME=middlename:MAIDEN_NAME=sn:DATE_OF_HIRE=pwdLastSet:NAME_SUFFIX=generationqualifier:DATE_OF_BIRTH=pwdLastSet:DEFAULT_GROUP=primaryGroupID" />
          <property value="sAMAccountName" name="username.attr"/>
          <property value="sAMAccountName" name="user.login.attr"/>
        </serviceInstance> 

Profiles query for all these attributes and there is no default mapping for these attributes in the Active Directory provider. An out-of-the-box Active Directory installation doesn't have any mapping corresponding to DATE_OF_HIRE, DATE_OF_BIRTH.

Note that these two attributes are simply a mapping to some attribute of the correct data type to reduce unnecessary LDAP server calls as Active Directory really doesn't have corresponding attributes with the same semantic meaning.

22.6 Tuning Portlet Configuration

You can tune the performance of portlets in WebCenter Portal.

22.6.1 Tuning Performance of the Portlet Client

Several tuning options are available for Portlet Client.

22.6.1.1 Configuring Supported Locales

To manage the overall resource usage and user response time, you can remove unnecessary locale support, modify portlet timeout and cache size in the adf-config.xml file.

For the Portlet service, 28 supported locales are defined and ready-to-use. You can remove the locales that are unnecessary for your application.

If you must modify these properties, post deployment, you must edit the adf-config.xml file manually. See Editing adf-config.xml in Oracle Fusion Middleware Administering Oracle WebCenter Portal.

The following is a sample snippet of the adf-config.xml file:

<portletC:adf-portlet-config xmlns="http://xmlns.oracle.com/adf/portlet/config">
         <supportedLocales>
           <value>es</value>
           <value>ko</value>
           <value>ru</value>
           <value>ar</value>
           <value>fi</value>
           <value>nl</value>
           <value>sk</value>
           <value>cs</value>
           <value>fr</value>
           <value>no</value>
           <value>sv</value>
           <value>da</value>
           <value>hu</value>
           <value>pl</value>
           <value>th</value>
           <value>de</value>
           <value>it</value>
           <value>pt</value>
           <value>tr</value>
           <value>el</value>
           <value>iw</value>
           <value>pt_BR</value>
           <value>zh_CN</value>
           <value>en</value>
           <value>ja</value>
           <value>ro</value>
           <value>zh_TW</value>
         </supportedLocales>
         <defaultTimeout>20</defaultTimeout>
         <minimumTimeout>1</minimumTimeout>
         <maximumTimeout>300</maximumTimeout>
         <parallelPoolSize>10</parallelPoolSize>
         <parallelQueueSize>20</parallelQueueSize>
         <cacheSettings enabled="true">
           <maxSize>10000000</maxSize>
         </cacheSettings>
</portletC:adf-portlet-config>

22.6.1.2 Configuring Portlet Cache Size

You can modify the portlet cache size in the adf-config.xml file. The default portlet cache size is set to 10 MB.

If you must modify these properties, post deployment, you must edit the adf-config.xml file manually.

For more information, see How to Edit Portlet Client Configuration in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper

22.6.1.3 Configuring Portlet Timeout

You can modify the portlet timeout value in the adf-portlet-config element of the adf-config.xml file.

  • Default: 10 seconds

  • Minimum: 0.1 seconds

  • Maximum: 60 seconds

If you must modify these properties, post deployment, you must edit the adf-config.xml file manually. See Editing adf-config.xml in Oracle Fusion Middleware Administering Oracle WebCenter Portal.

The following is a sample snippet of the adf-config.xml file:

<adf-portlet-config> 
     .... 
  <defaultTimeout>5</defaultTimeout>
  <minimumTimeout>2</minimumTimeout>
  <maximumTimeout>300</maximumTimeout>
</adf-portlet-config>

22.6.2 Enabling Java Object Cache for WSRP Producers

For Portal Framework applications, Oracle recommends that you enable the Java Object Cache (JOC) for WSRP producers so that objects written to the persistent store are cached.

For more information, see Enabling Java Object Cache for Database Persistence Store Access in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper.

22.6.3 Customizing the Container Runtime Environment Options

Customizing container runtime options can improve overall performance.

For more information, see How to Customize the Runtime Environment for JSR 286 Portlets in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper.

22.6.3.1 Suppressing Optimistic Rendering for WSRP Portlets

To suppress the optimistic render of WSRP portlets after a WSRP PerformBlockingInteraction or HandleEvents call, set the Portlet container runtime option in the portlet.xml file to true. For example:

com.oracle.portlet.suppressWsrpOptimisticRender=true

Normally, if a WSRP portlet receives a WSRP PerformBlockingInteraction request (processAction in JSR168/JSR286 portlets) and the portlet does not send any events as a result, the WSRP producer renders the portlet and returns the portlet's markup in response to the PerformBlockingInteraction SOAP message. This markup may be cached by the consumer until the consumer's page renders, and if nothing else affecting the state of the portlet happens (such as the portlet receiving an event), the cached markup can be used by the consumer, eliminating the need for a second SOAP call to GetMarkup.

This assumes that the portlet's render phase is idempotent, which is always a best practice. However, if the portlet expects to receive an event, or rendering the portlet is more costly than a second SOAP message for GetMarkup, the developer may use this container option to suppress the optimistic render of the portlet after a processAction or handleEvent call. The portlet still renders normally when the producer receives the WSRP GetMarkup request.

For more information, see How to Customize the Runtime Environment for JSR 286 Portlets in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper.

22.6.3.2 Setting Portlet Container Runtime Options

You can use the WebCenter Portal-specific excludedActionScopeRequestAttributes container runtime option to specify how to store action-scoped request attributes so that they are available to portlets until a new action occurs.

Request attributes that match any of the regular expressions are not stored as action-scoped request attributes if the javax.portlet.actionScopedRequestAttributes container runtime option is used, in addition to any request parameters whose values match the regular expressions defined in the com.oracle.portlet.externalScopeRequestAttributes container runtime option.

If set to true, you can specify a second value of numberOfCachedScopes and a third value indicating the number of scopes to be cached by the portlet container.

For more information, see How to Customize the Runtime Environment for JSR 286 Portlets in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper.

22.6.3.3 Excluding Request Attributes for Portlets

The excludedActionScopeRequestAttributes is a multivalued, Portlet container runtime property, where each value is a regular expression.

If you use the javax.portlet.actionScopedRequestAttributes container runtime option with a portlet, it is possible to optimize the request attributes that are stored between portlet lifecycles by using the com.oracle.portlet.excludedActionScopeRequestAttributes container runtime option. Any request attributes that are unnecessary to store between lifecycles can be indicated to increase performance.

For more information, see How to Customize the Runtime Environment for JSR 286 Portlets in Oracle Fusion Middleware Developing WebCenter Portal Assets and Custom Components with Oracle JDeveloper.

22.6.4 Tuning Performance of Oracle PDK-Java Producers

To manage the overall resource usage for a Web producer, you can tune the Connection Timeout property:

  • Default: 30000 ms

  • Minimum: 5000 ms

  • Maximum: 60000 ms

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or by using WLST. For details, see:

The following is a sample snippet of the connections.xml file:

<webproducerconnection producerName="wc-WebClipping" urlConnection="wc-WebClipping-urlconn" timeout="10000" establishSession="true" mapUser="false"/>

22.6.5 Setting WSRP Attribute for Portlet-served Resources

To specify the default WSRP requiresRewrite flag to use when generating Resource URLs for portlet-served resources, set the portlet container runtime option (specified in portlet.xml) as follows: com.oracle.portlet.defaultServedResourceRequiresWsrpRewrite

This setting is used for all ResourceURLs created by the portlet, unless overridden by the presence of the oracle.portlet.server.resourceRequiresRewriting request attribute when the ResourceURL methods write() or toString() are called. This setting is also used to specify the WSRP requiresRewriting flag on the served resource response, but can be overridden by the presence of the oracle.portlet.server.resourceRequiresRewriting request attribute when the portlet's serveResource() method returns.

Valid values:

  • unspecified: (Default) The requiresRewrite URL flag is not given a value, and the requiresRewriting response flag for a serveResource operation is based on the MIME type of the response.

  • true: The requiresRewrite URL flag and requiresRewriting response flag is set to true, indicating that the resource should be rewritten by the consumer.

  • false: The requiresRewrite URL flag and requiresRewriting response flag is set to false, indicating that the resource does not necessarily need to be rewritten by the consumer, though the consumer may choose to rewrite the resource.

22.6.6 Setting WSRP Attribute for Resources Not Served by the Portlet

To specify the default WSRP requiresRewrite flag to use when encoding URLs for resources not served by the portlet, set the Portlet container runtime option (specified in portlet.xml) as follows: com.oracle.portlet.defaultProxiedResourceRequiresWsrpRewrite.

This setting is used for all URLs returned by the PortletResponse.encodeURL() method, unless overridden by the presence of the oracle.portlet.server.resourceRequiresRewriting request attribute when the PortletResponse.encodeURL() method is called.

Valid values:

  • true: (Default) The requiresRewrite URL flag is set to true, indicating that the resource should be rewritten by the consumer.

  • false: The requiresRewrite URL flag is set to false, indicating that the resource does not necessarily need to be rewritten by the consumer.

22.6.7 Tuning Performance of OmniPortlet

To manage overall resource usage for OmniPortlets, you can tune the Connection Timeout property:

  • Default: 30000 ms

  • Minimum: 5000 ms

  • Maximum: 60000 ms

Post deployment, modify the Connection Timeout property through Fusion Middleware Control or using WLST. For details, see:

The following is a sample snippet of connections.xml:

<webproducerconnection producerName="wc-OmniPortlet" urlConnection="wc-OmniPortlet-urlconn" timeout="10000" establishSession="false" mapUser="false"/>