Skip Headers
Oracle® Identity Manager Best Practices Guide
Release 9.1.0.2

Part Number E14761-02
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

4 Tuning Application Server Performance

This chapter describes how to upgrade application servers for Oracle Identity Manager to improve performance. This chapter contains the following sections:

Note:

All tuning parameter suggestions and values in this section are for reference purposes only. Values should be modified based on your needs, application usage patterns, loads, and hardware specifications.

4.1 Oracle WebLogic Server Version 10.x

The following recommendations are specific to Oracle Identity Manager deployed on Oracle WebLogic Server version 10.x:

Note:

Changing any of the settings may require you to restart the server.

See Also:

Oracle® WebLogic Server Performance and Tuning documentation for more information about tuning Oracle Application Server

4.1.1 JVM Memory Settings

This section describes how to increase the JVM memory settings when Oracle Identity Manager is:

4.1.1.1 Deployed on WebLogic Admin Server

When Oracle Identity Manager is deployed on WebLogic admin server, to increase the JVM memory settings:

  1. Use the WebLogic Server Administration Console to shut down the application server gracefully.

  2. Navigate to Weblogic DOMAIN_HOME/bin. For example, C:\bea103\user_projects\domains\base_domain\bin or /opt/bea103/user_projects/domains/base_domain/bin.

  3. Open xlStartWLS.cmd for Microsoft Windows. For UNIX, open xlStartWLS.sh.

    For Microsoft Windows:

    Before "SET JAVA_OPTIONS=....", add any one of the following lines depending on the type of JVM:

    • For Sun and HP JVMs, add: set USER_MEM_ARGS=-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m

    • For JRockit JVMs, add: set USER_MEM_ARGS=-Xms1280m -Xmx1280m -XnoOpt

    • For IBM JVMs, add: set USER_MEM_ARGS=-Xms1280m -Xmx1280

    For UNIX:

    1. Before "JAVA_OPTIONS=...", add any one of the following lines depending on the type of JVM:

      For Sun and HP JVMs, add: USER_MEM_ARGS=-Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m

      For JRockit JVMs, add: USER_MEM_ARGS=-Xms1280m -Xmx1280 -XnoOpt

      For IBM JVMs, add: USER_MEM_ARGS=-Xms1280m -Xmx1280

    2. Add the following line:

      export USER_MEM_ARGS
      

4.1.1.2 Deployed on WebLogic Managed Servers

You can deploy Oracle Identity Manager on WebLogic managed servers. This is the only option for clustered installation. Depending on how you start the managed server, such as by using WebLogic admin console or Node Manager, or by running the scripts, changes must be made in different locations.

4.1.1.2.1 Starting the Managed Server By Using the xlStartManagedServer script

When managed servers are started by running the xlStartManagedServer script, repeat the steps for increasing the JVM memory settings when Oracle Identity Manager is deployed on Weblogic admin server for script DOMAIN_HOME/bin/xlStartManagedServer.sh or DOMAIN_HOME/bin/xlStartManagedServer.cmd. For more information, see "Deployed on WebLogic Admin Server".

4.1.1.2.2 Starting the Managed Server By Using Admin Console

When Managed Servers are started by using the Admin console, perform the following steps to increase the JVM memory settings:

  1. Open the WebLogic Server Administration Console.

  2. Click Environment, Servers, SERVER_NAME, for example OIM_SERVER1.

  3. Click the Server Start tab.

  4. Change the JVM Memory values as shown in the procedure when Oracle Identity Manager is deployed on WebLogic admin server.

4.1.2 JDBC Connection Pool

JDBC Datasource xlDS is used by the WebLogic JMS for JMS operations. JDBC Datasource XlXADS is used by Oracle Identity Manager for all other purposes. To increase the capacity of the JDBC connection pools:

  1. Open the WebLogic Server Administration Console.

  2. For JDBC Datasource xlXADS:

    1. Click Services, JDBC, Data Sources, xlXADS, and then click the Connection Pool tab.

    2. Set the same value for Initial Capacity and Maximum Capacity. For example, you can set Initial Capacity and Maximum Capacity as 50.

    For JDBC Datasource xlDS:

    1. Click Services, JDBC, Data Sources, xlDS, and then click the Connection Pool tab.

    2. Set the same value for Initial Capacity and Maximum Capacity. For example, you can set Initial Capacity and Maximum Capacity as 50.

  3. Save and activate the changes.

    Note:

    Ensure that any increase in number of connections on the application server connection pools are compensated by database configuration changes.

4.1.3 Number of Message Driven Beans

Oracle Identity Manager uses Message Driven Beans (MDBs) for processing all offline activities, such as reconciliation, auditing, requests, and attestation. By default 16 MDB instances concurrently serve request for each module. However based on the requirement this can be increased by modifying the Weblogic Work Manager configuration. For more information refer to Weblogic documentation.

4.1.4 Changing the Number of Open File Descriptors for UNIX (Optional)

WebLogic limits the number of open file descriptors in the <WL_HOME>/common/bin/commEnv.sh script to 1024. In some cases, if there is a huge number of concurrent users, WebLogic may throw the "TOO MANY OPEN FILES" exception. If you face this error, then increase the limit beyond 1024. Ensure that the operating system is able to handle the increase in the number of open files.

4.2 IBM WebSphere Application Server Version 6.1

The following recommendations are specific to Oracle Identity Manager deployed on IBM WebSphere Application Server version 6.1:

Note:

Changing any of the settings may require you to restart the server.

4.2.1 JVM Memory Settings

To increase the JVM memory settings for a nonclustered environment:

  1. Log in to the WebSphere Administrative Console by using the following URL:

    http://WEBSPHERE_HOSTNAME:WEBSPHERE_ADMIN_PORT /admin
    
  2. Select Servers, and then select Application Servers.

  3. Select the server name.

  4. Go to Server Infrastructure, and then click Java and Process Management.

  5. Select Process Definition.

  6. Go to Additional Properties, and then click Java Virtual Machine and enter the following values:

    Minimum Heap Size = 1280

    Maximum Heap Size = 1280

    Generic JVM Arguments = -Xjit:disableLocalVP,disableGlobalVP

  7. Click OK.

  8. Click Save to commit the setting.

Note:

For a clustered environment, the changes in the aforementioned procedure must be done on each server in the cluster.

4.2.2 JDBC Connection Pool

The xlConnectionPool is used by the WebLogic JMS for JMS operations. XlXAConnectionPool is used by Oracle Identity Manager for all other purposes. To increase the capacity of the JDBC connection pool

  1. Log in to the WebSphere Administrative Console.

  2. Select Resources, JDBC, Data Sources, and then select Non XA DataSource. Select Connection pool properties under Additional properties. Enter the following values.

    Minimum connections = 10

    Maximum connections = 50

  3. Click OK and then click Save.

  4. Select Resources, JDBC, Data Sources, and then select XA DataSource. Select Connection pool properties under Additional properties. Enter the following values.

    Minimum connections = 30

    Maximum connections = 50

  5. Click OK and then click Save.

4.2.3 Number of Message Driven Beans

Oracle Identity Manager uses MDBs for processing all offline activities, such as reconciliation, auditing, requests, and attestation. The default number of MDBs may not be enough for a heavy load.

Note:

Depending on the JMS being used in the installation, choose the specific instructions accordingly.

To increase the number of MDBs for default JMS messaging:

  1. Click Resources, Resource Adapters, and J2C activation specifications.

  2. For each queue specification:

    1. Click J2C activation specification custom properties from Additional Properties.

    2. On Page 1, select the maxConcurrency link and set Value to 20.

    3. Click OK and then click Save.

    4. Click on the arrow to go to Page 2.

    5. On Page 2, select the maxConcurrency link and set Value to 20.

    6. Click OK and then click Save.

    Note:

    When you increase the number of MDBs, the JDBC connection pool may also need to be increased accordingly.

To increase the number of MDBs for nondefault JMS messaging, increase the value of Maximum Sessions for the corresponding listener port. For example, if you are using the MDBs for reconciliation, select the listener port that you use for reconciliation and increase the value of Maximum Sessions.

4.2.4 Thread Pool

To increase the server thread pool:

  1. Log in to the WebSphere Administrative Console.

  2. Click Application Servers, click the server on which Oracle Identity Manager is deployed, and then click Thread Pools.

  3. Click Default and set the values of Minimum Size and Maximum Size. For example, enter 20 for Minimum Size and 75 for Maximum Size.

  4. Click Save.

    Note:

    For a clustered environment, the changes in the aforementioned procedure must be implemented on each server in the cluster.

    Also ensure that the CPU capacity supports the increase in threads.

4.3 JBoss Application Server Version 4.2.3

The following recommendations are specific to Oracle Identity Manager deployed on JBoss Application Server version 4.2.3:

Note:

Changing any of the settings may require you to restart the server.

4.3.1 JVM Memory Settings

Depending on the operating system of your environment, perform the following:

For Microsoft Windows:

  1. Open the JBOSS_HOME\bin\run.bat file in a text editor.

  2. Locate the following line:

    set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
    
  3. Change the memory settings to the following recommended values:

    set JAVA_OPTS=%JAVA_OPTS% -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
    
  4. Save and close the run.bat file.

For UNIX:

  1. Open the JBOSS_HOME/bin/run.conf file in a text editor.

  2. Locate the following line:

    JAVA_OPTS="-Xms128m -Xmx512m"
    
  3. Change the memory settings to the following recommended values:

    JAVA_OPTS="-server -Xms1280m -Xmx1280m -XX:PermSize=128m -XX:MaxPermSize=256m"
    
  4. Save and close the run.conf file.

4.3.2 JDBC Connection Pool

To modify the JDBC connection pools, open the JBOSS_HOME/server/default/deploy/xell-ds.xml file and make the following changes:

Note:

For a clustered installation of Oracle Identity Manager on JBoss Application Server, the xell-ds.xml file can be located at JBOSS._HOME/server/all/farm.
  1. For the jdbc/xlDS pool, insert the following before the line </local-tx-datasource>:

    <min-pool-size>10</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <blocking-timeout-millis>15000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes>
    
  2. For the jdbc/xlXADS pool, insert the following before the line </xa-datasource>:

    <min-pool-size>30</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <blocking-timeout-millis>15000</blocking-timeout-millis>
    <idle-timeout-minutes>15</idle-timeout-minutes>
    

4.3.3 Thread Pool

To increase the number of threads:

  1. Open JBOSS_HOME/server/default/conf/jboss-service.xml.

    Note:

    For a clustered installation of Oracle Identity Manager on JBoss Application Server, the jboss-service.xml file can be located at JBOSS._HOME/server/all/conf.
  2. Set the maximum pool size as follows and save the file:

    <mbean code="org.jboss.util.threadpool.BasicThreadPool" name="jboss.system:service=ThreadPool">
    ...
    <attribute name="MaximumPoolSize">50</attribute>
    ...
    </mbean>
    

Note:

When you increase the number of threads, the JDBC connection pool may also need to be increased accordingly.

Also ensure that the CPU capacity supports the increase in threads.

4.3.4 JMS Pool Size

To increase the JMS pool size:

  1. Open the JBOSS_HOME/server/default/deploy/jms/jms-ds.xml file in a text editor.

    Note:

    For a clustered installation of Oracle Identity Manager on JBoss Application Server, open the JBOSS_HOME/server/all/deploy/jms/hajndi-jms-ds.xml file in a text editor.
  2. Set the maximum pool size as follows and save the file:

    <tx-connection-factory>...<max-pool-size>20</max-pool-size>...</tx-connection-factory>
    

Note:

When you increase the JMS pool size, the JDBC connection pool may also need to be increased accordingly.

4.3.5 Number of Message Driven Beans and DQL Retry

To increase the size of MDBs:

  1. Open the JBOSS_HOME/server/default/conf/standardjboss.xml file in a text editor.

    Note:

    For a clustered installation of Oracle Identity Manager on JBoss Application Server, open the JBOSS_HOME/server/all/conf/standardjboss.xml file in a text editor.
  2. Locate the following xml fragment:

    <invoker-proxy-binding>
    <name> message-driven-bean</name>
    ...
    <MinimumSize>4</MinimumSize>
    <MaximumSize>20</MaximumSize>
    ...
    
  3. Add the following to this fragment:

    <DLQConfig>
    ...
    <MaxTimesRedelivered>5</MaxTimesRedelivered>
    ...
    </invoker-proxy-binding>
    

    When you add the aforementioned attribute, the JMS messages are redelivered as many times as defined by this attribute in case of failure.

Note:

When you make these changes, the JDBC connection pool may also need to be increased accordingly.

4.3.6 Deployment Scanning

To disable deployment scanning:

  1. Open the JBOSS_HOME/server/default/conf/jboss-service.xml file in a text editor.

    Note:

    For a clustered installation of Oracle Identity Manager on JBoss Application Server, open the JBOSS_HOME/server/all/conf/jboss-service.xml file in a text editor.
  2. Locate and edit the xml fragment as follows:

    <!-- An mbean for hot deployment/undeployment of archives. 
    --> 
    <mbean code="org.jboss.deployment.scanner.URLDeploymentScanner" 
    name="jboss.deployment:type=DeploymentScanner,flavor=URL"> 
    ... 
     
    <attribute name="ScanPeriod">5000</attribute> 
    <attribute name="ScanEnabled">False</attribute> 
    ... 
    </mbean>
    

4.4 Oracle Application Server Version 10.1.3.x

The following recommendations are specific to Oracle Identity Manager deployed on Oracle Application Server version 10.1.3.x:

Note:

Changing any of the settings may require you to restart the server.

To upgrade Oracle Application Server and apply the patches for Oracle Application Server, see Metalink note 553266.1.

4.4.1 JVM Memory Settings

To increase the Oracle Application Server heap size:

  1. Open the ORACLE_HOME/opmn/conf/opmn.xml file in a text editor.

  2. Locate the following memory setting:

    -XX:MaxPermSize=128M -ms512M -mx1024M
    
  3. Change the memory setting to:

    -ms1280m -mx1280m -XX:PermSize=128m -XX:MaxPermSize=256m
    
  4. Save and close the ORACLE_HOME/opmn/conf/opmn.xml file.

Note:

For a clustered installation, repeat the steps on all the Oracle Application Server instances where Oracle Identity Manager is deployed.

4.4.2 JDBC Connection Pool

Do not change any parameter of the connection pool by using Oracle Application Server control. This may cause a user to be locked on the database side. It is recommended to make connection pool changes in the configuration file as follows:

  1. Stop the Oracle Application Server instance where Oracle Identity Manager is deployed.

  2. Open the ORACLE_HOME/j2ee/INSTANCE_NAME/config/data-sources.xml file and implement the following changes:

    1. For xlConnectionPool the minimum and maximum connection pool values should be set as follows:

      min-connections="10"

      max-connections="50"

    2. For xlXAConnectionPool, the minimum and maximum connection pool values should be set as follows:

      min-connections="30"

      max-connections="100"

Note:

For a clustered installation, repeat the steps on all the Oracle Application Server instances where Oracle Identity Manager is deployed.

4.4.3 Number of Message Driven Beans

Oracle Identity Manager uses MDBs for processing all offline activities, such as reconciliation, auditing, requests, and attestation. The default number of MDBs may not be enough for a heavy load. To increase the number of MDBs, perform the following:

  1. Change the number of MDBs as follows:

    For File-based JMS Persistence (Default OIM Installation):

    1. Open OIM_HOME/DDTemplates/BO/orion-ejb-jar.xml.

    2. Change value of listener-threads for all the MDBs to 20. This represents the numbers of MDBs for each queue.

    For database/AQ based JMS Persistence:

    1. Open OIM_HOME/DDTemplates/BO/orion-ejb-jar.xml.

    2. Change value of Receiver-Threads for all the MDBs to 20. This represents the numbers of MDBs for each queue.

  2. After changing the values, change the directory to OIM_HOME/setup and run the following script:

    For Microsoft Windows:

    patch_oc4j.cmd oc4j_admin_password oim_schema_password

    For UNIX:

    patch_oc4j.sh oc4j_admin_password oim_schema_password

  3. After the patch completes, restart the application server. This will rebuild the application with the latest modified values for MDBs.

Note:

For a clustered installation, repeat the steps on all the Oracle Application Server instances where Oracle Identity Manager is deployed.

When you increase the number of MDBs, the JDBC connection pool may also need to be increased accordingly