Tracing affects system performance. To help ensure optimal performance, specify the minimum tracing level or turn tracing off after debugging the system.
This section provides instructions for accessing the Identity Manager Debug pages and describes how to use these pages to identify and debug Identity Manager performance issues.
See the following sections for information:
You must have the Debug, Security Administrator, or Waveset Administrator capabilities to access and execute operations from the Identity Manager Debug pages. Administrators and Configurator are assigned this capability by default.
If you do not have the Debug capability, an error message results.
Open a browser and log in to the Administrator interface.
Type the following URL:
http:// host:port /idm/debug
host is the application server on which you are running Identity Manager.
port is the number of the TCP port on which the server is listening.
When the System Settings page displays, type the .jsp file name for the debug page you want to open.
http:// host:port /idm/debug/pageName.jsp
Some debugging utilities are not linked from the System Settings page, but you can use them to enhance your ability to gather data for product performance and usability. For a complete list of debug pages, open a command window and list the contents of the idm/debug directory.
Use the Control Timings page to collect and view call timer statistics for different methods. You can use this information to track bottlenecks to specific methods and invoked APIs. You can also use options on the Call Timings page to import or export call timer metrics.
Call timing statistics are only collected while trace is enabled.
Open the Control Timings page, and click Start Timing & Tracing to enable trace and timing.
To stop the timing, click Stop Timing & Tracing or click Stop Timing.
The page re-displays and populates the Show Timings table with a list of methods for which statistics are available and the methods’ aggregate call timer statistics (not broken down by caller).
This table contains the following information:
Method name (Click a method name to see which methods it calls)
To clear the list, click Clear Timing.
You can also use the callTimer command to collect call timer data from the Console. This command is useful when you are debugging performance issues during an upgrade or in other situations where Identity Manager is not running on the application server.
Use the Edit Trace Configuration page to enable and configure tracing for the Java classes provided with your Identity Manager installation.
Specifically, you can use this page to configure the following trace settings:
Choose methods, classes, or packages to trace and specify the level of trace you want to capture.
Send trace information to a file or to standard output.
Specify the maximum number of trace files to be stored and the maximum size for each file.
Specify how dates and times are formatted in the trace output file.
Specify the maximum number of methods to be cached.
Indicate how to write data to the trace file.
Write data to the trace file as the data is generated, or queue the data and then write it to the file.
If you are not using a data source, you can use the Host Connection Pool page to view connection pool statistics. These statistics include the pool version, how many connections were created, how many are active, how many connections are in the pool, how many requests were serviced from the pool, and how many connections were destroyed.
You can also use the Host Connection Pool page to view a summary of the connection pools used to manage connections to the Gateway. You can use this information to investigate low-memory conditions.
Use the List Cache Cleared page to clear recently used XML parsers from the cache and to investigate low memory conditions.
Use the Method Timings page to quickly detect and assess hotspots at a method level.
The following information is gathered from Identity Manager methods and displayed on the Method Timings page:
How many times the methods were called
How many times the methods exited with an error status
Average time consumed by the methods
Minimum and maximum times consumed by invocations of each method
The Method Timings page also contains a table with the following links. You can click these links to view additional information.
Details. Shows call stack information.
History. Shows a graph of call duration compared with the time of the most recent calls.
History data. Shows a list of the most recent calls, showing what time the call was made and the duration of the call.
Identity Manager does not keep stack history by default. To keep stack history and to control its depth, edit Waveset.properites and look at the MethodTimer keys.
The Clear ALL option on the Method Timings page clears all results. This option is enabled by default.
Use the Object Size Summary page to detect problematically large objects that can affect your system.
The Object Size Summary page shows information about the size of objects (in characters) stored in the repository. These objects are listed by type, along with the total number of objects of each type, and the objects’ total combined size, average size, maximum size, and minimum size.
Click an entry in the Type column to view additional size information about that object type. For example, click Configuration to view the ID, name, and size of the largest configuration objects in the repository.
You can also access this size information from the Console command line.
Open the console.
At the command prompt, type:
showSizes [ type[limit ]]
For upgrades, existing objects will report a size of 0 until they have been updated or otherwise refreshed.
Use the Provisioning Threads for Administrator Configurator to view a summary of the provisioning threads in use by the system. This summary is a subset of the information available in Show_Threads.jsp.
Looking at just a single thread dump can be misleading.
Use the System Cache Summary page to view information about the following items to help you investigate low-memory conditions:
Administrator-associated object caches
System object cache
User login sessions
XML parser cache
Use the System Memory Summary page to view how much total and free memory you have available in Mbytes. When you are using memory-intensive functionality such as Reconciliation, this information can help you determine whether there is sufficient memory allocated to the JVM.
You can also use this page to launch garbage collection or to clear unused memory in the JVM for investigating heap usage.
The System Properties page provides information about your environment, including software versions, paths and environmental variables.
Use the System Threads page to see which processes are running so you can verify that automated processes (such as reconciliation or Active Sync) are running.
This page includes information about the process type, process name, its priority, if the process is a daemon, and if the process is still running.
Looking at just a single thread dump can be misleading.
Use the Session Pool Cleared page to clear all of the cached sessions for users who have recently logged in and to investigate low memory conditions.
Use the Waveset Properties page to view and temporarily edit properties in the Waveset.properties file. You can test different property settings for a particular server on which the Waveset.properties file resides without having to restart the server to pick up the changes. The edited property settings only remain in effect until the next time you restart the server.
Use the XML Resource Adapter Caches Flushed and Cleared page to clear test XML resource adapters from the cache and to investigate low memory conditions.