Skip to main content

OIM Tuning

  • Application Module tuning is a critical setting which will affect the UI performance. Following are the recommended application module settings for OIM and these are already set out-of-box (OOB) in later releases of OIM 11g R2. Ensure that these settings are implemented as recommended in your environment.
  • -Djbo.ampool.doampooling=true -Djbo.ampool.minavailablesize=1
    -Djbo.ampool.maxavailablesize=120 -Djbo.recyclethreshold=60 -
    Djbo.ampool.timetolive=-1 -Djbo.load.components.lazily=true -
    Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1 -
    Djbo.connectfailover=false -Djbo.max.cursors=5 -
    Doracle.jdbc.implicitStatementCacheSize=5 -
    Doracle.jdbc.maxCachedBufferSize=19
              open DOMAIN_HOME/bin/setDomainEnv.sh file for the WebLogic Server
              instance.find these lines:
              JAVA_OPTIONS="${JAVA_OPTIONS}"
              export JAVA_OPTIONS

              and change it to:

              JAVA_OPTIONS="-Djbo.ampool.doampooling=true -Djbo.ampool.minavailablesize=1
              -Djbo.ampool.maxavailablesize=120 -Djbo.recyclethreshold=60 -
              Djbo.ampool.timetolive=-1 -Djbo.load.components.lazily=true -
              Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1 -
              Djbo.connectfailover=false -Djbo.max.cursors=5 -
              Doracle.jdbc.implicitStatementCacheSize=5
              -Doracle.jdbc.maxCachedBufferSize=19 ${JAVA_OPTIONS}"

              Use the below formula to change
              Djbo.ampool.maxavailablesize if your # of concurrent users is different from 100.
              Djbo.ampool.maxavailablesize = # of concurrent users + 20%

              • It is recommended to increase the heap and permgen memory for production environments as below and monitor the memory usage pattern. Based on the usage, you can choose to increase or decrease the memory settings.

              Open DOMAIN_HOME/bin/setOIMDomainEnv.sh file and change the value of DEFAULT_MEM_ARGS and PORT_MEM_ARGS from the default value and save. Restart OIM Server.

              JMS Tuning
              • It is recommended to change the defaults (-1) of ‘Messages Maximum’ property 400000.To do that:

              Goto WebLogic Server Administration Console and then Click Services=>Messaging=> JMS
              Servers=>OIMJMSServer=>Thresholds and Quota to change ‘Messages Maximum’.

              Disable Reloading of Adapters and Plug-in Configuration:

              • This configuration is configured in the /db/oim-config.xml configuration file, which is located in MDS where OIM stores the configuration.

              To do so:
              In the oim-config.xml file, replace the following for adapters:
              <ADPClassLoaderConfig adapterReloadingEnabled="true" loadingStyle="ParentFirst"
              reloadInterval="15" reloadingEnabled="true">
              With:
              <ADPClassLoaderConfig adapterReloadingEnabled="false"
              loadingStyle="ParentFirst" reloadInterval="15" reloadingEnabled="false">

              Replace the following for plug-ins:
              <storeConfig reloadingEnabled="true" reloadingInterval="20"/>
              With:
              <storeConfig reloadingEnabled="false" reloadingInterval="20"/>
              Save the oim-config.xml file and import it back to MDS.


              Enable OIM Caching:

              • Caching is configured in the /db/oim-config.xml configuration file, which is located in MDS where OIM stores the configuration. You can use Oracle Enterprise Manager (EM) to turn on caching or export the oim-config.xml to make changes and then import back to turn on caching.

              Change the following caching settings for optimal and better performance.
              ฀ Set the caching to true for all the components except the following two sections:
              threadLocalCacheEnabled="false"
              "StoredProcAPI" enabled="false"
              ฀ Set clustered="false" for non-clustered installation and clustered="true" for clustered installation.
              Caching changes can be done in /db/oim-config.xml using EM -> System MBean Browser -> oracle.iam ->XMLConfig -> Config -> XMLConfig.CacheConfig -> Cache -> XMLConfig.CacheConfig.CacheCategoryConfig –> Attributes.

              Note: Changing this value gets saved into MDS database schema used by the OIM servers. So changing it once is good enough for multi node/Clustered installations.




              Comments

              Popular posts from this blog

              Developing Prepopulate Adapter with OIM 11g R2

              1.      Prepopulate Adapter in OIM uses the plugin point oracle.iam.request.plugins.PrePopulationAdapte r. 2.      Write the Java code which returns the value which has to be populated on the form. 3.      This code will implement the plugin point oracle.iam.request.plugins.PrePopulationAdapte r. Code Snippet: - package com.oracle.oim.utility.eventhandler; import java.io.Serializable; import java.util.Iterator; import java.util.List; import java.util.logging.Logger; import oracle.iam.identity.exception.NoSuchUserException; import oracle.iam.identity.exception.UserLookupException; import oracle.iam.identity.usermgmt.api.UserManager; import oracle.iam.identity.usermgmt.vo.User; import oracle.iam.platform.Platform; import oracle.iam.platform.authz.exception.AccessDeniedException; import oracle.iam.request.exception.RequestServiceException; import oracle.iam.request.vo.Beneficiary; import oracle.iam.request.vo.RequestData; public c

              Creating Role through OIM API - 11gR2

              package com.oim.utilities; import java.util.HashMap; import oracle.iam.identity.rolemgmt.api.RoleManager; import oracle.iam.identity.rolemgmt.api.RoleManagerConstants; import oracle.iam.identity.rolemgmt.vo.Role; import oracle.iam.platform.OIMClient; public class RoleManagement  { static RoleManager roleManager=null; static OIMClient client=null; @SuppressWarnings("null") public static void createRole(String roleName){ System.out.println("RoleManagement :: createRole :: role name is "+roleName); try  { if (roleName!=null) { HashMap<String, Object> mapAttrs = new HashMap<String, Object>();; mapAttrs.put(RoleManagerConstants.ROLE_NAME, roleName); mapAttrs.put(RoleManagerConstants.ROLE_DISPLAY_NAME,roleName); mapAttrs.put(RoleManagerConstants.ROLE_DESCRIPTION, roleName); Role role = new Role(mapAttrs); // Initialising the OIM Connection client=ClientOIM.initialise(); System.out.println("RoleManagemen