30 Oracle WebCenter Portal Performance Tuning

This is a chapter summary element.

This chapter outlines how to tune configuration properties for the operating system on which WebCenter Portal applications are installed, WebCenter Portal applications, and their back-end components.

30.1 About Oracle WebCenter Portal

Oracle WebCenter Portal 11g is an integrated suite of products used to create social applications, enterprise portals, communities, composite applications, and internet or intranet Web sites on a standards-based, service-oriented architecture (SOA). Oracle WebCenter Portal combines the development of rich internet applications, a multi-channel portal framework, and a suite of horizontal Enterprise 2.0 applications, which provide content, presence, and social networking capabilities to create a highly interactive user experience. Interacting with services such as instant messaging, blogs, wikis, RSS, tags, discussion forums, activities and social networks directly within the context of a portal or an application improves user and group productivity and enhances the return on IT investments.

Oracle WebCenter Portal: Spaces is an out-of-the-box WebCenter Portal application that brings you the latest technology in terms of social networking, communication, collaboration, and personal productivity with no development effort. Through the robust set of integrated services and applications provided by Oracle WebCenter Portal's Framework, Composer, and Resource Catalog, the Spaces application enables you to deploy instant community portals, team sites and other collaborative applications.

For more information about Oracle WebCenter Portal, see Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal and Oracle Fusion Middleware Developer's Guide for Oracle WebCenter Portal.

30.2 Basic Tuning Considerations

The tuning considerations in this section apply to most WebCenter Portal and WebCenter Portal: Spaces deployments and usage scenarios. It is highly recommended that you review these configurations and implement those that are appropriate for your use case scenarios.

30.2.1 Setting System Limit

To run a WebCenter Portal application 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.

30.2.2 Setting JDBC Data Source

The following data source settings are the defaults for 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>

To edit JDBC data source settings:

  1. Login to WebLogic Server Administration Console.

  2. From the Home page, select Summary of JDBC Data Sources, Settings for mds-SpacesDS, and then the Connection Pool tab.

  3. Edit properties, as required.

To edit WebCenter Portal data source settings:

  1. Login to WebLogic Server Administration Console.

  2. From the Home page, select Summary of JDBC Data Sources and navigate to the Connection Pool tab.

See also "Tuning Data Source Connection Pools" in Oracle Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server.

30.2.3 Setting JRockit Virtual Machine (JVM) Arguments

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

  • WebLogic Server production mode: When Webcenter 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 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 out of memory error occurs frequently, then increase the heap size as appropriate to your server's available physical memory.

    For more information, see Section 2.4.1.1, "Specifying Heap Size Values" 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
    

30.2.4 Using Content Compression to Reduce Downloads

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

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 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 mod_deflate, refer to: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

30.3 Tuning WebCenter Portal Application Configuration

This section describes parameters that enable administrators to tune performance of WebCenter Portal applications.

This section includes the following:

30.3.1 Setting Session Timeout for a Spaces Application

The default session timeout for a Spaces application is derived from the HTTP session timeout specified in web.xml. The out-of-the-box web.xml setting for <session-timeout> is 45 minutes. See Setting HTTP Session Timeout.

Administrators can use the wcSessionTimeoutPeriod attribute in webcenter-config.xml to increase or decrease the session timeout if required. See also "webcenter-config.xml" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

30.3.2 Setting HTTP Session Timeout

To manage overall resource usage, adjust the application's http session timeout value, in minutes, in the web.xml file. In general, shorter session timeout values correspond to less memory and CPU usage on the server.

If you must modify this property, post deployment, you must edit web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

The following is a sample snippet of web.xml:

<session-config>
       <session-timeout>
          45
       </session-timeout>
</session-config>

30.3.3 Setting JSP Page Timeout

You can specify an integer value, in seconds, after which any JSP page will be removed from memory if it has not been requested in the web.xml file. This frees up resources in situations where some pages are called infrequently.

Increasing the value reduces user response time, and decreasing it reduces application memory foot print. The default value for is 600 seconds or 10 minutes. If jsp_timeout is not specified, it means there is no timeout.

To modify this property post deployment, you must edit web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

The following is a sample snippet of web.xml:

<servlet>
         <servlet-name>
            oraclejsp
        <init-param>
            <param-name>
               jsp_timeout
            </param-name>
            <param-value>
               600
            </param-value>
       </init-param>

30.3.4 Setting ADF Client State Token

Through this setting, you can control the number of pages users can navigate using the browser Back button without losing page state. To reduce CPU and memory usage, you can decrease the value in the web.xml file.

If you must modify this property, post deployment, you must edit web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

The following is a sample code snippet of web.xml:

<context-param>
       <param-name>
          org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS
       </param-name>
       <param-value>
          3
       </param-value>
</context-param>

30.3.5 Setting ADF View State Compression

Through this setting, you can control ADF View State Compression. By default this setting is enabled (parameter value is 'True') and all non-current view states are compressed before saving in memory, which reduces the heap usage.

Though not recommended for WebCenter Portal, you can disable this property by editing the web.xml manually. See "Editing web.xml Properties" in Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal

The following is a sample code snippet of web.xml:

<context-param>
       <param-name> org.apache.myfaces.trinidad.COMPRESS_VIEW_STATE
      </param-name>
       <param-value> false </param-value>
</context-param>

30.3.6 Setting MDS Cache Size and Purge Rate

The default MDS cache size is 100MB. If you encounter the error message, JOC region full, then you can increase the MDS cache size in the adf-config.xml file.

Post deployment, modify these properties through the System MBeans Browser. For more information, see the section "Changing MDS Configuration Attributes for Deployed Applications" in Oracle Fusion Middleware Administrator's Guide.

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

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

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 the auto-purge seconds-to-live="-1" which means no purge. However, if the WebCenter Portal site changes frequently, such as when creating or editing spaces or pages, then auto-purge should be set to an appropriate value to remove older version of metadata for optimal performance.

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

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

<auto-purge seconds-to-live="3600"/>

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)

30.3.7 Configuring Concurrency Management

Concurrency management includes global settings that impact the entire WebCenter Portal and 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 describes the format of the global, service, and resource entries in adf-config.xml:

<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 connections.xml or 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 of 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 for your WebCenter Portal application, see "Accessing the System MBean Browser" in Oracle Fusion Middleware Administrator's Guide for 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 30-1 System MBean Browser - WebCenterConcurrentConfiguration

    Surrounding text describes Figure 30-1 .
  2. To view the current concurrency settings, select listResource, and then click Invoke (Figure 30-2).

    Figure 30-2 System MBean Browser - listResource

    System MBean Browser - listResource
    Description of "Figure 30-2 System MBean Browser - listResource"

  3. To change a setting, select setResource, enter the resource details, and then click Invoke (Figure 30-3).

    Figure 30-3 System MBean Browser - setResource

    SetResources MBean Browser
    Description of "Figure 30-3 System MBean Browser - setResource"

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

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

    Figure 30-4 System MBean Browser - removeResource

    Surrounding text describes Figure 30-4 .
  4. To save changes, navigate to Application Defined MBeans: ADFConfig:ADFConfig -> save, and click Invoke.

30.4 Tuning Back-End Component Configuration

This section describes performance configuration for back-end services used by WebCenter Portal applications. Performance of back-ends such BPEL servers or Oracle WebCenter Content servers, for example, should be tuned as described in guidelines for those back-ends.

This section includes the following sub sections:

30.4.1 Tuning Performance of the Announcements Service

To manage overall resource usage for the Announcements service, 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 using WLST. For details, see:

The following is a sample code snippet of the connections.xml 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>

30.4.2 Tuning Performance of the Discussions Service

To manage overall resource usage for the Discussions service, 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 using WLST. For details, see:

The following is a sample snippet of connections.xml:

<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>

30.4.3 Tuning Performance of the Instant Messaging and Presence (IMP) Service

To manage overall resource usage for the IMP service, 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 using WLST. For details, see:

The following is a sample code snippet of the connections.xml 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>

30.4.4 Tuning Performance of the Mail Service

To manage overall resource usage for the Mail service, 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 using WLST. For details, see:

The following is a sample code snippet of the connections.xml 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>

30.4.5 Tuning Performance of the Personal Events Service

To manage overall resource usage for the Personal Events service, 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 using WLST. For details, see:

The following is a sample code snippet of the connections.xml 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>

30.4.6 Tuning Performance of the RSS News Feed Service

To manage overall resource usage for the RSS News Feed service, 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 adf-config.xml:

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

30.4.7 Tuning Performance of the Search Service

To manage 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 search all results (in ms).

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

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

<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>

30.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 Section 29.3.5, "OPSS PDP Service Tuning Parameters". Depending on your use case scenarios, performance of WebCenter Portal and WebCenter Portal: Spaces, specifically, 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 groups you expect to have in your WebCenter Portal - Spaces environment.

    NOTE: This parameter should only be modified if you expect to have more than 3000 active Spaces in your WebCenter Portal: Spaces environment.

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

Note:

Always refer to your own use case scenarios before modifying the policy store parameters. For more information, see the Oracle Fusion Middleware Security and Administrator's Guide for Web Services before tuning any security parameters.

30.5 Tuning Identity Store Configuration

The following sections describe performance-related configurations that may be required for specific environments.

This section includes the following subsections:

30.5.1 Tuning the Identity Store when Using SSL

When you configure an identity store with WebCenter Portal (using WebLogic Server providers), 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.

  3. Verify that the servers are running with this JVM parameter, and then (for *nix systems) run the following grep command:

    ps -aef | grep WC_Spaces
    

    and verify that the process state specifies com.sun.jndi.ldap.connect.pool.protocol=ssl.

30.5.2 Tuning Performance when Using OVD

For 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>

30.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> 

The People Profile Service queries for all these attributes and there is no default mapping for these attributes in the Active Directory provider. A vanilla Active Directory installation doesn't have any mapping corresponding to DATE_OF_HIRE, DATE_OF_BIRTH.

Note that the 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.

30.6 Tuning Portlet Configuration

This section describes portlet performance-related configuration. This section includes the following sub sections:

30.6.1 Tuning Performance of the Portlet Service

To manage 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 out-of-the-box. You can remove the locales that are unnecessary for your application.

If you must modify these properties, post deployment, you must edit adf-config.xml manually. See "Editing adf-config.xml" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

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

<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>

30.6.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 adf-config.xml manually.

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

<adf-portlet-config> 
     .... 
      <supportedLocales>
      <cacheSettings enabled="true"> 
    <maxSize>10000000</maxSize>
      </cacheSettings> 
</adf-portlet-config>

30.6.3 Enabling Java Object Cache for WSRP Producers

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

The following is a sample snippet of web.xml:

<env-entry> 
  <env-entry-name>oracle/portal/wsrp/server/enableJavaObjectCache
  </env-entry-name>
  <env-entry-type>java.lang.String
  </env-entry-type>
  <env-entry-value>false
  </env-entry-value>
</env-entry>

30.6.4 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 (specified in portlet.xml) as follows: com.oracle.portlet.suppressWsrpOptimisticRender=true.

  • true - optimistic render always suppressed

  • false - optimistic render may be performed

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 the 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.

30.6.5 Tuning Performance of Oracle PDK-Java Producers

To manage 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 using WLST. For details, see:

The following is a sample snippet of connections.xml:

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

30.6.6 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 which 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.

30.6.7 Setting DefaultServedResourceRequiresWsrpRewrite for WSRP Portlets

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.

30.6.8 Setting DefaultProxiedResourceRequiresWsrpRewrite for WSRP Portlets

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.

30.6.9 Importing Consumer CSS Files in IFrame Portlets

To specify to a portal consumer that the CSS file is imported to an IFramed portlet, set the Portlet container runtime option (specified in portlet.xml) as follows: com.oracle.portlet.importCssToIFrame.

Valid values:

  • true - The CSS file from the consumer is applied to an IFramed portlet.

  • false - (Default) Nothing is done.

30.6.10 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 adf-config.xml manually. See "Editing adf-config.xml" in the Oracle Fusion Middleware Administrator's Guide for Oracle WebCenter Portal.

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

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

30.6.11 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"/>