Esta sección contiene información nueva y corregida que se ha conocido tras publicar la documentación de Identity Manager 8.1.
Esta información se ha dividido como sigue:
Esta sección contiene nueva información y corrección de erratas del documento Sun Identity Manager 8.1 Business Administrator’s Guide:
La información siguiente se agregará al capítulo sobre seguridad:
Identity Manager ahora proporciona una opción de autenticación llamada Login Recovery (Recuperación de los datos de acceso) como alternativa al acceso basado en preguntas de seguridad de la opción Contraseña olvidada. Esta nueva forma de autenticación implementa un sistema de confusión de mensajes que interpreta todos los errores y aciertos con el mismo mensaje genérico para impedir la recopilación ilegal de datos de las cuentas de usuario. El método de recuperación de los datos de acceso funciona de la misma manera que el método Forgot my User Id (He olvidado mi Id de usuario) y ambos utilizan los mismos atributos de configuración. Se diferencian en que Login Recovery también restablece la contraseña del usuario y envía a la dirección de correo electrónico de éste un mensaje con su nombre de usuario y su contraseña. (ID-18052)
Puede configurar el método Login Recovery para que sustituya a la opción de acceso basado en preguntas redirigiendo el botón de contraseña olvidada, o bien puede habilitar un nuevo botón llamado Login Recovery en la página de inicio de sesión. Puede configurar ambos métodos modificando el archivo de configuración del sistema.
Para redirigir el botón Contraseña olvidada a Login Recovery, configure lo siguiente:
ui.web.user.questionLogin.forceLoginRecovery = true ui.web.admin.questionLogin.forceLoginRecovery = true |
Para usar el botón Login Recovery en lugar del botón Contraseña olvidada, configure lo siguiente:
ui.web.user.disableLoginRecovery = false ui.web.admin.disableLoginRecovery = false ui.web.user.disableForgotPassword = true ui.web.admin.disableForgotPassword = true ui.web.user.disableForgotUserId = true ui.web.admin.disableForgotUserId = true |
El mecanismo de mensajes de confusión que ayuda a la opción Login Recovery a impedir la recopilación ilegal de cuentas está habilitado de forma predeterminada en los archivos loginRecovery.jsp. Puede configurar esta misma opción en los archivos lookupUserId.jsp.
Esta sección contiene nueva información y corrección de erratas del documento Sun Identity Manager 8.1 System Administrator’s Guide:
Incluye la siguiente información:
Las tareas que figuran a continuación se han trasladado del adaptador al paquete de tareas de Identity Manager versión 8.0. Deberá actualizar las rutas de acceso si tiene la opción de seguimiento habilitada para cualquiera de estas tareas o si ha definido tareas personalizadas que hagan referencia a estos paquetes.
Nombre de paquete anterior |
Nombre de paquete nuevo |
---|---|
com.waveset.adapter.ADSyncFailoverTask |
com.waveset.task.ADSyncFailoverTask |
com.waveset.adapter.ADSyncRecoveryCollectorTask |
com.waveset.task.ADSyncRecoveryCollectorTask |
com.waveset.adapter.SARunner |
com.waveset.task.SARunner |
com.waveset.adapter.SourceAdapterTask |
com.waveset.task.SourceAdapterTask |
Esta sección contiene nueva información y corrección de erratas del documento Sun Identity Manager Deployment Guide:
En la sección Adding Localization Support for the WIC de Sun Identity Manager Deployment Guide se describe la forma de ver las cadenas de texto del esquema de exportación de la página Configuración del tipo de exportador de datos en otro idioma. Sin embargo, estas instrucciones deberían dejar claro que sólo han de realizar ese procedimiento aquellos clientes que no utilicen los idiomas incluidos de forma oficial en el producto. Los idiomas disponibles oficialmente en IDM son los siguientes: chino simplificado, chino tradicional, coreano, japonés, alemán, español, francés, italiano y brasileño. (ID-19264)
El paquete de Identity Manager 8.1 incluye un archivo jar de configuración de versiones locales que contiene un archivo WICMessages.properties con mensajes en otros idiomas. Si va a utilizar Identity Manager en un idioma distinto del inglés, puede ver los mensajes traducidos de WICMessages.properties. Por ejemplo, puede acceder a la URL de la interfaz de Identity Manager Administrator en un navegador con lang=ja.
Asimismo, el ejemplo utilizado en la citada sección es inapropiado. Dado que el alemán es uno de los idiomas admitidos, los clientes alemanes no necesitan realizar el procedimiento que en ella se indica.
En esta guía falta la descripción de los siguientes códigos de error de inicio de sesión: (ID-5657)
Identity Manager proporciona los siguientes códigos de error, que pueden ser utilizados por programas personalizados para comprobar el estado del inicio de sesión. Los valores reales de las cadenas son números escritos entre paréntesis (por ejemplo, 101 o 102). El archivo Constants.java contiene los siguientes códigos de error:
LIGHTHOUSE_USER_NOT_FOUND = 101; LIGHTHOUSE_AUTHN_FAILED = 102; RESOURCE_AUTHN_SUCCESSFUL = 104; RESOURCE_AUTHN_FAILED = 108; X509_CERT_NOT_FOUND = 110; END_USER_ATTEMPTED_LOGIN_TO_ADMIN_APP = 120; LIGHTHOUSE_USER_DISABLED = 140; LIGHTHOUSE_USER_LOCKED = 180;
La descripción del objeto System Configuration debería contener la siguiente información sobre los siguientes atributos:
ProvisioningDisabledUserShouldThrow: cuando se configura como "true", se impedirá cualquier intento de provisionar un usuario inhabilitado a un recurso y se generará un error. Si el atributo no está configurado como "true", la provisión se impide igualmente, pero no se genera ningún error. (ID-20064)
security.delegation.historyLength: controla el número de delegaciones anteriores que se han registrado. (ID-13331)
runPasswordLoginOnSuccess: cuando se configura como "true", Identity Manager ejecuta el flujo de trabajo de Password Login (inicio de sesión con contraseña) cuando un usuario inicia la sesión de forma correcta tras responder a las preguntas de autenticación. El valor predeterminado de esta propiedad es "false". (ID-10030)
PasswordSyncThreshold: cuando se habilita la sincronización de contraseñas en un recurso para el que Identity Manager también puede iniciar cambios de contraseña, este atributo sirve para impedir bucles en dicho cambio. (ID-7887) Cuando se inicia un cambio de contraseña desde Identity Manager, éste configura la contraseña en el recurso y la biblioteca PasswordSync notifica el cambio a Identity Manager. A continuación, Identity Manager compara el valor de lastPasswordDate del objeto de usuario con la hora y fecha actuales. Si la diferencia es menor que el valor de PasswordSyncThreshold, Identity Manager no tiene en cuenta el cambio de contraseña. De esta forma, se hace caso omiso de ese cambio extra o innecesario.
PasswordSyncResourceExcludeList: enumera los nombres de recursos que siempre deberían quedar excluidos de la sincronización.(ID-3275)
process.handleNativeChangeToAccountAttributes: cuando se configura como "true", se habilita la auditoría de valores de los atributos. Esta propiedad está desactivada de forma predeterminada. (Nota: esto habilita la auditoría de valores de atributos para los procesos de reconciliación y provisión.) (ID-3275)
sources.subject: especifica el nombre de acceso del administrador designado como propietario de la tarea del adaptador de origen. (ID-19694
sources.host: especifica el servidor en el que se ejecuta la tarea del adaptador de origen.
security.saveNoValidateAllowedFormsAndWorkflows: presenta la lista de ID de formularios y flujos de trabajo que se procesarán como una acción SaveNoValidate. El resto de formularios y flujos de trabajo pueden procesarse como una acción Save. Si esta lista no está presente, se mantiene el mismo comportamiento para todos los formularios y flujos de trabajo (todos ellos se procesarán como SaveNoValidate.) (ID-19474)
El exportador de datos proporciona un sistema para extraer de forma periódica datos administrados o procesados por Identity Manager y exportarlos a un conjunto de tablas de un sistema de gestión de bases de datos para su posterior procesamiento. El proceso de exportación está intencionadamente abierto a personalizaciones, algunas de las cuales pueden necesitar intervención manual para su correcto funcionamiento. Los objetos de configuración de Identity Manager que son relevantes para el exportador de datos se conservan y actualizan convenientemente. Sin embargo parte de la personalización del exportador se realiza en los archivos dentro de la aplicación web y éstos requieren un manejo especial.
Durante el proceso de actualización, Identity Manager sobrescribe todos los archivos no modificados del exportador de datos que se encuentran en los directorios $WSHOME y $WSHOME/exporter . Si ha realizado cambios en algún archivo del exportador de datos, el proceso de actualización deja la versión modificada en su sitio e instala la versión más reciente de ese archivo en $WSHOME/patches/Identity_Manager_8_1_0_0_Fecha/filesNotInstalled. Si quiere fusionar la nueva funcionalidad con las personalizaciones realizadas, debe hacerlo de forma manual.
Tenga presente que los siguientes archivos de $WSHOME suelen estar personalizados:
model-export.dtd model-export.xml model-export.xsl exporter/exporter.jar exporter/create_warehouse.* exporter/drop_warehouse.* exporter/hbm/*.hbm.xml
Los pasos de actualización que debe realizar variarán en función de si ha personalizado el exportador de datos en 8.0 y lo que piense hacer con la versión 8.1.
Si ha personalizado el exportador de datos de la versión 8.0 y quiere implementar las funciones de la versión 8.1:
Suprima el esquema del almacén.
Actualice Identity Manager.
Vuelva a crear el esquema con el nuevo DDL del directorio $WSHOME/exporter .
No existen secuencias de comandos de actualización que permitan actualizar el esquema con los datos en su lugar. Por tanto, si necesita conservar los datos, debe exportarlos y luego volverlos a importar. Las tablas y los campos del esquema del almacén de la versión 8.1 son compatibles con los de la versión anterior, aunque en la 8.1 se han agregado tablas y campos nuevos a las tablas existentes. También se ha modificado el orden de los campos. Como resultado, la exportación tiene que ser únicamente de datos, no de datos y DDL.
Fusione las personalizaciones con los nuevos archivos del exportador de la versión 8.1. Si había personalizado model-export.xml, vuelva a compilar el archivo exporter.jar.
Cargue el nuevo esquema del almacén.
Si personalizó el exportador de datos para la versión 8.0 y no quiere implementar las funciones de la versión 8.1:
Puede actualizar a la versión 8.1 sin realizar ningún paso adicional. No obstante, si actualiza al exportador de la versión 8.1 pero no actualiza el DDL del almacén, la página Configuración del almacén presenta un mensaje de error que indica que falta la tabla EXT_ADMINGROUP. Esto indica que los nuevos objetos de la versión 8.1 están en su lugar, pero que aún está cargado el antiguo DDL del almacén de la 8.0.
Si no personalizó el exportador de datos para la versión 8.0 y no tiene previsto implementar las funciones de la 8.1:
Suprima el esquema del almacén.
Actualice Identity Manager.
Cargue el nuevo esquema del almacén.
Los datos del almacén se mantienen intactos. No necesita cambiar el DDL si se había personalizado el archivo model-export.xml. Si model-export.xml no estaba personalizado, necesitará cargar el nuevo DDL.
Una vez instalada la versión 8.1, si el archivo model-export.xml correspondiente a esa versión está en su sitio, podrá ver los nuevos tipos de datos y atributos examinando el archivo del esquema en http://server: puerto/idm/model-export.xml. Los tipos de datos y atributos nuevos aparecen marcados con el número de la versión 8.1.
Esta sección contiene nueva información y corrección de erratas del documento Sun Identity Manager Deployment Reference:
En este capítulo falta la siguiente descripción sobre la adición de preguntas de comprobación de contraseñas a los formularios: (ID-7604)
Puede utilizar la propiedad RequiresChallenge para agregar una pregunta de comprobación de contraseñas a determinados formularios. Cuando se habilita esta función, Identity Manager pide al administrador que haya iniciado la sesión que especifique su contraseña antes de procesar una petición. Los formularios que admiten esta opción incluyen:
userForm (formularios de usuario asistente, con fichas y predeterminado)
changePassword (de forma predeterminada, el formulario Modificar contraseña de usuario)
resetPassword (de forma predeterminada, el formulario Reinicializar contraseña de usuario)
La propiedad se especifica de forma diferente para cada uno de los formularios.
Para agregar preguntas de confirmación de la contraseña a un formulario de usuario, agregue el siguiente elemento RequiredElement como se muestra a continuación, con valores de sustitución para contraseña, correo electrónico y nombre completo:
<Property name='RequiredChallenge'> <List> <String>password</String> <String>email</String> <String>fullname</String> </List> </Property> |
El valor de la propiedad es una lista con uno o varios de los siguientes nombres de atributos de la vista de usuario: aplicaciones, adminRoles, assignedLhPolicy, capacidades, controlledOrganizations, correo electrónico, nombre, nombre completo, apellidos, organización, contraseña, recursos, roles.
Para agregar preguntas de confirmación de la contraseña a un formulario changePassword o resetPassword, añada el siguiente elemento <RequiresChallenge> como se muestra a continuación, con valores de sustitución para contraseña, correo electrónico y nombre completo (password, email, y fullname):
<Property name='RequiresChallenge' value='true'/>
Donde el valor de la propiedad puede ser "true" o "false".
Si la propiedad se configura como "true" en el formulario, Identity Manager pedirá al administrador que esté solicitando el cambio que introduzca la contraseña que utilizase para entrar en Lighthouse. Si no se responde correctamente a esta petición (es decir, no se introduce la contraseña actual del administrador), Identity Manager no autoriza el cambio. Si se responde adecuadamente a la petición, Identity Manager autoriza la petición de cambio. Ambos formularios de administración de contraseñas admiten el uso de la propiedad "RequiresChallenge". Cuando esta propiedad tiene el valor "true", se pide al usuario que introduzca la contraseña antigua después de especificar la nueva.
Es posible crear dos claves de catálogos de mensajes personalizados que impidan a Identity Manager mostrar la información de versión cuando un usuario sitúa el cursor sobre el botón de ayuda. La clave UI_END_USER_VERSION oculta la información de la versión en la interfaz de usuario, mientras que la clave UI_VERSION se utiliza en la interfaz de administrador.
Si se configura el valor de la clave como una cadena vacía, no se muestra ninguna información de versión.
En el ejemplo siguiente se inhabilita la versión de información en ambas interfaces.
<Waveset> <Configuration name="sampleCustomCatalog"> <Extension> <CustomCatalog id="defaultCustomCatalog" enabled="true"> <MessageSet language="en" country="US"> <Msg id="UI_END_USER_VERSION"></Msg> <Msg id="UI_VERSION"></Msg> </MessageSet> </CustomCatalog> </Extension> </Configuration> </Waveset>
En el capítulo de formularios ("Forms") falta la siguiente explicación: (ID-18869)
Inicialmente existen dos implementaciones del formulario de cambio de contraseña:
El formulario de cambio de contraseña de usuario final es el predeterminado. Presenta un grupo de campos sencillos con los que el usuario puede cambiar su contraseña. Se agregan y resumen las directivas de contraseña correspondientes a todos los recursos asignados a ese usuario e Identity Manager aplica el cambio de contraseña a todos los recursos asignados.
El formulario de cambio de contraseña básico está presente en las interfaces de administrador y usuario. Proporciona información sobre los recursos asignados al usuario y permite a éste seleccionar de forma individual en qué recursos deberá cambiar la contraseña Identity Manager.
Ambos formularios admiten el uso de la propiedad "RequiresChallenge". Cuando esta propiedad se define como "true", se pide al usuario que introduzca la contraseña antigua después de especificar la nueva.
En los capítulos de formularios y flujos de trabajo de esta guía faltan las siguientes explicaciones sobre la asignación de alcance a los elementos <Variable>: (ID-14915)
Identity Manager asigna un alcance a todos los elementos <Variable> en el momento de declarar el elemento. Si no se asigna ningún valor al atributo de alcance, Identity Manager le asigna un valor local, lo que significa que sólo se puede acceder a la variable desde la sección XPRESS en la que se haya declarado.
Otros atributos de Variable que definen el alcance incluyen:
input: declara que el elemento <Variable> tiene un alcance local y que el valor puede ser inicializado por la acción de llamada.
output: declara que el elemento <Variable> tiene alcance local pero puede devolverse a la acción de llamada.
external: declara una <Variable> que no tiene alcance local, es decir, las asignaciones a esta variable se realizarán dentro del ámbito en que se declarase inicialmente.
En este capítulo falta la siguiente explicación sobre la función de lista blanca de Identity Manager. (ID-19474)
La función de lista blanca de Identity Manager permite cotejar los formularios y flujos de trabajo que utilizan la acción SaveNoValidate con una lista de ID o nombres de formulario. (comprueba la lista en busca de nombres de formulario o ID de propietarios de formularios). La lista de ID, llamada saveNoValidateAllowedFormsAndWorkflows, está situada en el atributo de seguridad del objeto System Configuration. Si el nombre del formulario o el ID de su propietario se encuentran en la lista blanca, el formulario o el flujo de trabajo pueden usar la acción SaveNoValidate. En caso de que ni el nombre del formulario ni el ID del propietario se encuentren en la lista, el formulario o el flujo de trabajo se procesará utilizando una acción Save. Si la lista no está presente, todos los formularios y flujos de trabajo pueden procesarse como SaveNoValidate.
Para implementar esta función en su implantación, deberá agregar cualquier formulario o flujo de trabajo que utilice SaveNoValidate a la lista saveNoValidateAllowedFormsAndWorkflows del objeto System Configuration. Para ver los ID o nombres de formulario que debe agregar, compruebe el registro syslog o active el nivel de seguimiento 4 para com.waveset.ui.util.GenericEditForm y envíe cualquier formulario o flujo de trabajo personalizado que utilice SaveNoValidate. Se registrará una advertencia que incluirá el ID correspondiente. Si se registran nombres de formulario "null" en syslog, compruebe si el formulario de TaskDefinition que se ha ejecutado tiene algún atributo de nombre.
En el capítulo de flujos de trabajo falta la siguiente explicación sobre el flujo handleNativeChangeToAccountAttributes (ID-3275):
Cuando Identity Manager detecta un cambio nativo (es decir, uno que no se ha realizado a través de Identity Manager) en los valores de un atributo auditable de una cuenta de recursos, la aplicación responde ejecutando el flujo de trabajo handleNativeChangeToAccountAttributes, que está asociado a este atributo del objeto System Configuration:
<Attribute name='process'> <Object> <Attribute name='handleNativeChangeToAccountAttributes' value='Audit Native Change To Account Attributes'/> </Object> </Attribute>
Este flujo de trabajo registra los eventos de cambio nativos en el registro de eventos si se ha habilitado el filtro de auditoría de cambios fuera de Lighthouse. En caso contrario, Identity Manager hace caso omiso del evento. Advertencia: preste atención a los métodos que llama desde cualquier flujo de trabajo que sustituya al flujo de trabajo citado anteriormente.
Dado que Identity Manager ejecuta este flujo cada vez que una búsqueda de la cuenta de recursos descubre un cambio nativo, no se debe llamar a ningún método o flujo de trabajo que pueda activar otra búsqueda de esa misma cuenta. Por ejemplo, se producirá un bucle infinito si se hace una llamada a algún método WorkflowServices que ensamble la vista de usuario: getView(User), checkoutView(User) y posiblemente checkinView(User).
El hecho de que Identity Manager maneje cada cambio nativo ejecutando un flujo de trabajo le permite detectar el evento de cambio nativo y manejarlo como considere adecuado, sustituyéndolo o añadiéndolo al flujo de trabajo de cambios nativos predeterminado. Por ejemplo, puede que opte por enviar un correo electrónico a un administrador o un usuario, grabar el evento en una base de datos, poner en cola una actualización que dejaría sin efecto el cambio nativo o incluso llevar ese cambio a los otros recursos.
En el capítulo de flujos de trabajo de esta guía falta la siguiente descripción sobre la forma de especificar el asunto o administrador de una tarea del adaptador de origen. (ID-19694).
Es posible asignar un asunto o administrador a una tarea del adaptador de origen y designar el servidor en el que se ejecuta editando los siguientes atributos del objeto System Configuration. sources.subject especifica el nombre de acceso del administrador designado como propietario de la tarea. sources.host especifica el servidor en el que se ejecuta la tarea. Los nuevos valores del objeto de configuración son, de forma predeterminada:
<Attribute name='sources'> <Object> <Attribute name='hosts'/> <!-- any host is the default --> <Attribute name='subject' value='Configurator'/> </Object> </Attribute>
Esta sección contiene nueva información y corrección de erratas del documento Sun Identity Manager 8.1 Resources Reference:
En la parte relativa a Identity Connectors falta la siguiente información sobre la forma en que ConnectorAdapter implementa el método run(): los argumentos pasados al servicio runResourceAction se pasan a la secuencia de comandos (definida en ResourceAction) como variables directas de la secuencia. (ID-19856)
Esta sección contiene nueva información y correcciones al documento Sun Identity Manager Service Provider 8.1 Deployment:
El elemento ResourceAttribute puede contener un elemento ValidationPolicy. Una directiva de validación se encarga de que el valor que especifique un usuario en la página Parámetros de recurso cumpla los requisitos definidos en otro objeto de directiva distinto.
El ejemplo siguiente hace que el adaptador utilice la directiva de puerto para asegurar que el valor especificado sea válido. La directiva de puerto predeterminada comprueba si el valor es un entero situado entre el 1 y el 65536.
<ResourceAttribute name=.Port. value=.123.> <ValidationPolicy> <ObjectRef type=.Policy. id=.#ID#PortPolicy. name=.Port Policy./> </ValidationPolicy> </ResourceAttribute>
Este documento responde a algunas de las preguntas más comunes sobre el uso de Identity Manager IDE.
La información se ha dividido como sigue:
¿Qué versión de Netbeans debo utilizar?
Respuesta:Utilice la versión a la que se haga referencia en la documentación de Identity Manager suministrada para la versión del complemento de Netbeans que esté utilizando.
Utilice siempre exactamente la versión indicada, ya que incluso los parches pueden anular funcionalidades principales.
El complemento Netbeans funcionaba, hice algo y dejó de funcionar. ¿A qué puede deberse este problema?
Respuesta:Este problema suele deberse a un archivo dañado en el directorio .netbeans. Normalmente, basta con borra el directorio .netbeans y reinstalar el complemento NetBeans para solucionar el problema. (Al borrar el directorio .netbeans se desinstala el complemento NetBeans. Se pierde toda la configuración de usuario, pero el contenido del proyecto queda a salvo.)
Los pasos son:
Cierre NetBeans.
Borre el directorio .netbeans.
Inicie NetBeans.
Instale el complemento NetBeans.
Reinicie NetBeans.
Crear y ejecutar un proyecto lleva mucho tiempo y Identity Manager IDE parece estar copiando gran cantidad de archivos. ¿A qué puede deberse este problema?
Respuesta:Este problema puede tener varias causas:
Que esté usando el complemento Identity Manager IDE 7.0 o 7.1.
Utilice el complemento Identity Manager IDE 8.0. Se han realizado diversos ajustes en el entorno de compilación de configuración (CBE) de Identity Manager IDE 8.0 para mejorar el rendimiento.
Quizá esté usando los comandos Clean sin necesidad.
Cuando se utiliza el comando Clean Project o Clean And Build Project, el software Identity Manager IDE suprime todo el directorio image, que contiene varios millares de archivos. Identity Manager IDE debe copiar todos estos archivos de idm-staging durante la siguiente compilación.
Para usar Identity Manager IDE de manera eficiente, es preciso saber cuándo es el momento de usar los comandos Clean. Para obtener más información consulte la sección “When to Use Clean” del archivo README.txt de Identity Manager IDE.
Ahora que he creado un proyecto de Identity Manager, ¿qué archivos deben registrarse en control de origen?
Respuesta:Para obtener información, consulte la sección “CVS Best Practices” del archivo README.txt de Identity Manager IDE.
Pregunta:¿Cuáles son las prácticas recomendadas para gestionar proyectos en CVS?
Respuesta:Para obtener información, consulte la sección “CVS Best Practices” del archivo README.txt de Identity Manager IDE.
Pregunta:¿Cuándo se importan objetos al repositorio?
Respuesta:Para obtener información, consulte Uso del repositorio.
Pregunta:¿Cómo se añade un nuevo JAR al proyecto?
Respuesta:Consulte la sección “How to add a new JAR dependency” del archivo README.txt de Identity Manager IDE.
¿Qué repositorio debo utilizar para mi zona protegida?
Respuesta:Use el repositorio incrustado para su zona protegida, sobre todo si utiliza Identity Manager 7.1 (o superior), que tiene disponible un repositorio HsSQL. Se pierde funcionalidad cuando no se utiliza el repositorio incrustado.
Para obtener más información, consulte la sección “Working with the Repository” del archivo README.txt de Identity Manager IDE.
Pregunta:¿Cuándo se importan objetos automáticamente?
Respuesta:Tiene que configurar Identity Manager IDE para que importe objetos automáticamente.
Los pasos son:
En el menú de IdM, seleccione Repositorio > Manage Embedded Repository.
Active la opción Automatically Publish Identity Manager Objects en el cuadro de diálogo Manage Embedded Repository.
Esta opción no está disponible para Identity Manager Project (Remote) ni cuando se especifica un repositorio propio.
Seleccione Project > Run Project o Project > Debug Project.
Identity Manager IDE importa automáticamente todos los objetos que hayan cambiado desde la última vez que se ejecutó el proyecto.
La publicación automática de objetos de Identity Manager aumenta el tiempo necesario para iniciar el servidor. Para minimizar el tiempo de inicio del servidor, desactive esta opción y transfiera los objetos explícitamente al repositorio.
¿Cuál es el medio más eficaz de transferir objetos?
Respuesta:Utilice uno de estos métodos para transferir objetos modificados:
Haga clic con el botón secundario sobre uno o más objetos editados en el árbol del proyecto y seleccione Upload Object en el menú emergente.
Para transferir varios objetos, mantenga pulsada la tecla Control mientras selecciona los objetos en la lista.
Seleccione uno o más objetos editados y después elija Repository > Upload Objects en el menú de IdM. Aparece un cuadro de diálogo donde seleccionar objetos para transferir.
Con cualquiera de estos métodos se transfieren los objetos directamente al servidor, lo que evita problemas de latencia en caché y resulta mucho más rápido que Run Project o Debug Project. La función Upload Objects está disponible con independencia del repositorio utilizado.
El servidor de aplicaciones incrustado en Netbeans se cierra automáticamente siempre que se realiza cualquiera de las siguientes operaciones de proyecto:
Limpiar un proyecto
Crear una distribución delta
Crear Jar
Depurar un proyecto
Administrar repositorios incrustados
Perfil de proyecto
Ejecutar un proyecto
El depurador de Identity Manager IDE es lento. ¿A qué puede deberse este problema?
Respuesta:Para aumentar el rendimiento del depurador:
Desactive siempre el monitor de HTTP de Tomcat de la manera siguiente:
Seleccione la ficha Runtime de Identity Manager IDE.
Expanda el nodo Servers y haga clic con el botón secundario en Bundled Tomcat > Properties.
Desactive la opción Enable HTTP Monitor y cierre el cuadro de diálogo.
La próxima vez que inicie Tomcat, el monitor de HTTP estará desactivado.
Si no va a depurar Java, seleccione Project Attach Debugger > Identity Manager XML Object Debugger para usar sólo el depurador de XPRESS.
Si se selecciona Project > Debug Project para un proyecto no remoto de Identity Manager IDE, se inician tanto el depurador de XPRESS como el de Java, y el depurador de Java genera una considerable sobrecarga.
No puedo definir un punto de interrupción en el depurador. ¿A qué puede deberse este problema?
Respuesta:Las condiciones siguientes pueden impedir que se defina un punto de interrupción:
Se acaba de instalar NBM, pero no se ha reiniciado Netbeans.
El XML contiene un elemento de empaquetador <Waveset>.
Identity Manager IDE omite básicamente cualquier archivo que empiece con un elemento de empaquetador Waveset>, ya que interpreta dicho elemento como un archivo de múltiples objetos.
Las funciones siguientes no funcionan con archivos de varios objetos:
Depurador
Comprobador de reglas
Vista preliminar de formulario
Ninguno de los editores
Generador de archivos de importación
Transferencia de objetos
Comparación de objetos
Básicamente, todo lo que se puede hacer con archivos de varios objetos es importarlos. Los únicos archivos que deben contener elementos de empaquetador <Waveset> son los archivos de importación de nivel superior del proyecto.
He definido un punto de interrupción en el depurador y no suspende en dicho punto. ¿A qué puede deberse este problema?
Respuesta:Hay que comprobar dos cosas:
Asegúrese de que el nombre del objeto no contenga una cadena de sustitución de CBE (%%). Las cadenas de sustitución de CBE no se admiten en los nombres de objeto.
Verifique si realmente se ejecuta el código que usted espera. Intente añadir un seguimiento y compruebe si hay algún resultado.
Cuando se desarrollan reglas en Netbeans, ¿por qué no está disponible el modo de diseño para una biblioteca de reglas?
Respuesta:La funcionalidad del modo de diseño está disponible desde el árbol del explorador en la vista de proyectos. Siga estos pasos:
Expanda el nodo de la biblioteca y haga clic con el botón secundario en una regla.
En el menú emergente, seleccione Properties y luego Body.
Históricamente, en Identity Manager no se crea una versión local de las funciones y los objetos de recurso, porque son principalmente ejemplos que se cargan (mediante init.xml) durante la inicialización de Identity Manager y porque los atributos de tipo de objeto pueden variar de una a otra implementación de cliente según el nivel de personalización. A continuación se indican áreas que pueden aparecer en inglés: (ID-16349)
Formularios de usuario y asignaciones de procesos predeterminados
Ejemplo: menús desplegables Editar usuario > Seguridad > Formulario de usuario
Ejemplo: Configurar > Asignaciones de formularios y procesos
Nombres de atributo de objetos de configuración
Ejemplo: Configurar > Interfaz de usuario, nombres concatenados como displayPasswordExpirationWarning
Tareas predeterminadas
Plantillas de tarea
Ejemplo: Tareas del servidor > Configurar tareas > nombres de plantillas de tarea disponibles en la tabla
Etiquetas de tipo de tarea
Ejemplo: Tareas del servidor > Ejecutar tareas > elementos de la segunda columna de la tabla Tareas disponibles
Definiciones de tareas
Ejemplo: Tareas de servidor > Buscar tareas > segundo menú desplegable para seleccionar Definición de tarea
Nombres de informe predeterminado
Ejemplo: Nombres de informe en Informes > Ejecutar informes > Tabla de informe
Nombres de directiva predeterminados
Ejemplo: Cumplimiento > Administrar directivas > nombres y descripciones de directivas de auditoría
Nombres de capacidad predeterminados
Ejemplo: Editar usuario > Seguridad > Capacidades disponibles
Nombres de informes y gráficos predeterminados
Miniaplicaciones diagramas de procesos/flujos de trabajo
Identity Manager ofrece un analizador que ayuda a solucionar problemas de la implementación relacionados con el rendimiento en formularios, Java, reglas, flujos de trabajo y XPRESS.
Formularios, Java, reglas, flujos de trabajo y XPRESS pueden causar problemas de rendimiento y escala. El analizador calcula cuánto tiempo se invierte en distintas áreas de los formularios, Java, normas, flujos de trabajo u objetos XPRESS, lo que le permite determinar si provocan problemas de rendimiento y escala y, en tal caso, averiguar qué partes de dichos objetos producen los problemas.
En esta sección se explica cómo utilizar el analizador de Identity Manager y se incluye un tutorial que le enseñará a solucionar problemas de rendimiento en la implementación.
Esta información se ha dividido en los temas siguientes:
El analizador de Identity Manager sólo es compatible con la versión 7.1 Actualización 1 y versiones posteriores.
En esta sección se describen las características y la funcionalidad del analizador de Identity Manager. La información se ha dividido como sigue:
Puede utilizar el analizador para:
Crear “instantáneas” de los datos analizados.
Una instantánea es el resultado acumulativo de los análisis desde la última vez que se restablecieron todos los resultados de análisis recogidos.
Los resultados de la instantánea pueden verse en cuatro vistas de datos distintas:
Vista de llamadas en árbol proporciona una tabla de árbol con el control del tiempo de llamada y el recuento de invocaciones en todo el sistema.
Vista de zonas activas ofrece una lista lineal de nodos con los controles acumulados de tiempo de llamadas, independientemente del elemento principal.
Vista de retroseguimientos proporciona una pila de llamadas invertida con todas las cadenas de llamada desde las que se ha llamado el nodo (denominado nodo raíz).
Vista de receptores de llamadas muestra un árbol de llamadas agregadas del nodo raíz, cualquiera que sea la cadena principal.
Especificar qué tipo de información se incluye en la instantánea:
Puede incluir cada elemento del formulario, flujo de trabajo y XPRESS o restringir el contenido a un conjunto determinado de elementos.
Puede elegir métodos específicos y constructores de Java para incluir o excluir de la instrumentación. Es posible instrumentar clases de Identity Manager y clases personalizadas.
Gestionar las instantáneas del proyecto así.
Guardar la instantánea en el directorio nbproject/private/idm-profiler del proyecto o en una ubicación arbitraria externa al proyecto.
Puede ver una lista de todas las instantáneas guardadas en la sección Saved Snapshots de la vista del analizador de IDM.
Abrir instantáneas desde el proyecto o cargarlas desde una ubicación arbitraria externa.
Borrar instantáneas.
Buscar nodos específicos por nombre.
En esta sección se explica cómo el analizador busca y gestiona el origen de los siguientes objetos de Identity Manager:
En las vistas de llamadas en árbol o de zonas activas, puede hacer doble clic sobre cualquier nodo que corresponda a un método Java, flujo de trabajo, formulario, regla o XPRESS para ver el origen de ese nodo.
Cuando se toma una instantánea con el analizador, el servidor evalúa todos los datos del análisis y averigua de qué orígenes dependen. A continuación, el servidor recupera todos esos orígenes del repositorio y los incluye en la instantánea. Por tanto, puede tener la certeza de que los objetos de Identity Manager mostrados en la instantánea reflejan con exactitud el punto en que se ha capturado ésta.
Este proceso aumenta el tamaño de la instantánea, pero el tamaño del origen es una fracción relativamente pequeña del tamaño total. En consecuencia, puede enviar una instantánea al servicio de asistencia al cliente de Sun sin necesidad de remitir los archivos de origen por separado.
Cuando se toma una instantánea de origen Java, el cliente la descarga y luego la examina para capturar todos los orígenes Java referenciados del proyecto. Al guardar la instantánea, el cliente aplica zip a los orígenes y los anexa al final de la instantánea.
Después, cuando se visualiza la instantánea y se accede al origen Java, el cliente comprueba primero el contenido de la instantánea. Si no lo encuentra, comprueba el contenido del proyecto. Este proceso permite enviar una instantánea que contenga todos los datos del análisis, tanto del código Java personalizado como del código de Identity Manager.
En una instantánea con origen Java no se debe asumir que el origen está actualizado con el servidor ni que siempre está disponible.
En las secciones siguientes se incluye información que conviene tener en cuenta al evaluar los resultados del analizador:
Para calcular la estadística del tiempo propio de un nodo raíz, el analizador resta los tiempos de todos los nodos secundarios al tiempo total del nodo raíz.
Por tanto, el tiempo de un nodo secundario no instrumentado se refleja en el tiempo propio del nodo raíz. Si un nodo raíz tiene un tiempo propio considerable, conviene indagar la razón. Quizá no haya instrumentado los métodos adecuados y, por tanto, no esté usando el lugar correcto.
Por ejemplo, supongamos que el método A llama al método B.
El método A tarda un total de 10 segundos (tiempo que incluye la llamada a B) y la llamada a B tarda un total de 10 segundos.
Si están instrumentados A y B, la pila de llamadas refleja dicha información. Observará que A tiene un tiempo propio de 0 segundos y que B tiene un tiempo propio de 10 segundos (10 segundos invertidos realmente en B). Sin embargo, si B no está instrumentado, sólo observará que la llamada a A dura 10 segundos y que el tiempo propio de A es 10 segundos. En consecuencia, tal vez asuma que el problema reside directamente en A, no en B.
En concreto, se podrían apreciar largos tiempos propios durante la compilación inicial de JSP. Si restablece los resultados recogidos y vuelve a presentar la página, el tiempo propio será muy inferior.
Dadas las limitaciones de la estrategia de instrumentación de Java, las llamadas iniciales a this() o super() aparecen como llamadas del mismo nivel para la llamada de constructor y no como llamadas secundarias. Consulte el ejemplo siguiente:
class A { public A() { this(0); } public A(int i) { } } and: class B { public static void test() { new A(); } } The call tree will look like this: B.test() -A.<init>(int) -A.<init>() Rather than this: B.test() -A.<init>() -A.<init>(int) |
No se confunda con la aparente gran cantidad de tiempo invertida en diversos threads de daemon de Identity Manager, como ReconTask.WorkerThread.run() o TaskThread.WorkerThread.run(). La mayor parte de este tiempo es inactivo, en espera de eventos. Hay que explorar estos rastros para constatar cuánto tiempo se tarda realmente al procesar un evento.
En esta sección se explica cómo iniciar el analizador y cómo utilizar las diversas funciones de su interfaz gráfica. Esta información se ha dividido como sigue:
Como el analizador acapara mucha memoria, conviene realizar una considerable ampliación de memoria tanto en el servidor como en la máquina virtual de Java (JVM) donde está Netbeans.
Para ampliar la memoria del servidor:
Abra la ventana de Netbeans y seleccione la ficha Runtime.
Expanda el nodo Servers, haga clic con el botón secundario en Bundled Tomcat y seleccione Properties en el menú.
En el cuadro de diálogo Server Manager, desactive la casilla Enable HTTP Monitor de la ficha Connection.
Seleccione la ficha Platform, defina VM Options en -Xmx1024M y haga clic en Close.
Para ampliar la memoria de la JVM que tiene Netbeans:
Abra el archivo netbeans-installation-dir\etc\netbeans.conff y busque la línea:
netbeans_default_options="-J-Xms32m -J-Xmx ...
Cambie el valor de -J-Xmx a -J-Xmx 1024M.
Guarde y cierre el archivo.
Cuando termine, puede iniciar el analizador como se indica en la siguiente sección.
Utilice uno de estos métodos para iniciar el analizador desde la ventana de Identity Manager IDE:
Haga clic en el icono Iniciar analizador de Identity Manager en proyecto principal situado en la barra de menús.
El icono Iniciar analizador de Identity Manager en proyecto principal está disponible si la versión del proyecto principal de Identity Manager es la 7.1 Actualización 1 u otra posterior.
En la barra de menús, seleccione Window -> IDM Profiler.
En el explorador aparece la ventana Identity Manager Profiler. Desde esta ventana, seleccione un proyecto Identity Manager en el menú Current Project (Proyecto actual) y haga clic en el icono Iniciar analizador de la sección Controles.
Haga clic con el botón secundario en un proyecto de la ventana Projects y seleccione Start Identity Manager Profiler en el menú emergente.
Seleccione un proyecto en la ventana Projects y, a continuación, elija IdM -> Iniciar analizador de Identity Manager en la barra de menús.
Al iniciar el analizador, aparece el cuadro de diálogo Profiler Options, donde puede especificar las opciones de análisis que desea utilizar. Las instrucciones para configurar estas opciones se encuentran en Especificación de las opciones del analizador.
En esta sección se describen las funciones de la interfaz gráfica del analizador y cómo utilizarlas. La información se ha dividido como sigue:
El cuadro de diálogo Profiler Options contiene las fichas:
Use las opciones de estas fichas para indicar qué objetos se analizan y qué elementos aparecen en el análisis.
Tras especificar las opciones del analizador, haga clic en OK para iniciarlo. Según la configuración del proyecto, el analizador realiza uno de estos dos procesos:
Si utiliza un proyecto normal de Identity Manager con una instancia incrustada de Identity Manager, el analizador efectúa una compilación completa, la implementa en el servidor de aplicaciones de NetBean e inicia el analizador.
Si utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o el proyecto remoto de Identity Manager, el analizador se conecta a la instancia de Identity Manager configurada para el proyecto.
Puede seleccionar IdM -> Set Identity Manager Instance para controlar la acción de la instancia de Identity Manager para el proyecto.
La ficha Mode ofrece las siguientes opciones:
IDM Objects Only (Sólo objetos de IDM): seleccione esta opción para analizar objetos de formulario, regla, flujos de trabajo y XPRESS. Excluye los objetos de Java del análisis.
Java and IDM Objects (Objetos de Java e IDM): seleccione esta opción para analizar objetos de formulario, Java, reglas, flujos de trabajo y XPRESS.
La opción Java and IDM Objects no está disponible cuando se utiliza un proyecto normal de Identity Manager con una instancia externa de Identity Manager o si se utiliza un proyecto remoto de Identity Manager.
No es posible cambiar la opción Mode mientras se ejecuta el analizador. Para ello debe detener el analizador.
La ficha IDM Object Filters ofrece las siguientes opciones:
Show IDM Object details
Marque esta casilla para incluir en la instantánea cada elemento ejecutado de formulario, flujo de trabajo y XPRESS.
Desactive esta casilla para incluir en la instantánea sólo los siguientes elementos:
<invoke>
<new>
<Rule>
<Form>
<WFProcess>
<ExScript>
<ExDefun>
<FieldRef>
<Action> (para llamadas de aplicación de flujo de trabajo)
Include Anonymous Sources
Anonymous sources (orígenes anónimos) son formularios (o partes de ellos) que se generan sobre la marcha (como los formularios Login y MissingFields) y no corresponden a un formulario persistente situado en el repositorio de Identity Manager.
Marque esta casilla para incluir orígenes anónimos en la instantánea.
Desactive esta casilla para excluir los orígenes anónimos de la instantánea.
Seleccione la ficha Java Filters para:
Incluir o excluir filtros de Java
Crear filtros nuevos
Borrar filtros existentes
Restaurar los filtros predeterminados
Los filtros de Java se suministran en patrones de métodos y se expresan mediante patrones que incluyen o excluyen aplicando un nombre de método canónico. Un nombre de método canónico es:
nombre-clase-completamente-calificado.nombre-método( tipo-parámetro-1, tipo-parámetro-2, ... )
En los constructores, nombre-método es <init>.
He aquí algunos ejemplos:
Para excluir todos los constructores, active la casilla Exclude y añada el filtro siguiente:
*.<init>(*)
Para excluir todos los constructores con un solo parámetro org.w3c.dom.Element, active la casilla Exclude y añada el filtro siguiente:
*.<init>(org.w3c.dom.Element)
Para excluir todas las clases de Identity Manager, active la casilla Exclude y añada los filtros siguientes:
"com.waveset.*" "com.sun.idm.*"
Para instrumentar sólo el código personalizado, desactive la casilla Exclude, suprima el filtro * include inicial y añada luego el filtro siguiente:
"com.yourcompany.*"
Los dos últimos ejemplos son equivalentes porque los filtros se aplican sólo a las clases personalizadas y a las de Identity Manager.
Si es preciso, puede instrumentar otros jar modificando como interese las líneas siguientes en build.xml. Por ejemplo:
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
De forma predeterminada, la configuración incluye todas las clases personalizadas y la mayoría de las clases de Identity Manager. Se excluyen forzosamente diversas clases de Identity Manager, ya que su habilitación interrumpiría el analizador.
Por ejemplo, se excluyen las clases de los motores de flujo de trabajo, formularios y XPRESS porque, de lo contrario, el analizador generaría una instantánea ininteligible al analizar objetos de Java e Identity Manager:
Los filtros de Java ofrecen mucha más granularidad de filtrado que los de objeto de IDM. La instrumentación de Java sobrecarga significativamente el tiempo de ejecución, lo que puede sesgar radicalmente los resultados del análisis. Como los objetos de Identity Manager se interpretan en lugar de compilarse, apenas hay sobrecarga de instrumentación. De ahí que, por ejemplo, no haya razones básicas para excluir el flujo de trabajo A e incluir el flujo de trabajo B, etc.
No es posible modificar los filtros de Java mientras se ejecuta el analizador. Antes debe detener el analizador.
La ficha Miscellaneous ofrece las siguientes opciones:
Prune snapshot nodes where execution time is 0:
Desactive esta opción (valor predeterminado) si quiere que la instantánea incluya información de invocación para todas las entidades ejecutadas, incluso aquellas cuyo tiempo de ejecución es cero.
El número de invocaciones puede resultar útil, incluso para los nodos sin tiempo de ejecución.
Active esta opción para suprimir dichos nodos, lo que le permitirá centrarse en los datos más relevantes del análisis. Además, al activar esta opción se puede reducir drásticamente el tamaño de la instantánea del analizador.
Automatically Open Browser Upon Profiler Start:
Active esta opción (valor predeterminado) cuando ejecute el analizador para abrir automáticamente un navegador que señale a la instancia de Identity Manager analizada.
Desactive esta opción si no quiere abrir un navegador.
Include Java Sources in Snapshot:
Active esta opción (valor predeterminado) para incluir orígenes Java con todos los métodos Java referenciados por los datos del análisis en la instantánea. Siempre debe aplicarse esta opción a las instantáneas del campo. El código Java personalizado es relativamente pequeño y muy valioso por su utilidad.
Desactive esta opción si va a analizar Identity Manager y tiene disponible el origen completo de Identity Manager.
En tales circunstancias, no interesa incluir el origen de Identity Manager, ya que puede generar instantáneas gigantescas. (Consulte Búsqueda y gestión de orígenes en el analizador para obtener más información.)
La vista del analizador de IDM contiene las áreas:
El área Current Project consta de un menú descendente que contiene todos los proyectos actuales. Use este menú para seleccionar el proyecto que desea analizar.
El área Controls contiene cuatro iconos, descritos en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Iniciar analizador de Identity Manager |
Inicia el analizador y abre el cuadro de diálogo Profiler Options. |
|
Detener analizador de Identity Manager |
Detiene el analizador. |
|
Restaurar resultados recogidos |
Restaura todos los resultados del análisis recogidos hasta ese momento. |
|
Modificar análisis |
Vuelve a abrir el cuadro de diálogo Profiler Options para que pueda cambiar las opciones que desee a fin de modificar los resultados del análisis actual. |
El área Status le indica si está conectado al sistema principal y le ofrece información de estado conforme el analizador se inicia, se ejecuta y se detiene.
El área Profiling Results contiene dos iconos, descritos en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Iniciar analizador de Identity Manager |
Inicia el analizador y abre el cuadro de diálogo Profiler Options. |
|
Restaurar resultados recogidos |
Restaura todos los resultados del análisis recogidos hasta ese momento. |
El área Saved Snapshots contiene una lista de todas las instantáneas guardadas.
Las instrucciones para guardar instantáneas se encuentran en Guardar una instantánea.
Además, puede usar uno de los botones siguientes para administrar esas instantáneas:
Open: sirve para abrir las instantáneas guardadas en la ventana de vista de instantáneas.
También se puede hacer doble clic en una instantánea de la lista Saved Snapshots para abrirla.
Delete: para eliminar una instantánea, selecciónela en la lista Saved Snapshots y después haga clic en este botón.
Save as: para guardar una instantánea en una ubicación externa arbitraria, selecciónela en la lista y después haga clic en este botón.
Load: sirve para abrir en la ventana de vista de instantáneas una instantánea situada en una ubicación arbitraria.
Al abrir una instantánea, los resultados aparecen en la ventana de vista de instantáneas, situada en el lado superior derecho de Identity Manager IDE.
Una instantánea ofrece varias vistas de los datos, que se describen en las secciones siguientes:
La vista de llamadas en árbol contiene una tabla de árbol con el control del tiempo de llamada y el recuento de invocaciones en todo el sistema.
Esta tabla contiene tres columnas:
Columna Call Tree: muestra una lista de todos los nodos.
Los nodos de nivel superior son uno de los siguientes:
Métodos Thread.run() para diversos threads de segundo plano en el sistema.
Por ejemplo, si habilita análisis de Java, aparece el método ReconTask.WorkerThread.run().
Controles del tiempo de solicitud
Por ejemplo, si observa la URL idm/login.jsp, observará una entrada de nivel superior para idm/login.jsp. Los datos mostrados en la columna Time de esta entrada representan el tiempo total de esa solicitud o solicitudes. Los datos mostrados en la columna Invocations representan el número total de invocaciones a esa página. Puede estudiar mejor esos datos para averiguar qué llamadas han intervenido en su tiempo.
El árbol de llamadas también contiene nodos con tiempo propio. Los valores de tiempo propio indican cuánto tiempo se ha invertido en el nodo en sí. (Para obtener más información, consulte Advertencias sobre estadísticas.)
Columna Time: muestra el tiempo invertido en cada nodo cuando se le llamó desde su nodo principal. Los porcentajes son relativos al tiempo principal.
Columna Invocations: Indica cuántas veces se ha invocado cada nodo desde su principal.
La vista de zonas activas ofrece una lista lineal de nodos con los controles acumulados de tiempo de llamadas, independientemente del elemento principal.
Esta vista contiene las siguientes columnas:
Self Time: muestra el tiempo total invertido en cada nodo.
Invocations: indica el número total de veces que se ha llamado a cada nodo desde su nodo principal.
Time: muestra el tiempo total invertido en cada nodo y en todos sus secundarios.
La vista de retroseguimientos proporciona una pila de llamadas invertida con todas las cadenas de llamada desde las que se ha llamado el nodo.
Puede usar estas estadísticas para responder a la pregunta: ¿Cuánto tiempo ahorraría si eliminase esta cadena de llamada concreta de este nodo?
Puede acceder a la vista de retroseguimientos desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Back Traces en el menú emergente.
Los valores de datos de Time e Invocations tienen un significado distinto en la vista de retroseguimientos:
Time: los valores de esta columna representan el tiempo invertido en el nodo raíz cuando se le llama desde una cadena determinada.
Invocations: los valores de esta columna representan el número de veces que se ha llamado al nodo raíz desde una cadena de llamada determinada.
La vista de receptores de llamadas muestra un árbol de llamadas agregadas de un nodo (denominado nodo raíz), cualquiera que sea la cadena principal.
Estas estadísticas resultan útiles cuando hay un área problemática que se llama desde muchos lugares mediante el árbol de llamadas maestro y se desea ver el análisis global del nodo.
Puede acceder a la vista de receptores de llamadas desde cualquiera de las demás vistas de instantáneas haciendo clic con el botón secundario en un nodo (denominado nodo raíz) y seleccionando Show Callees en el menú emergente.
Los valores de datos de Time e Invocations de la vista de receptores de llamadas tienen el mismo significado que los de la vista de llamadas en árbol.
Al hacer clic con el botón secundario en una vista de llamadas en árbol o de zonas activas, aparece un menú emergente con las opciones descritas en la tabla siguiente:
Opción de menú |
Descripción |
---|---|
GoTo Source |
Seleccione esta opción para ver el origen XML de un nodo que corresponda a un método Java, flujo de trabajo, formulario, regla o XPRESS. Para obtener información detallada sobre esta vista, consulte Búsqueda y gestión de orígenes en el analizador. |
Show Back Traces |
Seleccione esta opción para acceder a la vista de retroseguimientos. Para obtener información detallada sobre esta vista, consulte Vista de retroseguimientos. |
Show Callees |
Seleccione esta opción para acceder a la vista de receptores de llamadas. Para obtener información detallada sobre esta vista, consulte Vista de receptores de llamadas. |
Find In Hotspots |
Seleccione esta opción para buscar un nodo en la vista de zonas activas. Para obtener más información sobre esta vista, consulte Vista de zonas activas. |
List Options -> Sort -> |
Seleccione esta opción para ordenar por:
|
List Options -> Change Visible Columns |
Seleccione esta opción para cambiar las columnas mostradas en la lista de árbol de llamadas o zonas activas. En el cuadro de diálogo Change Visible Columns puede especificar una o varias de las opciones siguientes:
|
Utilice el icono de búsqueda , situado en la parte superior de la ventana de la vista de instantáneas, para buscar nodos por su nombre en las vistas del árbol de llamadas o de zonas activas.
Otra posibilidad es hacer clic con el botón secundario en la vista de llamadas en árbol o de zonas activas y seleccionar Find in Call Tree o Find in Hotspots (respectivamente) en el menú emergente para buscar un nodo.
El analizador ofrece varias opciones para guardar una instantánea. Encontrará una descripción de estas opciones en la tabla siguiente:
Icono |
Nombre |
Función |
---|---|---|
|
Icono Guardar instantánea en el proyecto (ubicado en la parte superior de la ventana de vista de instantáneas) |
Guarda la instantánea en el directorio nbproject/private/idm-profiler del proyecto. Las instantáneas guardadas en el proyecto aparecen en la sección Saved Snapshots de la vista del analizador. |
|
Icono Guardar instantánea externamente (ubicado en la parte superior de la ventana de vista de instantáneas) |
Guarda la instantánea en una ubicación externa arbitraria. |
|
Botón Save As (situado en el área Saved Snapshots) |
Guarda la instantánea en una ubicación externa arbitraria. |
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.
Seleccione File -> New Project.
Cuando aparezca el asistente New Project, especifique lo siguiente y luego haga clic en Next:
En la lista Categories, seleccione Web para indicar el tipo de proyecto que va a crear.
En la lista de proyectos, seleccione Identity Manager Project.
Debe crear un proyecto normal de Identity Manager para un entorno de desarrollo totalmente funcional. No seleccione la opción Identity Manager Project (Remote).
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.
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.
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.
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
Inicie el analizador. Vaya al Paso 3: Inicio del analizador.
Siga las instrucciones de Antes de empezar para ampliar la memoria del servidor y de la JVM donde está Netbeans.
Utilice uno de estos métodos explicados en Descripción general para iniciar el analizador.
Cuando aparezca el cuadro de diálogo Profiler Options, puede especificar las opciones de análisis.
Continúe con el Paso 4: Configuración de las opciones del analizador
Para obtener información detallada sobre todas las opciones del analizador, consulte Especificación de las opciones del analizador.
Para realizar este tutorial, especifique las siguientes opciones del analizador:
En la ficha Mode, seleccione Java and IDM Objects para analizar objetos de formulario, Java, regla, flujo de trabajo y XPRESS.
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):
Haga clic en OK para ejecutar el analizador.
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.
Introduzca la contraseña configurator, marque la casilla Recordar contraseña y haga clic en Aceptar para continuar.
Cuando se abra la ventana de Identity Manager, inicie la sesión.
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.
En Identity Manager, seleccione Tareas de servidor -> Ejecutar tareas y después haga clic en ProfilerTutorialWorkflow1.
El tutorial quizá tarde un poco en responder.
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.
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.
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.
En Identity Manager, vuelva a seleccionar Tareas de servidor -> Ejecutar tareas y haga clic en ProfilerTutorialWorkflow1.
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.
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.
Expanda el nodo /idm/task/taskLaunch.jsp, verá que ProfilerTutorialWorkflow1 tardó seis segundos.
Expanda el nodo ProfilerTutorialWorkflow1. Observe que activity2 tardó cuatro segundos y activity1 dos.
Expanda activity2.
Observe que action1 tardó dos segundos y action2 también dos.
Expanda action1 y observará que <invoke> también tardó dos segundos.
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.
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.)
Seleccione la ficha CPU:<fecha><hora> para volver a la instantánea.
Expanda el nodo <invoke> y observe que el analizador tardó dos segundos en el método de Java ProfilerTutorialExample.example().
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.
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.)
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.)
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.
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.)
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.)
Seleccione la instantánea guardada y después haga clic en Open para volver a abrirla.
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.
Vuelva a cerrar la instantánea.
En la siguiente parte de este tutorial se explica cómo analizar una acción manual de flujo de trabajo.
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.
Haga clic en Guardar y aparecerá el diagrama de procesos.
Vuelva a seleccionar Tareas de servidor -> Ejecutar tareas.
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.
A continuación, haga clic en ProfilerTutorialWorkflow2 en Identity Manager.
Cuando aparezca de nuevo el formulario vacío, haga clic en Guardar.
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.)
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).
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().
Puede hacer doble clic en <block> para ver el origen.
Esta sección contiene correcciones de documentación a la ayuda en línea.
La página de ayuda “Configure Reports” contiene esta frase, que no debe tenerse en cuenta:
También deben agregarse fuentes a JVM para que los gráficos se muestren correctamente.
La frase es incorrecta. No es necesario añadir fuentes a JVM para a renderizar correctamente texto en el informe PDF.