Notas de la versión de Sun Identity Manager 8.1

Tutorial: Solución de problemas de rendimiento

Identity Manager ofrece un tutorial (profiler-tutorial.zip) que le ayuda a usar el analizador para solucionar problemas con formularios, Java, reglas, flujos de trabajo y XPRESS.

Utilice los pasos siguientes para realizar el tutorial.

ProcedurePaso 1: Creación de un proyecto de Identity Manager.

  1. Seleccione File -> New Project.

  2. Cuando aparezca el asistente New Project, especifique lo siguiente y luego haga clic en Next:

    1. En la lista Categories, seleccione Web para indicar el tipo de proyecto que va a crear.

    2. En la lista de proyectos, seleccione Identity Manager Project.


      Nota –

      Debe crear un proyecto normal de Identity Manager para un entorno de desarrollo totalmente funcional. No seleccione la opción Identity Manager Project (Remote).


  3. Rellene los campos siguientes del panel Name and Location y luego haga clic en Next:

    • Project Name: introduzca Idm80 como nombre de proyecto.

    • Project Location: utilice la ubicación predeterminada o especifique otra.

    • Project Folder: utilice la carpeta predeterminada o especifique otra.

  4. Cuando aparezca el panel Identity Manager WAR File Location, introduzca la ubicación del archivo war de Identity Manager 8.1. Normalmente, al descomprimir este archivo se crea un archivo idm.war en el mismo directorio.

  5. Haga clic en Next para pasar al panel Repository Setup.

    Como no debe ser necesario cambiar la configuración predeterminada de este panel, basta con hacer clic en Finish. Cuando vea el mensaje BUILD SUCCESSFUL en la ventana Identity Manager IDE Output, puede extraer los archivos de tutorial del analizador. Consulte las instrucciones del Paso 2: Descompresión del tutorial del analizador.

ProcedurePaso 2: Descompresión del tutorial del analizador

  1. Descomprima profiler-tutorial.zip en el directorio raíz del proyecto. Los archivos extraídos incluyen:

    <project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
    <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
    <project root>/src/org/example/ProfilerTutorialExample.java
    <project root>/PROFILER_TUTORIAL_README.txt
  2. Inicie el analizador. Vaya al Paso 3: Inicio del analizador.

ProcedurePaso 3: Inicio del analizador

  1. Siga las instrucciones de Antes de empezar para ampliar la memoria del servidor y de la JVM donde está Netbeans.

  2. Utilice uno de estos métodos explicados en Descripción general para iniciar el analizador.

  3. Cuando aparezca el cuadro de diálogo Profiler Options, puede especificar las opciones de análisis.

  4. Continúe con el Paso 4: Configuración de las opciones del analizador


    Nota –

    Para obtener información detallada sobre todas las opciones del analizador, consulte Especificación de las opciones del analizador.


ProcedurePaso 4: Configuración de las opciones del analizador

Para realizar este tutorial, especifique las siguientes opciones del analizador:

  1. En la ficha Mode, seleccione Java and IDM Objects para analizar objetos de formulario, Java, regla, flujo de trabajo y XPRESS.

  2. Seleccione la ficha Java Filters.

    Siga los pasos indicados a continuación para desactivar todas las clases Java de Identity Manager excepto sus clases Java personalizadas (en este caso, org.example.ProfilerTutorialExample):

    1. Haga clic en New y aparecerá un campo nuevo vacío al final de la columna Filter.

    2. Escriba com.waveset.* en el campo nuevo y después marque la casilla Exclude.

    3. Vuelva a hacer clic en New.

    4. Escriba com.sun.idm.* en el campo nuevo y después marque la casilla Exclude.

  3. Haga clic en OK para ejecutar el analizador.


    Nota –

    El analizador tarda unos minutos la primera vez que se ejecuta en un proyecto o si se ha realizado hace poco una acción Limpiar un proyecto.


    Cuando el analizador termine el proceso, se le pedirá que inicie la sesión.

  4. Introduzca la contraseña configurator, marque la casilla Recordar contraseña y haga clic en Aceptar para continuar.

  5. Cuando se abra la ventana de Identity Manager, inicie la sesión.


    Nota –

    Normalmente debería iniciar la sesión de Identity Manager como otro usuario, en lugar de volver a hacerlo como configurator . Ya ha iniciado una sesión del analizador como configurador y sólo se admite una entrada por usuario en el grupo de sesiones de Identity Manager. Si utiliza varias entradas, se puede interrumpir el grupo de sesiones y sesgar los resultados del análisis con problemas de rendimiento más granulares.

    Sin embargo, como en este sencillo ejemplo no importa el grupo de sesiones, puede iniciar la sesión como configurator/configurator.


  6. En Identity Manager, seleccione Tareas de servidor -> Ejecutar tareas y después haga clic en ProfilerTutorialWorkflow1.

    El tutorial quizá tarde un poco en responder.

  7. Aunque ahora podría capturar una instantánea, lo que hará será restablecer los resultados, ejecutar el analizador, volver a ejecutarlo y después tomar una instantánea.


    Nota –

    Es mejor ejecutar el analizador un par de veces antes de tomar una instantánea, para asegurarse de que se ceben todas las cachés, se compilen todos los JSPs, etc..

    La ejecución repetida del analizador le permite concentrarse en los problemas de rendimiento reales. La única excepción a esta regla es cuando un problema acapara las propias cachés.


    1. Regrese a la vista del analizador de IDM en Identity Manager IDE. Haga clic en el icono Restaurar resultados recogidos de la sección Profiling Results (o de Controls) para restablecer todos los resultados recogidos hasta ahora.

    2. En Identity Manager, vuelva a seleccionar Tareas de servidor -> Ejecutar tareas y haga clic en ProfilerTutorialWorkflow1.

    3. Cuando aparezca el diagrama de procesos, vuelva a Identity Manager IDE y haga clic en el icono Capturar instantánea de la sección Profiling Results.

  8. El entorno Identity Manager IDE descarga la instantánea y muestra los resultados en el lado derecho de la ventana.

    Esta área es la vista de llamadas en árbol. En la parte superior de la vista de llamadas en árbol, debe aparecer un archivo /idm/task/taskLaunch.jsp con un tiempo indicado en la columna Time. Debe mostrar que la solicitud completa tardó seis+ segundos.

  9. Expanda el nodo /idm/task/taskLaunch.jsp, verá que ProfilerTutorialWorkflow1 tardó seis segundos.

  10. Expanda el nodo ProfilerTutorialWorkflow1. Observe que activity2 tardó cuatro segundos y activity1 dos.

  11. Expanda activity2.

    Observe que action1 tardó dos segundos y action2 también dos.

  12. Expanda action1 y observará que <invoke> también tardó dos segundos.

  13. Haga doble clic en <invoke> para abrir ProfilerTutorialWorkflow1.xml y resalte la línea siguiente:


    <invoke name=’example’ class=’org.example.ProfilerTutorialExample’/>

    Deberá ver que una llamada al método ProfilerTutorialExample tardó dos segundos.


    Nota –

    Está examinando un origen XML que se capturó en la instantánea, no el origen en el proyecto. Las instantáneas son totalmente autocontenidas. (Para obtener más información, consulte Búsqueda y gestión de orígenes en el analizador.)


  14. Seleccione la ficha CPU:<fecha><hora> para volver a la instantánea.

  15. Expanda el nodo <invoke> y observe que el analizador tardó dos segundos en el método de Java ProfilerTutorialExample.example().

  16. Haga doble clic en el nombre del método para abrir el origen ProfilerTutorialExample.java y resalte la línea siguiente:


    Thread.sleep(2000);

    ¡Ahí está el problema! Este método contiene una inactividad de subproceso de dos segundos.

  17. Si vuelve a la vista de llamadas en árbol, verá que todas las rutas de dos segundos conducen a este método. (Debe ver tres rutas, con un total de seis segundos.)

  18. Seleccione la ficha Hotspots (situada en la parte inferior del área de llamadas en árbol) para abrir la vista de zonas activas. Fíjese en que ProfilerTutorialExample.example() tiene un tiempo propio total de seis segundos.

    (Para obtener más información sobre las zonas activas, consulte Uso de la vista de instantáneas.)

  19. Haga clic con el botón secundario en ProfilerTutorialExample.example() y seleccione Show Back Traces en el menú emergente.

    Aparece una nueva ficha Back Traces en la parte inferior del área.

  20. Expanda el nodo ProfilerTutorialExample.example() de la ficha Back Traces para comprobar que este método se ha llamado desde tres sitios y que ha tardado dos segundos desde cada sitio.

    (Para obtener más información sobre los retroseguimientos, consulte Uso de la vista de instantáneas.)

  21. Seleccione Save the snapshot en el icono del proyecto para guardar la instantánea y cerrarla.

    Si observa la sección Saved Snapshots de la ficha IDM Profiler, verá la instantánea. (Quizá tenga que desplazarse hacia abajo.)

  22. Seleccione la instantánea guardada y después haga clic en Open para volver a abrirla.


    Nota –

    Puede utilizar el botón Save As para guardar las instantáneas externamente, y el botón Load para cargar instantáneas desde fuera del proyecto.


  23. Vuelva a cerrar la instantánea.

ProcedurePaso 5: Análisis de un flujo de trabajo ManualAction

En la siguiente parte de este tutorial se explica cómo analizar una acción manual de flujo de trabajo.

  1. En Identity Manager, seleccione Tareas de servidor -> Ejecutar tareas y después haga clic en ProfilerTutorialWorkflow2.

    Al cabo de unos instantes aparecerá un formulario vacío.

  2. Haga clic en Guardar y aparecerá el diagrama de procesos.

  3. Vuelva a seleccionar Tareas de servidor -> Ejecutar tareas.

  4. Regrese a la vista del analizador de IDM en Identity Manager IDE y haga clic en el icono Restaurar resultados recogidos de la sección Profiling Results.

  5. A continuación, haga clic en ProfilerTutorialWorkflow2 en Identity Manager.

  6. Cuando aparezca de nuevo el formulario vacío, haga clic en Guardar.

  7. En la vista del analizador de IDM, haga clic en Capturar instantánea.

    Al cabo de unos segundos debe aparecer una instantánea en el área de llamadas en árbol. Observará que /idm/task/workItemEdit.jsp tardó seis+segundos. (Este resultado corresponde a la acción manual en el flujo de trabajo.)

  8. Expanda el nodo /idm/task/workItemEdit.jsp, verá que se tardó un total de seis segundos en ejecutar todas las derivaciones del formulario de acción manual (ManualAction).

  9. Expanda los nodos Derivation, displayNameForm, variables.dummy y <block>.

    Observará que <block> tardó seis segundos, de los cuales el analizador empleó dos segundos en cada una de las tres llamadas al método ProfilerTutorialExample.example().

  10. Puede hacer doble clic en <block> para ver el origen.