Sun[TM] Identity Manager 8.0 发行说明

文档补充和更正

本节包括发布 Identity Manager 8.0 文档集后所需的新信息以及更正的信息。此信息分为以下几个部分:


Identity Manager 8.0 管理

本节包含 Sun Identity Manager 管理的更正内容:


Identity Manager 技术部署概述

本节包含有关 Sun Identity Manager 技术部署概述的新信息和文档更正内容:

将在 Identity Manager 技术部署概述的“Identity Manager 的专用标签”一章中添加或更正以下信息:

现在,您可以将浏览器标题栏中的产品名称字符串替换为所选的可本地化的字符串。

  1. 导入以下 XML 文件:
  2. 代码示例 要导入的 XML

    <?xml version='1.0' encoding='UTF-8'?>

    <!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>

    <Configuration name='AltMsgCatalog'>

    <Extension>

    <CustomCatalog id='AltMsgCatalog' enabled='true'>

    <MessageSet language='en' country='US'>

    <Msg id='UI_BROWSER_TITLE_PROD_NAME_OVERRIDE'>Override Name</Msg>

        </MessageSet>

    </CustomCatalog>

    </Configuration>

    </Extension>

  3. 使用 Identity Manager IDE,加载要编辑的系统配置对象。添加新的顶层属性:
  4. Name = customMessageCatalog

    Type = string

    Value = AltMsgCatalog

  5. 打开 ui.web 通用对象,并查找 browserTitleProdNameOverride 属性。将此值设置为 true。
  6. 保存此系统配置对象的更改,然后重新启动应用服务器。
  7. 在“自定义 Identity Manager 最终用户页面”提供的自定义登录页面的说明中,现在应包含以下有关消息关键字的信息。(ID-16072)
  8. JSP 或 Identity Manager 组件

    受影响的界面

    消息关键字

    登录页面 TITLE

    管理员和用户

    UI_LOGIN_TITLE_TO_RESOURCE

    UI_LOGIN_CHALLENGE

    登录页面 SUBTITLE

    管理员和用户

    根据登录模式选择关键字:忘记密码、忘记用户 ID 和登录质询。

    UI_LOGIN_WELCOME3

    UI_LOGIN_WELCOME4

    UI_LOGIN_WELCOME5

    UI_LOGIN_WELCOME6

    UI_LOGIN_CHALLENGE_INFO

    staticLogout.jsp 和 user/staticUserLogout.jsp

    管理员和用户

    UI_LOGIN_TITLE

    continueLogin.jsp

    管理员

    UI_LOGIN_IN_PROGRESS_TITLE

    UI_LOGIN_WELCOME

更改默认“登录身份...”文本

  1. 导入以下 XML 文件:
  2. <?xml version='1.0' encoding='UTF-8'?>

    <!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>

    <Configuration name='AltMsgCatalog'>

    <Extension>

    <CustomCatalog id='AltMsgCatalog' enabled='true'>

    <MessageSet language='en' country='US'>

    <Msg id='UI_NAV_FOOT_LOG_AS'>mytext {0}!</Msg>

    </MessageSet>

    </CustomCatalog>

    </Extension>

    </Configuration>

  3. 在系统配置对象内的 <Configuration><Extension><Object> 元素中添加以下行:
  1. 保存更改,然后重新启动应用服务器。


Identity Manager 工作流、表单和视图

本节包含有关 Sun Identity Manager 工作流、表单和视图的新信息和文档更正内容。

第 1 章:Identity Manager 工作流

第 2 章:工作流服务

锁定置备工作流服务

解除工作流服务的锁定

第 3 章,Identity Manager 表单

相关信息

关于与审计相关的表单处理

指定用户表单

默认的与审计相关的表单

为什么要自定义这些表单?

扫描任务变量

第 4 章,Identity Manager 视图

通用属性

下表中列出了组织视图的高级属性。

名称

是否可编辑?

数据类型

是否必需?

orgName

读取

字符串

系统生成

orgDisplayName

读取/写入

字符串

orgType

读取/写入

字符串

orgId

读取

字符串

系统生成

orgAction

写入

字符串

orgNewDisplayName

写入

字符串

orgParentName

读取/写入

字符串

orgChildOrgNames

读取

列表

系统生成

orgApprovers

读取/写入

列表

allowsOrgApprovers

读取

列表

系统生成

allowedOrgApproverIds

读取

列表

系统生成

orgUserForm

读取/写入

字符串

orgViewUserForm

读取/写入

字符串

orgPolicies

读取/写入

列表

orgAuditPolicies

读取/写入

列表

renameCreate

读取/写入

字符串

renameSaveAs

读取/写入

字符串

orgName

标识组织的 UID。此值不同于大多数视图对象名称,因为组织可以具有相同的简称,但具有不同的父组织。

orgDisplayName

指定组织的简称。此值仅用于显示,不必具有唯一性。

orgType

定义允许值为 junctionvirtual 的组织类型。不属于 junctionvirtual 类型的组织没有值。

orgId

指定用于唯一标识 Identity Manager 内组织的 ID。

orgAction

只有目录连接、虚拟组织和动态组织支持此属性。允许的值为 refresh。当组织为目录连接或虚拟组织时,刷新操作的行为取决于 orgRefreshAllOrgsUserMembers 的值。

orgNewDisplayName

重命名组织时指定新的简称。

orgParentName

标识父组织的完整路径名。

orgChildOrgNames

列出所有直接和间接子组织的 Identity Manager 界面名称。

orgApprovers

列出需要批准此组织中所添加或修改的用户的 Identity Manager 管理员。

allowedOrgApprovers

列出潜在的用户名,这些用户可能成为此组织中所添加或修改的用户的批准者。

allowedOrgApproverIds

列出潜在的用户 ID,这些用户可能成为此组织中所添加或修改的用户的批准者。

orgUserForm

指定此组织的成员用户在创建或编辑用户时所使用的 userForm

orgViewUserForm

指定此组织的成员用户在查看用户时所使用的查看用户表单。

orgPolicies

标识应用于此组织所有成员用户的策略。这是一个使用类型字符串进行标识的对象的列表:每个策略对象包含以下视图属性,这些属性以 orgPolicies[<type>] 为前缀。其中 <type> 表示策略类型(例如,Lighthouse 帐户)。

orgAuditPolicies

指定应用于此组织所有成员用户的审计策略。

renameCreate

将此属性设置为 true 时,将克隆此组织并使用 orgNewDisplayName 的值创建一个新组织。

renameSaveAs

将此属性设置为 true 时,将使用 orgNewDisplayName 的值重命名此组织。

目录连接和虚拟组织属性

名称

是否可编辑?

数据类型

是否必需?

orgContainerId

读取

字符串

系统生成

orgContainerTypes

读取

列表

系统生成

orgContainers

读取

列表

系统生成

orgParentContainerId

读取

字符串

系统生成

orgResource

读取/写入

字符串

是(对于目录连接或虚拟组织)

orgResourceType

读取

字符串

系统生成

orgResourceId

读取

字符串

系统生成

orgRefreshAllOrgsUserMembers

写入

字符串

orgContainerId

指定关联的 LDAP 目录容器的 DN(例如,cn=foo,ou=bar,o=foobar.com)。

orgContainerTypes

列出可以包含其他资源对象的允许的资源对象类型。

orgContainers

列出资源的基本容器,Identity Manager 界面将使用这些容器来显示可供选择的列表。

orgParentContainerId

指定关联的父 LDAP 目录容器的 DN(例如,ou=bar,o=foobar.com)。

orgResource

指定用于同步目录连接和虚拟组织的 Identity Manager 资源的名称(例如,West Directory Server)。

orgResourceType

指出用于同步目录连接和虚拟组织的 Identity Manager 资源的类型(例如,LDAP)。

orgResourceId

指定用于同步目录连接和虚拟组织的 Identity Manager 资源的 ID。

orgRefreshAllOrgsUserMembers

如果此属性为 true 并且 orgAction 的值为 refresh,将同步选定组织及所有子组织的 Identity 组织用户成员资格和资源容器用户成员资格。如果此属性为 false,则不同步资源容器用户成员资格,而只同步选定组织及所有子组织的资源容器和 Identity 组织。

动态组织属性

名称

是否可编辑?

数据类型

是否必需?

orgUserMembersRule

读取/写入

字符串

orgUserMembersRuleCacheTimeout

读取/写入

字符串

orgUserMembersRule

标识(使用名称或 UID)authType 为 UserMembersRule 的规则,在运行时将评估此规则以确定用户成员资格。

orgUserMembersCacheTimeout

如果要对 orgUserMembersRule 返回的用户成员进行高速缓存,指定缓存超时之前的时间(以毫秒为单位)。值为 0 表示不进行高速缓存。

对用户视图的讨论现在包含对 accounts[Lighthouse].delegates 属性的以下讨论:(ID-15468)

accounts[Lighthouse].delegates

列出委托对象并按 workItemType 编制索引,其中每个对象指定特定类型的工作项目的委托信息

accounts[Lighthouse].delegatesHistory

列出委托对象并从 0 到 n 编制索引,其中 n 是委托历史记录对象的当前数量,最多为委托历史记录深度。

此属性有一个唯一属性:selected,这是一个布尔型属性,指出当前选定的委托历史对象。

accounts[Lighthouse].delegatesOriginal

执行获取操作或登出视图操作后生成的原始委托对象列表(按 workItemType 编制索引)。

所有 accounts[Lighthouse].delegates* 属性使用以下属性:

accounts[Lighthouse].delegate* 属性的属性

描述

 

workItemType

指定要委托的 workItem 类型。有关有效的 workItem 类型列表,请参见本文档补充资料的 Identity Manager 技术部署概述一节中的委托对象模型说明。

workItemTypeObjects

列出用户委托将来的 workItem 批准请求时所在的特定角色、资源或组织的名称。当 workItemType 值为 roleApprovalresourceApprovalorganizationApproval 时,此属性有效。

如果未指定,默认情况下,此属性指定在此用户为批准者的所有角色、资源或组织上委托将来的 workItem 请求。

toType

要委托给的类型。有效值为:

manager

delegateWorkItemsRule

selectedUsers

toUsers

列出要委托给的用户的名称(如果 toTypeselectedUsers)。

toRule

指定要评估的规则的名称,以确定一组要委托给的用户(如果 toTypedelegateWorkItemsRule)。

startDate

指定委托的开始日期。

endDate

指定委托的结束日期。

从表单中引用 DelegateWorkItems 视图对象

以下代码示例说明了如何从表单中引用 DelegateWorkItems 视图委托对象:

<Field name='delegates[*].workItemType'>

<Field name='delegates[*].workItemTypeObjects'>

<Field name='delegates[*].toType'>

<Field name='delegates[*].toUsers'>

<Field name='delegates[*].toRule'>

<Field name='delegates[*].startDate'>

<Field name='delegates[*].endDate'>

其中,支持的索引值 (*) 是 workItemType 值。

name

标识用户权利文件(使用唯一标识符)。

状态

指定用户权利文件对象的状态。有效状态包括 PENDING、ACCEPTED、REJECTED、REMEDIATING 和 CANCELLED。

用户

标识此权利文件的关联 WSUser 的名称。

userId

指定关联 WSUser 的 ID。

attestorHint

向证明者显示查看确定规则所提供的(字符串)提示。此提示是规则向证明者提供的“建议”。

userView

包含用户权利文件扫描程序所捕获的用户视图。此视图包含零个或多个资源帐户,具体取决于访问扫描对象的配置。

reviewInstanceId

指定 PAR 任务实例的 ID。

reviewStartDate

指出 PAR 任务的(字符串)开始日期(采用规范格式)。

scanId

指定 AccessScan 任务定义的 ID。

scanInstanceId

指定 AccessScan 任务实例的 ID。

approvalWorkflowName

标识要运行的批准工作流的名称。此值来自访问扫描任务定义。

organizationId

指定扫描时 WSUser 组织的 ID。

attestorComments

列出权利文件的证明记录。每个证明记录会指出与权利文件有关的操作或语句,包括批准、拒绝和重新扫描。

attestorComments[timestamp].name

用于标识列表中此元素的时间戳。

attestorComments[timestamp].attestor

标识对权利文件进行注释的证明者的 WSUser 名称。

attestorComments[timestamp].time

指定证明者证明此记录的时间。可能不同于时间戳。

attestorComments[timestamp].status

指出证明者所分配的状态。它可以是任何字符串,但通常是表明证明者所执行的操作的字符串,例如 approve、reject、rescan 或 remediate。

attestorComments[name].comment

包含证明者所添加的注释。

第 6 章:XPRESS 语言

第 8 章:HTML 显示组件

如何使用 objectSelector 示例代码

  1. 从 Identity Manager IDE 中,打开管理员库用户表单对象。
  2. 在此表单中添加以下代码:
  3. <Include>

       <ObjectRef type='UserForm' name='Scalable Selection Library'/>

    </Include>

  4. 选择 AdministratorFields 字段中的 accounts[Lighthouse].adminRoles 字段。
  5. 使用以下引用替换整个 accounts[Lighthouse].adminRoles
  6. <FieldRef name='scalableWaveset.adminRoles'/>

  7. 保存该对象。
  8. 随后编辑用户并选择“安全”选项卡时,Identity Manager 将显示自定义表单。单击“...”时,将打开选择器组件并显示搜索字段。可以使用此字段来搜索以文本字符串开头的管理员角色,并将字段的值设置为一个或多个值。

    要恢复表单,请通过配置 > 导入交换文件来导入 $WSHOME/sample/formlib.xml

    有关使用 objectSelector 模板来管理环境中具有很多对象的资源和角色的示例,请参见 sample/formlib.xml 中的可伸缩选择库。

  9. TabPanel 组件的讨论现在包含 validatePerTab 属性的以下描述:(ID-15501)

ListEditor

为 Identity Manager 登录页面启用自动完成功能

附录 A:表单和进程映射


Identity Manager 部署工具

本节提供了 Identity Manager 部署工具文档的更正和补充内容:

使用 Identity Manager Profiler

Identity Manager 提供了 Profiler 实用程序,可以帮助您解决部署中遇到的表单、Java、规则、工作流以及 XPRESS 方面的性能问题。

表单、Java、规则、工作流以及 XPRESS 都会造成性能和伸缩问题。Profiler 将会分析这些不同区域所消耗的时间,从而可以确定这些表单、Java、规则、工作流或 XPRESS 对象是否产生了性能和伸缩问题,如果出现问题,将会进一步确定这些对象的哪些部分出现了问题。

本节将介绍如何使用 Identity Manager Profiler,并提供了一个教程帮助您了解如何解决部署中存在的性能问题。信息通过以下方式进行组织:

概述

本节对 Identity Manager Profiler 的功能进行了概述。信息通过以下方式进行组织:

主要功能

可以使用 Profiler 实用程序来执行以下操作

Profiler 查找和管理源的方式

本节介绍了 Profiler 如何查找和管理以下 Identity Manager 对象的源:

对于表单、规则、工作流和 XPRESS 对象     在使用 Profiler 拍摄快照时,服务器会评估所有的性能分析数据并发现该数据所依赖的源。然后,服务器将从系统信息库中获取所有这些源,并将它们包含在快照中。因此,您可以确信显示在快照中的 Identity Manager 对象会准确地反映捕捉到该快照的那一刻的情况。

此过程会增加快照的大小,但相对来说,源大小实际上只是总大小的一小部分。因此,您可以将快照发送到 Sun 的客户支持部门,而不必单独发送源文件。

对于 Java 源     在拍摄 Java 源的快照时,客户机将下载该快照,然后仔细查看快照以便从项目中捕获所有引用的 Java 源。在保存快照时,客户机将压缩这些源并将其附加到快照的结尾处。

然后,在您查看快照并转至 Java 源时,客户机将首先检查快照的内容。如果客户机在该处找不到快照内容,则会检查项目的内容。此过程允许您发送包含性能分析数据(来自自定义 Java 代码和 Identity Manager 代码)的快照。


在 Java 源快照中,不能假定源相对于服务器而言是最新的或始终可用。


统计信息注意事项

以下各节包含评估 Profiler 提供的结果时要考虑的信息:

自用时间统计     要计算根节点的自用时间,Profiler 将从根节点的总时间中减去所有子节点的时间。

因此,未分析的子节点的时间会反映在根节点的自用时间中。如果根节点的自用时间很长,则应该查明原因。您可能没有分析适当的方法,因此导致您处理的位置不当。

例如,假设方法 A 调用方法 B。

方法 A 总耗时为 10 秒(这里总时间包括调用方法 B 的时间),并且调用方法 B 总耗时也为 10 秒。

如果分析了方法 A 和 B,则调用栈会反映出该信息。您将看到,方法 A 的自用时间为 0 秒,而方法 B 的自用时间为 10 秒(这 10 秒实际上是在方法 B 中花费的)。但是如果未分析方法 B,则只会看到调用方法 A 耗时 10 秒,并且 A 的自用时间为 10 秒。因此,您可能认为问题就是出在方法 A 中,而不是方法 B 中。

需特别指出的是,您在最初编译 JSP 期间,会注意到 JSP 的自用时间很长。如果您重置收集的结果,然后再重新显示该页,则自用时间将会显著减少。

构造函数调用     因为 Java 分析策略中存在某些限制,所以 this() 或 super() 的初始调用将显示为构造函数调用的同级调用,而不是子级调用。请参见以下示例:

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)

守护线程     不要被表面上许多 Identity Manager 守护线程(如 ReconTask.WorkerThread.run() 或 TaskThread.WorkerThread.run())所耗费的大量时间所误导。其中大部分时间是在休眠(等待事件)中度过的。必须仔细研究这些情况,以了解这些线程在处理事件时实际使用的时间。

入门

本节介绍了如何启动 Profiler 以及如何使用 Profiler 图形用户界面的各种功能。此信息分为以下几个部分:

准备工作

由于 Profiler 将耗费巨大的内存,因此您应该显著增加服务器和 Netbeans Java 虚拟机 (Java Virtual Machine, JVM) 的内存。

完成后,可以按下一节中所述的方法启动 Profiler。

启动 Profiler

可以使用以下任意方法从 Identity Manager IDE 窗口中启动 Profiler:

启动 Profiler 时,会显示“Profiler 选项”对话框,您可以指定要使用的性能分析选项。指定 Profiler 选项中提供了设置这些选项的说明。

使用 Profiler

本节介绍了 Profiler 图形用户界面的功能以及如何使用这些功能。信息通过以下方式进行组织:

指定 Profiler 选项

“Profiler 选项”对话框由以下选项卡组成:

使用这些选项卡上的选项,可指明要对哪些对象进行性能分析,以及要显示在性能分析中的元素。

指定 Profiler 选项后,单击“确定”可启动 Profiler。根据项目配置,Profiler 将执行以下两项操作之一:

模式     “模式”选项卡提供了以下选项:

IDM 对象过滤器     “IDM 对象过滤器”选项卡提供了以下选项:

Java 过滤器     选择“Java 过滤器”选项卡可以执行以下操作:

Java 过滤器以方法模式的形式提供,它们采用根据规范的方法名称执行包含或排除操作的模式来表示。其中,规范的方法名称为:

fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)


对于构造函数,method-name<init>


下面列举了一些示例:

如有必要,可以通过适当修改 build.xml 中的以下行来分析其他 JAR。例如,

<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>

默认情况下,该配置包含所有自定义类和大多数 Identity Manager 类。强制排除了一些 Identity Manager 类,这是因为启用这些类会中断 Profiler 的运行。

例如,会排除工作流、表单和 XPRESS 引擎中的类,否则在分析 Java 和 Identity Manager 对象时,Profiler 将会生成难以理解的快照。

请注意,Java 过滤器将提供比 IDM 对象过滤器更细的过滤粒度。因此,使用 Java 分析会显著增加执行时间的开销,从而使性能分析结果出现巨大的偏差。由于是解释而非编译 Identity Manager 对象,因此分析开销可以忽略不计。因此,举例来说,根本没有理由排除工作流 A 而包含工作流 B,等等。


在运行 Profiler 时,不能修改 Java 过滤器。必须先停止 Profiler 才能更改 Java 过滤器。


其他     “其他”选项卡提供了以下选项:

使用 IDM Profiler 视图

IDM Profiler 视图由以下区域组成:

“当前项目”区域     “当前项目”区域包含一个下拉菜单,该菜单列出了所有的当前项目。使用此菜单可以选择要分析的项目。

“控制”区域     “控制”区域包含四个图标,如下表中所述:

图标

用途

“启动 Identity Manager Profiler”图标

启动 Identity Manager Profiler

启动 Profiler 并打开“Profiler 选项”对话框。

“停止 Identity Manager Profiler”图标

停止 Identity Manager Profiler

停止 Profiler。

此图显示了“重置收集的结果”图标。

重置收集的结果

重置截止到此刻您收集的所有分析结果。

“修改性能分析”图标

修改性能分析

重新打开“Profiler 选项”对话框,以便您可以更改任何设置来修改当前的分析结果。

“状态”区域     “状态”区域会报告您是否与主机进行了连接,并提供有关 Profiler 启动、运行和停止的状态信息。

“性能分析结果”区域     “性能分析结果”区域包含两个图标,如下表中所述:

图标

用途

“拍摄快照”图标

启动 Identity Manager Profiler

启动 Profiler 并打开“Profiler 选项”对话框。

此图显示了“重置收集的结果”图标。

重置收集的结果

重置截止到此刻您收集的所有分析结果。

“已保存的快照”区域     “已保存的快照”区域提供了所有已保存快照的列表。


保存快照中提供了保存快照的说明。


此外,还可以使用以下按钮来管理这些快照:

使用“快照视图”

打开快照时,结果会显示在位于 Identity Manager IDE 右上方的“快照视图”窗口中。

快照提供了几种数据视图,将在以下各节中进行介绍:

“调用树”视图     “调用树”视图由一个树表组成,该树表显示了整个系统的调用计时和调用计数。

此树表包含三列:

“热点”视图     “热点”视图提供了节点的平面化列表,用于显示汇总调用计时(不考虑父节点)。

此视图包含以下列:

“反向跟踪”视图     “反向跟踪”视图提供了反向的调用栈,显示了从中调用每个节点的所有调用链。

可以使用这些统计信息来回答如下问题:如果我删除自此节点开始的特定调用链,将节省多少时间?

可以从其他任何快照视图中访问“反向跟踪”视图,方法是右键单击某个节点(称为根节点),然后从弹出式菜单中选择“显示反向跟踪”。


“时间”和“调用次数”数据值在“反向跟踪”视图中具有某些不同的含义:

  • 时间:此列中的值表示从给定调用链调用根节点时,根节点耗用的时间。
  • 调用次数:此列中的值表示从给定调用链调用根节点的次数。

“被调用者”视图     “被调用者”视图提供了节点(称为根节点)的汇总调用树(不考虑其父调用链)。

如果存在一个问题区域,并且整个主调用树中的许多位置都调用了该区域,当您想查看该节点的整体性能分析时,这些统计信息将非常有用。

可以从其他任何快照视图中访问“被调用者”视图,方法是右键单击某个节点(称为根节点),然后从弹出式菜单中选择“显示被调用者”。


“被调用者”视图中所用的时间和调用次数数据值与那些在“调用树”视图中使用的数据值具有相同的含义。


使用弹出式菜单选项

右键单击“调用树”视图或“热点”视图中的任意节点,将显示一个弹出式菜单,其中的选项如下表中所述:

菜单选项

描述

转至源

选择此选项可以查看 Java 方法、工作流、表单、规则或 XPRESS 所对应节点的 XML 源。有关此视图的详细信息,请参见 Profiler 查找和管理源的方式

显示反向跟踪

选择此选项可以访问“反向跟踪”视图。有关此视图的详细信息,请参见“反向跟踪”视图

显示被调用者

选择此选项可以访问“被调用者”视图。有关此视图的详细信息,请参见“被调用者”视图

在“热点”视图中查找

选择此选项可以在“热点”视图中查找节点。有关此视图的详细信息,请参见“热点”视图

“列表选项”>“排序”>

选择此选项可以看到以下选项

  • 调用树
  • 时间
  • 调用次数
  • 升序
  • 降序

“列表选项”>“更改可视列”

选择此选项可以更改在“调用树”或“热点”列表中显示的列。

当显示“更改可视列”对话框时,您可以选择以下一个或多个选项:

  • 调用树:调用树
  • 调用次数:调用次数
  • 时间:时间

搜索快照

使用位于“快照视图”窗口顶部的“搜索”图标 ,可以在“调用树”视图或“热点”视图中按名称来搜索节点。

此外,还可以右键单击“调用树”视图或“热点”视图中的任意节点,然后从弹出式菜单中分别选择“在‘调用树’视图中查找”或“在‘热点’视图中查找”来搜索节点。

保存快照

Profiler 提供了几个选项来保存快照。有关这些选项的描述,请参见下表:

图标

用途

“拍摄快照”图标

“在项目中保存快照”图标(位于“快照视图”窗口的顶部)

在项目的 nbproject/private/idm-profiler 目录中保存快照。Profiler 视图的“已保存的快照”部分会列出在项目中保存的快照。

此图显示了“重置收集的结果”图标。

“在外部保存快照”图标(位于“快照视图”窗口的顶部)

将快照保存到外部的任意位置。

此图显示了“已保存的快照”区域中的“另存为”按钮。

“另存为”按钮(位于“已保存的快照”区域中)

将快照保存到外部的任意位置。

教程:解决性能问题

Identity Manager 提供了一个教程 (profiler-tutorial.zip),可以帮助您了解如何使用 Profiler 来解决表单、Java 规则、工作流和 XPRESS 存在的问题。

第 1 步:创建 Identity Manager 项目

按照以下步骤创建 Identity Manager 项目:

  1. 选择“文件”>“新建项目”。
  2. 当显示“新建项目”向导时,指定以下内容,然后单击“下一步”:
    1. 在“类别”列表中,选择 "Web" 以指明要创建的项目的类型。
    2. 在“项目”列表中,选择“Identity Manager 项目”。

    3. 必须创建一个适用于功能完备的开发环境的常规 Identity Manager 项目。不要选择“Identity Manager 项目(远程)”选项。


  3. 填充“名称和位置”面板上的以下字段,然后单击“下一步”:
    • 项目名称:输入 Idm80 作为项目名称。
    • 项目位置:使用默认位置或指定其他位置。
    • 项目文件夹:使用默认文件夹或指定其他文件夹。
  4. 当显示“Identity Manager WAR 文件位置”面板时,输入 Identity Manager 8.0 war 文件的位置。通常,解压缩此文件可在相同目录中创建一个 idm.war 文件。
  5. 单击“下一步”转至“系统信息库设置”面板。
  6. 无需更改此面板上的默认设置,直接单击“完成”即可。当看到“生成成功”消息显示在“Identity Manager IDE 输出”窗口中时,就可以提取 Profiler 教程文件了。有关说明,请参见第 2 步:解压缩 Profiler 教程

第 2 步:解压缩 Profiler 教程

在项目根目录中解压缩 profiler-tutorial.zip。提取的文件包括:

<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

现在就可以启动 Profiler 了。

第 3 步:启动 Profiler

启动 Profiler:

  1. 按照准备工作中提供的说明增加服务器和 Netbeans JVM 的内存。
  2. 使用概述中介绍的任一方法启动 Profiler。
  3. 当显示“Profiler 选项”对话框时,可以指定性能分析选项。

第 4 步:设置 Profiler 选项


有关所有不同 Profiler 选项的详细信息,请参见指定 Profiler 选项


为实现本教程的教学目的,请指定以下 Profiler 选项:

  1. 在“模式”选项卡上,选择“Java 和 IDM 对象”以分析表单、Java、规则、工作流及 XPRESS 对象。
  2. 选择“Java 过滤器”选项卡。
  3. 使用以下步骤禁用自定义 Java 类(本例中为 org.example.ProfilerTutorialExample)以外的所有 Identity Manager Java 类:

    1. 单击“新建”,一个新的空白字段将显示在“过滤器”列的底部。
    2. 在新字段中输入 com.waveset.*,然后选中“排除”复选框。
    3. 再次单击“新建”。
    4. 在新字段中输入 com.sun.idm.*,然后选中“排除”复选框。
  4. 单击“确定”以运行 Profiler。

  5. 如果您是第一次对某个项目运行 Profiler,或在近期执行了“清理项目”操作,则 Profiler 将需要几分钟时间来完成处理。


    Profiler 完成处理后,系统会提示您登录。

  6. 输入密码 configurator,选中“记住密码”复选框,然后单击“确定”以继续。
  7. 当显示 Identity Manager 窗口时,请登录。

  8. 通常,您应以其他的用户身份登录到 Identity Manager,而不是再以配置者身份登录。您已经以配置者身份登录到 Profiler,Identity Manager 会话池仅允许一个用户具有一个条目。使用多个条目会导致会话池中断,并且可能造成性能分析结果出现偏差,出现更细化的性能问题。

    但是,对于此简单示例,会话池没有出现任何问题,因此您可以使用 configurator/configurator 登录。


  9. 在 Identity Manager 中,选择“服务器任务”>“运行任务”,然后单击 "ProfilerTutorialWorkflow1"。
  10. 此教程可能需要一些时间进行响应。

  11. 尽管您现在可以拍摄快照,但您最好先重置结果、运行 Profiler、再次运行 Profiler,然后再拍摄快照。

  12. 最佳的做法是在拍摄快照之前运行几次 Profiler,以确保预备好所有缓存、编译好所有 JSP 等等。

    通过运行几次 Profiler,您可以重点解决实际的性能问题。不适合应用此做法的唯一一种例外情况是:存在自动填充缓存方面的问题。


    1. 返回到 Identity Manager IDE 中的 "IDM Profiler" 视图。单击“性能分析结果”部分(或“控制”部分)中的“重置收集的结果”图标 此图显示了“重置收集的结果”图标。 以重置到目前为止收集的所有结果。
    2. 在 Identity Manager 中,再次选择“服务器任务”>“运行任务”,然后单击 "ProfilerTutorialWorkflow1"。
    3. 当显示“进程图”时,返回到 Identity Manager IDE,然后单击“性能分析结果”部分中的“拍摄快照”。
  13. Identity Manager IDE 会下载您的快照,并在窗口的右侧显示结果。
  14. 此区域为调用树视图。在“调用树”的顶部,可以看到 /idm/task/taskLaunch.jsp 及其“时间”列中列出的时间。该时间应该表示整个请求耗时六秒以上。

  15. 展开 /idm/task/taskLaunch.jsp 节点,会看到 ProfilerTutorialWorkflow1 耗时六秒。
  16. 展开 ProfilerTutorialWorkflow1 节点。请注意,activity2 耗时四秒,activity1 耗时两秒。
  17. 展开 activity2
  18. 请注意,action1 耗时两秒,action2 耗时两秒。

  19. 展开 action1,请注意,<invoke> 也耗时两秒。
  20. 双击 <invoke> 以打开 ProfilerTutorialWorkflow1.xml,并突出显示以下行:
  1. 选择 "CPU:<date><time>" 选项卡以返回到您的快照。
  2. 展开 <invoke> 节点,请注意,Profiler 在 Java ProfilerTutorialExample.example() 方法中耗时两秒。
  3. 双击该方法的名称以打开 ProfilerTutorialExample.java 源,并突出显示以下行:
  1. 如果返回到“调用树”,则可以看到所有耗时两秒的路径都通向此方法。(您应看到三个路径,共耗时六秒。)
  2. 选择“热点”选项卡(位于“调用树”区域的底部)以打开“热点”视图。请注意,ProfilerTutorialExample.example() 的自用时间总计为六秒。
  3. (有关“热点”视图的详细信息,请参见“热点”视图。)

  4. 右键单击 ProfilerTutorialExample.example(),然后从弹出式菜单中选择“显示反向跟踪”。
  5. 将在该区域的底部显示一个新的“反向跟踪”选项卡。

  6. 展开“反向跟踪”选项卡上的 ProfilerTutorialExample.example() 节点,会看到从三个位置调用了此方法,并且从每个位置调用此方法时都耗时两秒。
  7. (有关“反向跟踪”视图的详细信息,请参见“反向跟踪”视图。)

  8. 单击“在项目中保存快照”图标 此图显示了“在项目中保存快照”图标。 以保存您的快照并将其关闭。
  9. 如果查看 "IDM Profiler" 选项卡上的“已保存的快照”部分,则会看到快照。(您可能需要向下滚动才能看到。)

  10. 选择已保存的快照,然后单击“打开”以重新打开该快照。

  11. 可以使用“另存为”按钮在外部位置保存您的快照,并可使用“加载”按钮加载位于项目外部的快照。


  12. 再次关闭该快照。

对工作流 ManualAction 使用 Profiler

本教程的下一部分将说明如何分析工作流 ManualAction。

  1. 在 Identity Manager 中,选择“服务器任务”>“运行任务”,然后单击 "ProfilerTutorialWorkflow2"。
  2. 稍等片刻,将会显示一个空表单。

  3. 单击“保存”,将会显示进程图。
  4. 再次选择“服务器任务”>“运行任务”。
  5. 返回到 Identity Manager IDE "IDM Profiler" 视图,然后单击“性能分析结果”部分中的“重置收集的结果”图标。
  6. 接下来,单击 Identity Manager 中的 "ProfilerTutorialWorkflow2"。
  7. 当再次显示空表单时,单击“保存”。
  8. 在 "IDM Profiler" 视图中,单击“拍摄快照”。
  9. 几秒钟后,快照会显示在“调用树”区域中。您应看到 /idm/task/workItemEdit.jsp 耗时六秒以上。(此结果对应于工作流中的手动操作。)

  10. 展开 /idm/task/workItemEdit.jsp 节点,请注意,运行 ManualAction 表单中的所有派生共耗时六秒。
  11. 展开 DerivationdisplayNameFormvariables.dummy<block> 节点。
  12. 您应看到 <block> 耗时六秒,其中 Profiler 在三次调用 ProfilerTutorialExample.example() 方法时各耗时两秒。

  13. 可以双击 <block> 查看源。

Identity Manager IDE 常见问题解答 (FAQ)

此常见问题解答回答了与使用 Identity Manager 集成开发环境 (Identity Manager IDE) 相关的一些常见问题。该信息将分为以下几个部分:

使用 NetBeans

问:我应该使用哪个版本的 Netbeans?

答:应使用 Identity Manager 产品文档(针对您所使用的 Netbeans 插件版本提供)中提及的 Netbeans 版本。


始终使用所提及的正确版本,因为即使使用修补程序发行版也会造成主要功能无法使用。


问:Netbeans 插件以前工作正常,但在我进行了一些操作之后就不再正常工作了。产生此问题的原因是什么?

答:此问题通常是由 .netbeans 目录中的损坏文件引起的。通常来说,删除 .netbeans 目录,然后重新安装 NetBeans 插件就可解决此问题。(删除 .netbeans 目录可以有效地卸载 NetBeans 插件。虽然您会丢失所有的用户设置,但是项目内容是安全的。)

具体步骤如下所示:

  1. 关闭 NetBeans。
  2. 删除 .netbeans 目录。
  3. 启动 NetBeans。
  4. 安装 NetBeans 插件。
  5. 重新启动 NetBeans。

使用项目

问:生成并运行项目花费了很长的时间,Identity Manager IDE 似乎在复制大量的文件。产生此问题的原因是什么?

答:此问题可能是由以下原因引起的:

问:现在我已经创建了 Identity Manager 项目,应将哪些文件签入到源控制中?

答:有关信息,请参见 Identity Manager IDE README.txt 中的“CVS 最佳实践”一节。

问:在 CVS 中使用项目管理的最佳实践是什么?

答:有关信息,请参见 Identity Manager IDE README.txt 中的“CVS 最佳实践”一节。

问:何时将对象导入到系统信息库中?

答:有关信息,请参见使用系统信息库

问:如何将新的 JAR 添加到项目中?

答:请参见 Identity Manager IDE README.txt 中的“如何添加新的 JAR 依赖关系”一节。

使用系统信息库

问:应将哪些系统信息库用于沙箱库?

答:将嵌入式系统信息库用于沙箱中 -- 特别是在使用 Identity Manager 7.1(或更高版本)时(它会提供一个 HsSQL 系统信息库)。如果不使用嵌入式系统信息库,则会丧失一些功能。

有关详细信息,请参阅 Identity Manager IDE README.txt 中的“使用系统信息库”一节。

问:何时会自动导入对象?

答:必须配置 Identity Manager IDE 才能自动导入对象。

具体步骤如下所示:

  1. 从 "IdM" 菜单中选择“系统信息库”>“管理嵌入系统信息库”。
  2. 启用“管理嵌入系统信息库”对话框上的“自动发布 Identity Manager 对象”选项。

  3. 如果选择了“Identity Manager 项目(远程)”或指定了自己的系统信息库,则此选项不可用。


  4. 选择“项目”>“运行项目”,或选择“项目”>“调试项目”。
  5. Identity Manager IDE 会自动导入自上次运行该项目以来更改的所有对象。


    自动发布 Identity Manager 对象会增加启动服务器所需的时间。要缩短服务器启动时间,请禁用此选项并将对象显式上载到系统信息库。


问:上载对象最有效的方式是什么?

答:使用以下方法之一来上载修改过的对象:

上述两种方法都能将对象直接上载到服务器,因此不会出现缓存延迟问题,并且速度要比使用“运行项目”或“调试项目”快得多。无论使用什么系统信息库,都能使用“上载对象”功能。

使用 Identity Manager IDE 调试器

问:Identity Manager IDE 调试器速度很慢。产生此问题的原因是什么?

答:提高调试器的性能:

问:我无法在调试器中设置断点。产生此问题的原因是什么?

答:在以下情况中将无法设置断点:

问:我在调试器中设置了断点,但在该断点处并未暂停。产生此问题的原因是什么?

答:请检查以下两项内容:

使用规则

问:在 Netbeans 中开发规则时,为何设计模式不可用于规则库?

答:可以从“项目”视图的资源管理器树中获取设计模式功能。使用以下步骤:

  1. 展开库节点,然后右键单击某个规则。
  2. 当显示弹出式菜单时,选择“属性”,然后单击“主体”。


Identity Manager 调优、故障排除和错误消息

本节提供了有关 Sun Identity Manager 调优、故障排除和错误消息的新信息和文档更正内容。


本地化范围

以前,Identity Manager 不对资源对象和函数进行本地化,主要原因是这些对象和函数大多数都是在 Identity Manager 初始化期间加载(通过 init.xml)的样例,并且对象类型的属性在实际客户部署之间可能会有所不同(取决于自定义级别)。以下区域列表将有可能出现英文内容:(ID-16349)


联机帮助

本节包含联机帮助的文档更正内容。