本章包含在发布 目录代理服务器 时提供的特定于产品的重要信息。
本章包括以下各节:
本部分列出了 目录代理服务器 发行版 6.3.1 中修复的错误。
不可用的 JDBC 资源导致通过 JOIN 视图 (LDAP + JDBC) 的搜索失败,即使不要求从该 JDBC 资源中提供数据。
在 cn=monitor 上运行 ldapsearch 会在父条目前返回叶条目,该情况会导致部分工具失效。
通过 LDAP 和 JDBC 的联接视图进行的修改可能触发 NULL 指针异常。
无辅助属性请求时,性能不会受到对辅助数据资源请求的影响
尝试将两项修改作为单个 LDAP 事务的一部分进行应用,如果一个属性未到位也可以取得部分成功。
使用 LDAP 和 JDBC 的联接视图时,objectclass 属性无法在从视图上存储。
通过联接视图搜索时,在搜索过滤器中无主视图属性的情况下(即使从视图返回了若干条目),首先应当在从视图上执行搜索。
高搜索负载可能导致 NULL 指针异常。
在 LDAP 和 JDBC 的联接视图上搜索时,如果绑定用户在被请求的辅助属性上不具备访问权限,则可能不会返回条目。
运行高搜索负载时,可能触发异常 ArrayIndexOutOfBounds 或 NegativeArraySizeException。
如果 uid 属性包含大写字母,则通过联接视力添加条目失败。
通过 LDAP 和 JDBC 的联接视图添加条目时,即使添加请求中不包含辅助 JDBC 属性,条目也将在 JDBC 中添加。
通过 LDAP 和 JDBC 的联接视图添加或替换属性时,如果对于 SQL 数据库而言值太长则被会截断。
通过 LDAP 和 JDBC 的联接视图添加条目时,在升级或添加字符串(varchar ) 值之前未检查列大小导致数据库错误
由于 FailoverLoadBalancingAlgorithm 中的竞争情况,搜索压力测试产生意外错误。
通过 SSL 的持久搜索未能返回数据。
DPS 中的内存管理策略导致现有连接被断开,同时触发 GC(当内存较低时)。
添加条目时,DN 值并不始终转换为小写字母。
通过 LDAP 和 JDBC 的联接视图删除共享属性(可能在两个数据源上存在)时,如果该属性在两种视图之一上不存在,则返回错误。
在高搜索负载下使用 JDK 1.6 的 64 位模式中,可能产生 JVM 故障。
当 JDBC 源将其列值处理为区分大小写(通常为 DB2)时,尝试删除 JDBC 属性值可能失败。
套接字可能在 CLOSE_WAIT 状态中被卡住,导致服务器无响应。
频繁打开和立即关闭服务器连接可能导致服务器稍后变得无响应,除非执行重新启动。
在 AMD64 Linux 机器上,服务器无法在 32 位模式中启动。
在重负载下,服务器可能出现超时,引起对目录服务器的操作重试。
在搜索过滤器内使用虚拟化映射基础时,某些情况下无结果返回。
使用联接视图时,拟用于从数据视图的修改可能错误发送到主数据视图。
在配置包含 JDBC 视图的联接视图时未能设置联接规则可能引起 StringIndexOutOfBoundsException 异常。
某些特定搜索过滤器可能导致服务器返回解码错误。
使用包含 JDBC 视图的联接视图时,尝试删除条目的属性失败,该条目仅存在于目录服务中。
dpadm -V 无法检测 JVM 版本。
服务器可能使到目录服务器的连接保持在 CLOSE_WAIT 状态,导致目录服务器变成不响应。
包含非字符串类型(例如浮点型或日期)属性的搜索过滤器可能无法从 JDBC 视图检索结果。
内部工作线程可能变成死锁,导致服务器变成不响应。
服务器上可能产生较高的 CPU 使用率高峰,导致机器上的所有服务变成不响应。
对绑定连接管理的改进降低连接中断请求等待时间 (close wait)。
ldapsearch 可以从 MySQL、Derby 或 DB2 JDBC 后端返回条目的空属性值。 采用 ORACLE JDBC 后端时,不会返回空属性值。
本部分列出了 Directory Server Enterprise Edition 6.3.1 发行时的已知问题和限制。
Sun 目录代理服务器 6.3.1 Update 1 修补程序 141958–01 专用于在 Directory Server Enterprise Edition 6.3.1 的基础上应用,以修复 目录代理服务器 组件中的问题。 有关详细信息,请参考 目录代理服务器 6.3.1 Update 1。
本节列出了产品限制。
在某些情况下,更改已安装的 Directory Server Enterprise Edition 产品文件的 文件权限会使软件无法正常运行。必须遵循产品 文档中的说明或 Sun 支持的说明来更改 文件权限。
要解决此限制,请以具有相应用户和组权限 的用户身份安装产品并创建服务器实例。
创建自签名服务器证书时,请确保指定足够长的有效期,以便不必续订证书。
要确保原子性,请勿将联接数据视图用于写入操作。如果对联接数据视图执行写入操作,请使用外部机制防止或检测不一致。您可以通过监视 目录代理服务器 错误日志来监视不一致。
本节列出了在发行 目录代理服务器 6.3.1 时发现的已知问题。
LDIF、JDBC、联接和访问控制数据视图不支持修改 DN 操作。
当前,getEffectiveRight 控制仅受 LDAP 数据视图的支持,而未考虑代理的本地 ACI。
目录代理服务器 可能拒绝 ACI 将子类指定到目标属性,例如 (targetattr = "locality;lang-fr-ca")。
目录代理服务器 无法恢复数据源连接失败后已修复的 JDBC 数据源连接。 仅当重新启动 目录代理服务器 实例后 目录代理服务器 才能恢复连接。
验证模式配置更改后必须重新启动 目录代理服务器。
生成 CA 签名证书请求后进行刷新,证书即显示为自签名证书。
如果 目录代理服务器 使用的 SSL 端口不正确,则收到对该端口的安全搜索请求后,目录代理服务器 可能会关闭所有连接。
目录代理服务器 在被配置为基于客户端应用程序凭证而非代理授权进行验证时,无法正确计数引用中继器数。
创建数据视图时可以指定 base-dn 属性,但在创建数据视图后不能将 base-dn 属性设置为 ""(根 DSE)。
目录服务控制中心 将值作为字符串进行排序。因此,您在 目录服务控制中心 中排序数字时,这些数字会被视为字符串。
0、20 和 100 按升序排列的结果为 0、100、20。 0、20 和 100 按降序排列的结果为 20、100、0。
配置警报后,必须重新启动 目录代理服务器 才能使更改生效。
配置了数字或字典数据分发时,目录代理服务器 无法重命名移至其他数据视图的条目。
使用联接数据视图工作时,在构成联接的视图中 目录代理服务器 不采取数据分发算法。
要解决此问题,同时使用联接和数据分发时在联接数据视图的级别配置数据分发。
在 目录代理服务器 中,引用中继器限制不起作用。
在 Windows 中,dsadm 和 dpadm 命令的输出以及帮助消息未本地化为简体中文和繁体中文。
未动态检测 JDBC 数据源条目的创建。如果在创建 JDBC 数据视图之前创建了 JDBC 服务器,则数据视图在下次重新启动服务器之前一直被忽略。 因此在配置 JDBC 数据源之后,您必须重新启动 目录代理服务器 使更改被检测到。
对于 JDBC 对象类,当一个类 A 使用表格作为辅助对象而另一个类 B 使用同一表格作为唯一主要对象时,对 B 的请求无法运行。在主要表格中使用时 目录代理服务器 无法忽略 filter-join-rule 属性。
在 Windows 系统上安装并创建服务器实例后,安装和服务器实例文件夹的文件访问权限允许所有用户进行访问。
要解决此问题,请更改安装和服务器实例文件夹上的权限。
在 Windows 中,DSCC 初始化仅可由管理员用户执行。
在重新启动 目录服务器 后通过 目录代理服务器 访问 目录服务器 时,Access Manager 存在与持续搜索相关的高速缓存问题。
要解决此问题,在重新启动 目录服务器 后,请重新启动 Access Manager 或 目录代理服务器。
如要进一步微调,您可以增加 Access Manager 重建持续搜索连接的尝试次数,并延长尝试次数之间的延迟时间。 您可以通过更改 AMConfig.properties 文件中以下属性来提高这些参数值。
增加 com.iplanet.am.event.connection.num.retries,它表示尝试次数。 默认值为 3 次尝试。
增加 com.iplanet.am.event.connection.delay.between.retries ,它表示尝试之间的延迟毫秒数。 默认值为 3000 毫秒。
如果运行的搜索使用了配置有 DB2 数据库的 JDBC 数据视图,且在搜索结果中有大量条目要返回,则返回 1,344 个条目后可能发生错误。
要克服此限制,请将 CLI/ODBC 配置关键字 CLIPkg 的值设置为最高 30,增加大型数据包的数量。即使如此搜索结果仍然限制为最高 11712 个条目。
有关详细信息,请参见 DB2 文档。
使用 目录服务控制中心 创建自签名证书时,请勿在证书名称中使用多字节字符。
通过 目录代理服务器 所允许的默认 LDAP 控件不按 目录服务控制中心 显示。
目录服务控制中心 在为现有排除的子树或备用搜索基更改 DN 时会删除逗号。
第一次启用或禁用非安全 LDAP 访问后,必须重新启动 目录代理服务器 才能使更改生效。
时间限制和大小限制设置仅对 LDAP 数据源发挥作用。
使用命令 dpadm set-flags cert-pwd-store=off 后,无法使用 目录服务控制中心 重新启动 目录代理服务器。
dpadm start 命令用于结合了 ASCII 和多字节字符的服务器实例名时不起作用。
在现有连接处理器上设置 data-view-routing-custom-list 属性时,包含必须换码的字符(例如逗号)的数据视图名会出错。
要解决此问题,请勿在数据视图名中包含必须换码的字符。例如,不要使用包含 DN 的数据视图名。
与早期版本不同,正如在手册页 allowed-ldap-controls(5dpconf) 中所说明的, 目录代理服务器 在默认情况下不允许服务器侧排序控件。
通过将 server-side-sorting 添加到 allowed-ldap-controls 属性所指定的允许的 LDAP 控件列表中,您可以为服务器侧排序控件启用 目录代理服务器 支持。
$ dpconf set-server-prop \ allowed-ldap-controls:auth-request \ allowed-ldap-controls:chaining-loop-detection \ allowed-ldap-controls:manage-dsa \ allowed-ldap-controls:persistent-search \ allowed-ldap-controls:proxy-auth-v1 \ allowed-ldap-controls:proxy-auth-v2 \ allowed-ldap-controls:real-attributes-only \ allowed-ldap-controls:server-side-sorting |
请注意,您必须重复现有设置。否则,仅允许服务器侧排序控件。
在使用 目录代理服务器 的 DN 重命名特性时,请注意重复 DN 组件仅会重命名为一个替换组件。
例如,您希望将以 o=myCompany.com 结尾的 DN 重命名为以 dc=com 结尾。对于其 DN 重复原始组件的条目(例如 uid=userid,ou=people,o=myCompany.com,o=myCompany.com),生成的重命名 DN 为 uid=userid,ou=people,dc=com 而非 uid=userid,ou=people,o=myCompany.com,dc=com。
用于通过 目录代理服务器 访问 Oracle 9 的 JDBC 连接配置不与文档中说明的配置完全相同。
考虑以下配置:Oracle 9 服务器侦听主机 myhost 端口 1537 且示例具有系统标示符 (SID) MYINST。该实例包含一个数据库 MYNAME.MYTABLE。
通常情况下,要配置直到 MYTABLE 的访问,请设置以下属性。
在 JDBC 数据源中,设置 db-name:MYINST。
在 JDBC 数据源中,设置 db-url:jdbc:oracle:thin:myhost:1537。
在 JDBC 表中,设置 sql-table:MYNAME.MYTABLE。
如果这些设置不起作用,可通过以下设置配置直到 MYTABLE 的访问。
在 JDBC 数据源中,设置 db-name:(CONNECT_DATA=(SERVICE_NAME=MYINST)))。
在 JDBC 数据源中,设置 db-url:jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1537)))。
在 JDBC 表中,设置 sql-table:MYNAME.MYTABLE。
目录代理服务器 无法写入表示 JDBC 数据库中表间的多对多 (N:N) 关系的 JDBC 属性。
带有多字节 DN 和使用 DSCC 创建的 目录代理服务器 实例,在 Linux 上无法启动。
在 Solaris 10 中使用服务管理工具 (SMF) 启用服务器实例时,该实例在您重新启动系统时可能不会启动,并返回以下错误:
svcadm: Instance "svc:/instance_path" is in maintenance state. |
要解决此问题,请使用本地用户身份创建 Directory Server 和 Directory Proxy Server 服务器。
路径中带有多字节字符的 目录代理服务器 实例可能无法在 DSCC 中创建,以启动或执行其他常规任务。
这些问题中的一部分可以通过使用原用于创建实例的字符集予以解决。使用以下命令设置字符集:
# cacaoadm list-params | grep java-flags java-flags=-Xms4M -Xmx64M # cacaoadm stop # cacaoadm set-param java-flags="-Xms4M -Xmx64M -Dfile.encoding=utf-8" # cacaoadm start |
在实例路径中仅使用 ASCII 字符以避免这些问题。
在 HP-UX 上,如果访问将多个浏览器会话设置为不同语言环境的 DSCC,DSCC 可能以不同于浏览器中设置的语言环境的语言环境显示某些字符串。
如果计算机具有多个主机名,控制台不会检索 目录代理服务器 实例的后端状态。
如果在 RDBMS 表格中存在重复条目,匹配在 JDBC 对象类中找到的 DN 模式,那么在 JDBC 数据视图中执行搜索时,目录代理服务器 将返回重复子树(非叶)节点。例如,如果在 JDBC 对象类中存在 DN 模式 ou 且在映射到 JDBC 属性 ou 的 RDBMS 列中存在重复条目(例如 sales),那么在搜索结果中将会存在类似于 ou=sales 复节点。
要解决此问题,请执行以下操作:
通过采纳表格中的值(该表格包含了被映射到 ou JDBC 属性的列),以恰当方式创建 RDBMS 视图,从而确保无重复条目。
使用带有 DN 模式 ou 的 JDBC 对象类中的 RDBMS 视图名称,替换 RDMBS 表格名称。此方法的限制是由于 RDBMS 视图为只读,JDBC 属性 ou 的值不能通过 目录代理服务器 添加。
DPS 构建非法的 DB 请求。
在 DSCC 中的某个实例的更多视图选项中,显示在“访问日志”、“错误日志”和“审计日志”下的日期未被格式化。
在 DSCC 6.0 中,通过 DSCC 创建数据源时会默认将 useTCPNoDelay 设置为 False,而通过管理命令 dpconf create-ldap-data-source 创建实例时,会将 use-tcp-no-delay 设置为 True。
如果 DSCC 是使用 Tomcat 服务器配置的,则“帮助”和“版本”弹出窗口的标题会显示乱码形式的多字节字符串。
dpadm show-cert dps-instance-path 命令的输出中的字符串 owner 未翻译为简体中文和繁体中文。
在法语语言环境中,提示确认停止或取消注册服务器的弹出窗口显示重复的省略符号。
使用 modrate 工具针对联接视图(同时具有 LDAP 和 JDBC)执行修改时,在使用 1 个以上线程时发生 NULL 指针异常。 出现类似于以下的错误:
java.lang.NullPointerException com.sun.directory.proxy.server.JoinDataView. processModifyRequest(JoinDataView.java:916) com.sun.directory.proxy.server.JoinDataViewOpContext.processModifyRequest (JoinDataViewOpContext.java:243) com.sun.directory.proxy.server.ModifyOperation. processOperation(ModifyOperation.java:502 com.sun.directory.proxy.server .WorkerThread.runThread(WorkerThread.java:150) com.sun.directory.proxy.util.DistributionThread.run (DistributionThread.java:225) |
当新数据源被添加到数据源池时,需要重新启动服务器。
如果 目录代理服务器 配置属性 allow-bind-operations 设置为 False,则无法使用 dpconf 命令行参数和 -–secure-port 选项连接到 SSL 端口。仍可通过 Start TLS(默认)或清除连接(-–unsecured 选项)进行连接。
添加操作遵循的引用中的 basedn 不同于初始计算机中的 basedn 时,目录代理服务器 不会更改添加操作的 DN。与仅转发引用相反,尝试依据 目录代理服务器 实例(具有设置为遵循引用的 Directory Server 实例)进行添加操作,会导致添加操作在引用的服务器上被拒绝,因为 basedn 不正确。
使用 ldapmodify 命令依据 Directory Server 实例直接执行添加操作允许添加操作起作用。
写入虚拟变换在 remove-attr-value 变换模式中无法运行。
修改条目后,写入虚拟变换不能按预期发挥作用。
为证书数据库设置的密码长度不足时,不会发出警告。如果密码过短,其会被 目录服务控制中心 接受。然后,发出 dpadm 命令及 cert 子命令会导致命令挂起。
尝试添加 smalldatetime SQL 类型的属性值会触发以下异常:
ldap_modify: Operations error ldap_modify: additional info: java.lang.Exception: java.lang.Exception: com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting datetime from character string. |
以下各节讨论 目录代理服务器 6.3.1 Update 1:
此修补程序仅更正 Directory Server Enterprise Edition 产品的 目录代理服务器 组件中的问题。专为在 Directory Server Enterprise Edition 6.3.1 的基础上应用而设计。 Directory Server Enterprise Edition 6.3.1 的 目录服务器 组件保持不变。
此更新不能应用于 Directory Server Enterprise Edition 6.3.1 以前的版本。有关升级到版本 6.3.1 的说明,请参见 表 2–1,“到 Directory Server Enterprise Edition 6.3.1 的升级路径”。
本节讨论以下主题:
此更新为次要发行版,主要修复 目录代理服务器 6.3.1 Update 1 中修复的错误 1 中描述的错误。
此外,目录代理服务器 6.3.1 Update 1 还在持续搜索操作中引入了新行为。如果客户端应用程序在读取来自目录代理服务器的持续搜索响应时速度非常慢,则代理服务器响应队列负载过度。此种情况下,服务器可以关闭连接并显示以下客户端通知:
LDAP_NOTICE_OF_DISCONNECTION [ 1.3.6.1.4.1.1466.20036 ] |
此还还会记录类似于以下消息的通知消息:
[11/Aug/2009:18:13:51 +0200] - DISCONNECT - INFO - conn=19 \ reason="admin limit exceeded" \ msg="client didn't read any data during 160 milliseconds." |
目录代理服务器 6.3.1 Update 1 提供以下增强功能:
可以为 JAVA_HOME 设置路径名称,并占优于在环境中定义的 JAVA_HOME 值,如以下示例所示:
$ dpadm set-flags instance-path jvm-path=/usr/jdk/latest/ |
dpadm 命令更改了 umask 值,在 DPS 实例下次重新启动时,根据新的 umask 值修改配置文件的许可。 此外,日志文件许可在下次文件轮换时也被类似设置。以下示例显示了一次典型使用:
$ dpadm set-flags instance-path umask=22 |
现在允许管理员在同样的 MODEL, ACTION, ATTR_NAME 上定义不同的虚拟变换。
此外,目录代理服务器 6.3.1 Update 1 还添加新属性并升级现有属性,如以下列表所述。新属性被标注为“新”。从 DSEE 6.3.1 中的规范更改而来的属性被标注为“升级”。
动态(无需重新启动)
级别:connection-handler
类型:boolean
默认值:false
描述:表明当没有数据源可用时连接处理程序是否应关闭客户端连接。
动态(无需重新启动)
级别:连接处理程序
类型:boolean
默认值:false
描述:表明在绑定到远程 LDAP 服务器时要求不要始终使用传入的客户端标识。
文档:此属性为标志,表明在绑定到远程 LDAP 服务器时要求不要始终使用传入的客户端标识。
动态(无需重新启动)
级别:jdbc-data-source
类型:枚举
RDBMS 后端为 MySQL。
RDBMS back-end is Apache Derby/Java DB.
RDBMS 后端为 DB2。
RDBMS 后端为 Oracle。
RDBMS 后端为 Microsoft SQL Server。
RDBMS 后端未定义。如果可能,目录代理服务器 从 jdbc-data-source 中定义的 db-url 确定供应商名称。
默认值:generic
描述:JDBC 数据源的供应商名称
文档:此属性指定 JDBC 数据源的供应商名称。 如果连接到 RDBMS 后端使用的是第三方而非数据库供应商提供的 IDBC 驱动程序,则应当设置此属性。此数据用于构建供应商特定的 SQL 声明,如果该声明可提高性能的话。
动态(无需重新启动)
级别:jdbc-data-view、join-data-view、 ldap-data-view 和 ldif-data-view
新类型:长整型
旧类型(适用于 DPS 6.0 至 6.3.1):整数
其他属性保持不变。
动态(无需重新启动)
级别:jdbc-data-view、join-data-view、 ldap-data-view 和 ldif-data-view
新类型:长整型
旧类型(适用于 DPS 6.0 至 6.3.1):整数
其他属性保持不变。
静态(需要重新启动)
级别:ldap-data-source
类型:以秒计的持续时间(下限:1)
默认值:继承(monitoring-interval 的值)
描述:可用性监视器对失败的连接进行轮询(以检测其恢复状态)的时间间隔
文档:此属性指定轮询间隔。当发现连接处于关闭状态时,可用性监视器按此间隔轮询连接以检测其恢复状态。如未指定,则使用 monitoring-interval 属性值。
静态(需要重新启动)
级别:ldap-data-source
类型:整数(下限:1)
默认值:3
描述:在将连接标记为关闭之前要执行的重试次数
文档:此属性指定可用性监视器在首先检测到连接为关闭状态时,对连接进行轮询的次数。这就允许连接被标记为有待提高速度。 如果在重试了指定次数以后连接仍然有故障,则使用 down-monitor-interval 属性的值作为轮询间隔。
动态(无需重新启动)
级别:ldap-data-source
类型:boolean
默认值:true
描述:指定是否为服务器和数据源之间的连接启用 SO_KEEPALIVE
文档:此属性为标记,表明是否应当为服务器和数据源之间的连接启用 SO_KEEPALIVE。
动态(无需重新启动)
级别:ldap-listener 和 ldaps-listener
类型:boolean
默认值:true
描述:指定是否为客户端和侦听器之间的连接启用 SO_KEEPALIVE
文档:此属性为标记,表明是否应为客户端和侦听器之间的连接启用 SO_KEEPALIVE。
动态(无需重新启动)
级别:服务器
类型:boolean
默认值:true
新描述:表明服务器是否接受未经验证的操作
旧描述:(适用于 DPS 6.0 至 DPS 6.3.1):表明服务器是否接受来自匿名客户端的操作
新文档:此属性为标记,表明 目录代理服务器 是否接受未经验证的操作。用于处理绑定操作的模式由 allow-unauthenticated-operations-mode 指定。
旧文档(适用于 DPS 6.0 至 DPS 6.3.1):此属性为标记,表明 目录代理服务器 是否允许匿名客户端执行操作。
动态(无需重新启动)
级别:服务器
类型:枚举
未指定密码时,仅允许匿名绑定
未指定密码时,仅允许与指定的 DN 绑定
未指定密码时,仅允许匿名绑定以及与指定的 DN 绑定
默认值:anonymous-and-dn-identified
描述:不使用密码处理绑定操作的模式
文档:此属性表明当 allow-unauthenticated-operations 被设置为“true”时,目录代理服务器 如何不使用绑定密码处理操作。
静态(需要重新启动)
级别:服务器
类型:以毫秒计的持续时间
新默认值:250
旧默认值(适用于 DPS 6.0 至 6.3.1):500
新文档:此属性指定连续系统调用之间的时间间隔,该调用从 OS 检索时间。对于耗时少于 250 毫秒的操作相关的细节,请缩短 time-resolution 周期或更改 time-resolution-mode 属性的值。如果被设置为 0 毫秒,则代理服务器的行为类似于 time-resolution-mode 属性被设置为 system-milli 的情形。当 time-resolution-mode 属性的值被设置为 system-milli 或 system-micro 时,此属性被忽略。
旧文档(适用于 DSP 6.0 至 6.3.1):此属性指定连续系统调用之间的时间间隔,该调用从 OS 检索时间。对于耗时少于 500 毫秒的操作的有关详细信息,请缩短 time-resolution 周期。如果被设置为 0 毫秒,则代理服务器系统地执行系统调用以检索当前时间。 否则时间存入高速缓存且仅在每隔一个 time-resolution 周期时才会检索。该时间在日志中显示。
描述保持以前内容不变。
静态(需要重新启动)
级别:服务器
类型:枚举
每隔 time-resolution 毫秒即使用线程执行系统调用
使用系统调用检索时间(以毫秒计)
使用系统调用检索时间(以微秒计)
默认值:custom-resolution
描述:用于检索系统时间的模式
文档:此属性指定用于从 OS 检索时间的模式。
目录代理服务器 6.3.1 Update 1 对于所有支持的 Directory Server Enterprise Edition 6.3.1 平台均可用。有关详细信息,请参见硬件要求和操作系统要求。
本节列出 目录代理服务器 6.3.1 Update 1 中修复的错误。
目录代理服务器 构建非法的数据库请求。
为 LDAP 侦听器设置 connectionIdleTimeOutInSec 可能会禁用 DSCC。
搜索操作返回的条目可能包含 viewable-attr 中不存在的属性。
如果未对连接执行任何操作,max-client-connections 属性不会执行。
默认情况下,内存监视被禁用。
数字分发算法应当使用 long 而非 int 来设置数值界限。
目录代理服务器 针对资源属性的默认大小限制将错误的整数用于无限制。
DN 变换失败。
add-attr-value 的设置可能导致 DN 变换产生错误输出。
绑定到 LDAP 服务器时应当映射 bindDN。(使用 bindDN 的 DV 的 DN 映射规则)。
不能添加具有同样的“MODEL, ACTION, ATTR_NAME”的新虚拟变换。
在后端目录服务器上设置的 requires-bind-password 属性未被执行。
依赖于虚拟属性的虚拟 DN 映射失败。
绑定 DN 在变换失败时被拒绝,即使当其进入视图时也是如此。
针对来源服务器方向的 DN 映射错误。
属性名称中的大写/小写字符由 6.3 目录代理服务器 实施变换。
客户要求 目录代理服务器 为 config 和日志文件设置组权限 (umask 117, chmod 660)。
使用 MaxTenuringThreshold Java 参数时,dpadm start 命令转储核心。
DN 映射可能丢弃重命名的条目。
dpadm 不生成 DPS.pid 文件。
目录代理服务器 配置模式与 SystemMonitorThread.java 功能不一致。
服务器与控制台对于 searchMode 参数不一致。
目录代理服务器 被配置为使用代理验证时失败。
允许使用 dpadm set-flags 设置 JAVA HOME。
在 rootDSE 上不能使用 DN 映射
目录代理服务器 要求虚拟 DN 变换具有多值命名属性。
应当为 etimes 提供微秒时间粒度。
splitldif 命令忽略虚拟变换。
在重负载下,套接字可能保持在中断请求等待 (close wait) 状态中。
当套接字被创建时,在 目录代理服务器 6.3 中未设置 SO_KEEPALIVE 选项(即,setKeepAlive() != True)。
由于 ConfigAttribute 对象中存在 null 值,CR 6513526 的修复可能引起退化。
对基于通道的侦听器忽略了 acceptBacklog 属性。
由于后端连接上的上次活动的原因,非活动心跳的发送频率不足。
没有为绑定的后端联接发送不活动心跳。
由于上次服务器活动的原因,后端服务器检查执行的频率可能不足。
ldapsearch 在监视器条目上运行可能产生不一致 的输出。
在切断所有连接之前,可用性检查应当确保后端服务器已关闭。
在放弃请求的情况下,连接可能被阻塞。
在后端心跳中获得了更出色的精确度。
在服务器套接字中发生文件描述符泄漏。
如果故障转移池的定义不具备源,则在 cn=monitor 上搜索时可能出现 null 指针异常。
尝试绑定...失败后 目录代理服务器 继续打开至目录服务器的连接。
持久搜索客户端可能未接收条目更改通知。
2 个连接可能共享同样的标识符。
持续搜索在客户端断开后未清理。
当检测到数据源关闭时,主动监视间隔应当设置为 1 秒。
目录代理服务器 将不同的客户端操作关联到同一后端连接。
如果闲置大于 inactivity-timeout 而后端连接未关闭但被再利用,则引起连接泄漏。
连接池内务处理和健康检查进程应当进行调试。
两个同时发生的长期捆绑将同一后端连接分配给 2 个客户端连接。
设置错误的 jvm-path 会挂起重新启动且无任何警告。
无后端服务器可用时,目录代理服务器 返回不正确的错误代码。
在出现“不能检索后端连接”的情况下,应当提供关闭客户端连接的选项。
明确设置了 useAffinity=false 和 affinityPolicy 后,不应启用客户端关联。
如果数据源主机之一不可到达,则无法启动 目录代理服务器。
dpconf 命令应当支持 目录代理服务器 6.3.1_update 1 中引入的新属性。
dpconf 命令应当支持绑定 DN 映射。
应当提供更简单的版本更新用于管理 目录代理服务器 属性。
dpconf 应当支持 monitorRetryCount 。
客户端关联忽略了数据源的只读标志。
应当完成实施 CR 6714425 和 6714448 的修复。
小写字母联接表达式可能引起 SQL 请求失败。
当 100 台以上的客户机执行持续搜索时 目录代理服务器 6.3.1 性能不足。
持续搜索线程环和 目录代理服务器 不再可以处理持续搜索
持续搜索的性能不足。
创建 20 个持续搜索然后将其停止,引起持续搜索功能失败。
在属性映射和虚拟变换的某些情形中 目录代理服务器 返回 StringIndexOutOfBoundsException 。
变换和映射规则不按预期方式执行。
线程可能过早释放,产生 ASN.1 异常。
当后端关闭时 Directory Proxy Server 返回不正确的错误。
可能出现意外的 Null 指针异常。
在某些情况下,密码存储方案可能被 JDBC 数据视图忽略。
当不同的用户在客户端连接上绑定时 目录代理服务器 可能返回相同的结果。
在某些情况下,使用 JDBC 时 目录代理服务器 可能启动失败。
可能发生意外的 ASN1 异常且无法处理。
本节讨论以下主题:
目录代理服务器 6.3.1 update 1 是修补程序,应用于现有的 Directory Server Enterprise Edition 6.3.1 安装。如果您正在运行 6.3.1 以前的 Directory Server Enterprise Edition 版本,则必须按照 第 2 章 中的介绍在应用 目录代理服务器 6.3.1 update 1 修补程序之前,首先升级到版本 6.3.1。
您可以从以下位置下载 目录代理服务器 6.3.1 update 1 修补程序:http://www.sun.com/software/products/directory_srvr_ee/get.jsp。
目录代理服务器 6.3.1 update 1 是适用于所有 DSEE 平台的唯一修补程序:
Solaris SPARC
Solaris 9 x86
Solaris 10 x86 和 AMD x64
Red Hat Linux
SuSe Linux
HP-UX
Windows
对于每个平台,以下分发可用:
本地软件包版本(HP-UX 除外)
Zip 分发包
目录代理服务器 6.3.1 update 1 修补程序 141958-01 可通过以下位置获得:SunSolve 并适用于以下两类安装:
使用 Java ES 安装程序安装的 Directory Server Enterprise Edition 6.3.1 本地软件包
Directory Server Enterprise Edition 6.3.1 zip 安装
本节介绍如何安装 目录代理服务器 6.3.1 update 1。
在应用 Directory Proxy Server 6.3.1 update 1 修补程序之前,请备份 Directory Server Enterprise Edition 安装目录,因为您稍后无法恢复早期的 Directory Proxy Server 配置。此建议适用于 Zip 和本地软件包安装。
将修补程序 141958-01 从 Sunsolve 下载到 downloaded-patch-path 目录。
停止与拟安装修补程序的安装相关联的 目录代理服务器 实例。
在 Windows 系统上,打开命令提示符窗口。在 UNIX 系统上,打开终端窗口。
更改当前目录到您想要升级的平台和分发(zip 或本地)的安装软件所在的目录:
以下示例显示了用于此目的的典型命令:
$ cd downloaded-patch-path/SunOS_x64/zip/delivery |
以下表格显示了 downloaded-patch-path 目录下的安装软件位置。
操作系统 |
包含 Zip 交付的目录 |
包含本地软件包交付的目录 |
---|---|---|
Solaris SPARC |
SunOS/zip/delivery |
SunOS/native/delivery |
Solaris 9 x86 |
SunOS_x86/zip/delivery |
SunOS_x86/native/delivery |
Solaris 10 x86 和 AMD x64 |
SunOS_x64/zip/delivery |
SunOS_x64/native/delivery |
Red Hat Linux |
Linux/zip/delivery |
Linux/native/delivery |
SuSE Linux |
Linux/zip/delivery |
Linux/native/delivery |
HP-UX |
Hpux/zip/delivery |
N/A |
Windows |
Windows/zip/delivery |
Windows/native/delivery |
在 UNIX 系统上,启动安装脚本。
运行以下命令:
$ Install dsee631-install-path |
其中 dsee631-install-path 是通往 Directory Server Enterprise Edition 6.3.1 安装目录的路径。
显示以下消息:
-------------------------------------------------------------------- IMPORTANT : Make sure all the DPS instances associated with the Directory Proxy Server installation being patched are shutdown prior to apply the Directory Proxy Server 6.3.1 Update 1 Patch -------------------------------------------------------------------- Do you want to proceed with the installation (y/Y to proceed, n/N to abort) [n] ? |
输入 y 代表 yes。安装程序将修补程序应用到您指定的 Directory Server Enterprise Edition 6.3.1 安装。
在 Windows 安装中,在命令提示符窗口中运行以下命令:
Install.exe |
向导打开并要求您浏览和选择合适的安全路径,用于安装 目录代理服务器 6.3.1 update 1 修补程序。要在 6.3.1 ZIP 安装上安装修补程序,请选择 Directory Server Enterprise Edition 6.3.1 所在的安装目录。要在本地软件包安装上安装修补程序,请选择 C:\Program Files\Sun\JavaES5\DSEE 。
向导将修补程序应用于 Directory Server Enterprise Edition 6.3.1。
通过运行以下 2 个命令并验证响应与下述内容相同,来确认已成功安装:
$ dpadm -V [dpadm] dpadm : 6.3.1.1 B2009.1106.0156 ZIP [DPS] Sun Microsystems, Inc. Sun-Java(tm)-System-Directory-Proxy-Server/6.3.1.1 B2009.1106.0259 $ dpconf -V [dpconf] clip.jar : 6.3.1 B2008.1121.0155 dpcfg.jar : 6.3.1.1 B2009.1106.0155 dpcfgcli.jar : 6.3.1.1 B2009.1106.0155 common.jar : 6.3.1 B2008.1121.0155 common_cfg.jar : 6.3.1 B2008.1121.0155 |
如果您正在安装修复程序的 Directory Server Enterprise Edition 6.3.1 包含 CR 6722222 的热修复程序,则此步骤是必需的。
如果已经应用了 CR 6722222 的热修复程序(绑定到 LDAP 服务器时映射 bindDN(使用 bindDN 的 DV 的 DN 映射规则)),则在所有的实例中为每个连接处理程序运行以下命令:
$ dpconf set-connection-handler-prop -p port -h host connection handler \ data-view-use-internal-client-identity:true |
此属性为标志,表明在绑定到远程 LDAP 服务器时,并不始终要求使用接收客户端标识。在应用了 CR 6722222 后,现在可以通过连接处理程序属性配置默认行为,如示例中所示。
重新启动所有代理服务器实例。
本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知问题和限制。
目录代理服务器 6.3.1 中的已知问题和限制即使在应用了 目录代理服务器 6.3.1 update 1 的修补程序以后仍然存在。有关这些问题的信息请参考 目录代理服务器 中的已知问题和限制。
本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知限制。
按照 《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“JDBC Object Classes” 的说明,定义 JDBC 表格使用主表和从表。目录代理服务器 不允许从表为第三张表格的主表。即 目录代理服务器 不支持 1 级以上的联接规则。
本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知问题。
在发行版 6.3 中,如果一个条目拥有 2 个以上对象类,则由于 CR 6636463 修复程序的原因,通过联接视图(LDAP 和 JDBC)添加条目失败。要添加此类条目,这些对象类必须在 jdbc-object-class 配置条目中通过以下 ldapmodify 定义为超级类,因为 dpconf set-jdbc-object-class-prop 仅能添加一个超级类。
此示例添加以下条目:
dn: uid=test,ou=people,o=join sn: User cn: Test User objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson uid: test userpassword: password givenname: Test mail: test@example.com telephonenumber: 8888-8888 roomnumber: 8000
JDBC 视图按以下示例中所示方式定义,这在发行版 6.3 之前原可以正常发挥功能。
dn: cn=person,cn=example-view,cn=data views,cn=config secondaryTable: country1 secondaryTable: phone1 primaryTable: employee1 objectClass: top objectClass: configEntry objectClass: jdbcObjectClassMapping dnPattern: uid cn: person superclass: top
由于 objectClass:organizationalPerson 和 objectClass:inetOrgPerson 均存在于正被添加的条目中,因此需要将 2 个对象类指定为超级类,如以下 ldapmodify 命令所示。
$ ldapmodify -p dpsPort -D "cn=Proxy manager" -w password dn: cn=person,cn=example-view,cn=data views,cn=config changetype: modify add: superClass superClass: inetOrgPerson - add: superClass superClass: organizationalPerson |
此 ldapmodify 示例运行后,jdbc-object-class 按以下示例中所示方式定义。
dn: cn=person,cn=example-view,cn=data views,cn=config secondaryTable: country1 secondaryTable: phone1 primaryTable: employee1 objectClass: top objectClass: configEntry objectClass: jdbcObjectClassMapping dnPattern: uid cn: person superclass: top superclass: inetOrgPerson Added superclass: organizationalPerson Added
尽管 log-level-data-sources-detailed 属性的默认设置被记录为 none,实际默认值为 all。然而,将 log-level-data-sources-detailed 设置为 none 以外的任何值会影响服务器性能,并使 access 文件迅速增长。 由于该原因,DPS 服务器实例被创建时 log-level-data-sources-detailed 设置的值被自动设置为 none。建议您不要将此项设置设置为某个其他值。
由于 Vulnerability Note VU#836068, MD5 vulnerable to collision attacks 中所描述问题的原因,目录代理服务器 应当避免在签名证书中使用 MD5 算法。
执行以下步骤确定证书的签名算法。
运行以下命令,显示特定 目录代理服务器 实例中定义的证书列表。
$ dpadm list-certs instance-path |
在每个被定义的证书上运行以下命令,确定证书是否采用 MD5 算法签名。
$ dpadm show-cert -F ascii -o cert-output-file \ dps-instance-path cert-alias $ dsadm add-cert ds-instance-path cert-alias \ cert-output-file $ dsadm show-cert ds-instance-path cert-alias |
以下示例显示了 dsadm show-cert 命令针对采用 MD5 签名算法的证书的典型输出信息:
Certificate: Data: ... Signature Algorithm: PKCS #1 MD5 With RSA Encryption ... |
运行以下命令从数据库删除任何 MD5 签名证书:
$ dsadm remove-cert instance-path cert-alias |
执行以下步骤更新证书数据库密码。(创建目录代理服务器实例时 dpadm 命令生成默认证书数据库密码。)
停止 目录代理服务器 实例。
运行以下命令:
$ dpadm set-flags instance-path cert-pwd-prompt=on |
显示消息,提示您输入密码。
输入一个至少 8 个字符长的密码。
重新启动 目录代理服务器 实例并在提示时提供 Internal (Software) Token。
将使用 MD5 功能的任何证书替换为使用 SHA-1 签名算法的证书。根据您的安装是否使用自签名证书,还是从证书授权机构获得的证书,执行以下过程之一。
执行以下步骤生成并储存一个自签名证书:
运行以下命令:
$ dpadm add-selfsign-cert --sigalg SHA1withRSA \ dps-instance-path cert-alias |
默认签名算法为 MD5withRSA。
显示以下提示:
[Password or Pin for "NSS Certificate DB"] |
输入新证书数据库密码。
执行以下步骤生成并储存从证书授权机构 (CA) 获得的证书:
运行以下命令发布 CA 签名的服务器证书请求:
$ dpadm request-cert --sigalg SHA1withRSA instance-path cert-alias |
确保您的证书授权机构不再使用 MD5 签名算法,然后将证书请求发送到证书授权机构(公司内部或外部,取决于您的规则)以获取 CA 签名的服务器证书,在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“请求 CA 签名的服务器证书” 中有介绍。
当证书授权机构向您发送新证书时,请运行以下命令将证书添加到证书数据库:
$ dpadm add-cert instance-path cert-alias |
在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。
如果受信任的证书授权机构证书尚未存储在证书数据库中,请运行以下命令将其添加:
$ dpadm add-cert --ca instance-path trusted-cert-alias |
在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。
运行以下命令验证新证书是否正在被使用。
$ dpadm show-cert -F ascii -o cert-output-file \ dps-instance-path cert-alias $ dsadm add-cert ds-instance-path cert-alias \ cert-output-file $ dsadm show-cert ds-instance-path cert-alias |
对于 Microsoft SQL Server 后端,使用 smalldate 字段时,仅支持长整型版的日期,否则会发生转换错误,如以下示例中所示。
ldap_modify: Operations error ldap_modify: additional info: java.lang.Exception: \ com.microsoft.sqlserver.jdbc.SQLServerException: \ Conversion failed when converting datetime from character string. |
长整型版日期使用形式 YYYY -MM-DD HH:MM。