传统:
在 Business Automation Workflow 数据库与用户注册表之间同步用户
您可以使用 usersSync, syncExistingUsers和 usersFullSync 命令在 WebSphere® Application Server 用户注册表与 Business Automation Workflow 数据库之间同步用户。
重要信息: 由于这些命令的运行给系统带来很高的负载,因此请考虑在空闲时间运行这些命令。
您还可以使用 wsadmin 脚本编制客户机的 AdminTask 对象来执行这些任务。 更多信息,请参阅 BPMUsersSyncTask 、BPMUsersFullSyncTask 和 BPMSyncExistingUsersTask 命令。
使用这些命令通过以下方式更新 Business Automation Workflow 数据库中的用户信息:
| 命令 | 用法 |
|---|---|
| usersSync | 更新一组指定用户的信息。 您还可以使用此命令在 Business Automation Workflow 数据库中创建已在用户注册表中可用的特定用户。 如果指定了用户注册表中不可用的用户,那么将跳过该用户。 |
| syncExistingUsers | 更新 Business Automation Workflow 数据库中现有用户的信息,但不会将新用户从用户注册表导入到数据库中。 您还可以使用此命令将 Business Automation Workflow 数据库中用户的用户状态与用户注册表中的用户可用性同步。 例如,如果已从用户注册表中删除用户,那么该命令会在 Business Automation Workflow 数据库中将这些用户标记为不活动。 |
| usersFullSync | 将用户注册表中的所有用户信息导入到 Business Automation Workflow 数据库中。 如果用户注册表包含新用户,那么将在 Business Automation Workflow 数据库中创建这些用户。 注意: 请小心使用此命令。 由于用户注册表中的所有用户都将导入到 Business Automation Workflow 数据库中,因此该命令还可能导入不使用 Business Automation Workflow的用户。
|
同步命令的运行方式取决于是否为 WebSphere Application Server 安全性配置了联合存储库 (VMM):
- 非联合存储库
- WebSphere Application Server 用户注册表 API 用于运行命令。
- 联合存储库
- 联合存储库 API 用于运行命令。 此 API 的性能明显优于用户注册表 API。 用于同步用户信息的 VMM 调用数取决于命令以及 Business Automation Workflow 数据库中的可用用户数。
- usersSync
- 针对每个用户发出一次 VMM 调用。
- syncExistingUsers
- 缺省情况下,如果 Business Automation Workflow 数据库中的可用用户少于 1000 ,那么将针对每个用户发送一个 VMM 调用以同步数据。 如果 Business Automation Workflow 数据库中有超过 1000 个可用用户,那么将改为发送针对所有用户的一个调用。 此阈值是可配置的。注意: 如果针对所有用户的调用未返回用户注册表中的所有可用用户,请执行下列其中一项操作:
- 通过更改阈值以反映用户注册表中的实际用户数来强制使用每个用户一个 VMM 调用。
- 请与您的 LDAP 管理员联系以调整 LDAP 配置,以便可以在一个 LDAP 搜索调用中检索到所有用户。
- usersFullSync
- 针对所有用户发出一个 VMM 调用,而无论数据库中的用户数。注意: 如果调用未返回用户注册表中的所有可用用户,请与 LDAP 管理员联系以调整 LDAP 配置,以便可以在一个 LDAP 搜索调用中检索所有用户。
命令的输出包含已同步的用户数。
位置
这些脚本位于 deployment_manager_profile/bin 目录中,同时适用于 Windows 和 Linux® 环境。usersSync 语法
usersSync.[bat|sh]
-username|-u|-user user_name
-password|-p password
[-host host_name]
[-port port]
username_1 username_2 ... username_n
syncExistingUsers 语法
syncExistingUsers.[bat|sh]
-username|-u|-user user_name
-password|-p password
[-userState sync|any_other_value]
[-host host_name]
[-port port]
[username_1 username_2 ... username_n]
如果未指定可选用户列表,那么将处理 Business Automation Workflow 数据库中的所有用户。usersFullSync 语法
usersFullSync.[bat|sh]
-username|-u|-user user_name
-password|-p password
[-host host_name]
[-port port]
参数
- -username|-u|-user 用户名
- 必需。 管理用户的名称。
- -password|-p 密码
- 必需。 用户密码(未加密)。
- -host 主机名
- 可选。 运行管理任务的 AppTarget 集群成员的主机名。 您还必须指定端口。
- -port 端口
- 可选。 运行管理任务的 AppTarget 集群成员的 SOAP 端口。
- -userState sync|any_other_value
- 仅适用于 syncExistingUsers 命令。 可选。 更新 Business Automation Workflow 数据库中用户的用户状态。
- 从用户注册表中删除的用户将在 Business Automation Workflow 数据库中变为不活动状态。
- 在用户注册表中重新激活的用户将在 Business Automation Workflow 数据库中变为活动状态。
配置
- SOAP 连接
- 所有命令。 如果使用的是 SOAP 连接,那么完成这些命令所需的时间可能比指定的 SOAP 超时值要长。 虽然命令会继续运行直至完成,但您可能会在 systemOut.log 文件中看到
java.net.SocketTimeoutException: Read timed out异常。 要防止发生此异常,请在 profile_root/properties/soap.client.props 文件中为com.ibm.SOAP.requestTimeout属性设置更高的值。 要禁用超时,请将该属性的值设置为 0。 - VMM 调优
- syncExistingUsers 和 usersFullSync 命令。 如果使用“针对所有用户发出一次 VMM 调用”,那么将在 wimconfig.xml 文件中调整每个相关 LDAP 存储库的 VMM 配置。 尤其是,为
configurationProvider->maxSearchResults属性选择适当的设置,并考虑调整ldapServers->connectTimeout和attributesCache->cacheSize属性的值。 有关调整 VMM 的更多信息,请参阅 WebSphere Application Server Network Deployment Knowledge Center。 - 用户检索阈值
- 仅适用于 syncExistingUsers 命令。 根据 Business Automation Workflow 数据库中的可用用户数,
threshold-for-existing-user-retrieval-mode配置属性确定是针对每个用户发送对 VMM 的调用,还是针对所有用户发出一个调用。 缺省值是 1000 个可用用户。- 如果不超过 1000 个可用用户,那么将针对每个用户发出调用(逐个用户)。
- 如果超过 1000 个用户,那么将针对所有用户发出一个调用。
configurationProvider->maxSearchResults属性的值适合阈值属性的值- 关联的用户存储库(例如,LDAP)的配置不会限制返回的搜索结果总数。
要更改该属性的值,请将具有相应值的以下元素添加到您拓扑的 100Custom.xml 文件中。
有关如何查找 100Custom.xml 文件的信息,请参阅 100Custom 配置文件的位置。<common merge="mergeChildren"> <security> <vmm-options> <threshold-for-existing-user-retrieval-mode>1000</threshold-for-existing-user-retrieval-mode> </vmm-options> </security> </common>