Sun Java System Directory Server Enterprise Edition 6.3.1 发行说明

第 4 章 已修复的 目录代理服务器 错误和已知问题

本章包含在发布 目录代理服务器 时提供的特定于产品的重要信息。

本章包括以下各节:

目录代理服务器 6.3.1 中修复的错误

本部分列出了 目录代理服务器 发行版 6.3.1 中修复的错误。

6492941

不可用的 JDBC 资源导致通过 JOIN 视图 (LDAP + JDBC) 的搜索失败,即使不要求从该 JDBC 资源中提供数据。

6513526

cn=monitor 上运行 ldapsearch 会在父条目前返回叶条目,该情况会导致部分工具失效。

6597598

通过 LDAP 和 JDBC 的联接视图进行的修改可能触发 NULL 指针异常。

6597607

无辅助属性请求时,性能不会受到对辅助数据资源请求的影响

6597608

尝试将两项修改作为单个 LDAP 事务的一部分进行应用,如果一个属性未到位也可以取得部分成功。

6616898

使用 LDAP 和 JDBC 的联接视图时,objectclass 属性无法在从视图上存储。

6618968

通过联接视图搜索时,在搜索过滤器中无主视图属性的情况下(即使从视图返回了若干条目),首先应当在从视图上执行搜索。

6630730

高搜索负载可能导致 NULL 指针异常。

6637173

在 LDAP 和 JDBC 的联接视图上搜索时,如果绑定用户在被请求的辅助属性上不具备访问权限,则可能不会返回条目。

6637608

运行高搜索负载时,可能触发异常 ArrayIndexOutOfBounds NegativeArraySizeException

6638374

如果 uid 属性包含大写字母,则通过联接视力添加条目失败。

6641925

通过 LDAP 和 JDBC 的联接视图添加条目时,即使添加请求中不包含辅助 JDBC 属性,条目也将在 JDBC 中添加。

6643181

通过 LDAP 和 JDBC 的联接视图添加或替换属性时,如果对于 SQL 数据库而言值太长则被会截断。

6646107

通过 LDAP 和 JDBC 的联接视图添加条目时,在升级或添加字符串(varchar ) 值之前未检查列大小导致数据库错误

6653253

由于 FailoverLoadBalancingAlgorithm 中的竞争情况,搜索压力测试产生意外错误。

6653453

通过 SSL 的持久搜索未能返回数据。

6654625

DPS 中的内存管理策略导致现有连接被断开,同时触发 GC(当内存较低时)。

6656324

添加条目时,DN 值并不始终转换为小写字母。

6658613

通过 LDAP 和 JDBC 的联接视图删除共享属性(可能在两个数据源上存在)时,如果该属性在两种视图之一上不存在,则返回错误。

6659381

在高搜索负载下使用 JDK 1.6 的 64 位模式中,可能产生 JVM 故障。

6660383

当 JDBC 源将其列值处理为区分大小写(通常为 DB2)时,尝试删除 JDBC 属性值可能失败。

6661375

套接字可能在 CLOSE_WAIT 状态中被卡住,导致服务器无响应。

6661474

频繁打开和立即关闭服务器连接可能导致服务器稍后变得无响应,除非执行重新启动。

6663112

在 AMD64 Linux 机器上,服务器无法在 32 位模式中启动。

6670752

在重负载下,服务器可能出现超时,引起对目录服务器的操作重试。

6671579

在搜索过滤器内使用虚拟化映射基础时,某些情况下无结果返回。

6676073

使用联接视图时,拟用于从数据视图的修改可能错误发送到主数据视图。

6680717

在配置包含 JDBC 视图的联接视图时未能设置联接规则可能引起 StringIndexOutOfBoundsException 异常。

6692627

某些特定搜索过滤器可能导致服务器返回解码错误。

6697494

使用包含 JDBC 视图的联接视图时,尝试删除条目的属性失败,该条目仅存在于目录服务中。

6729861

dpadm -V 无法检测 JVM 版本。

6734722

服务器可能使到目录服务器的连接保持在 CLOSE_WAIT 状态,导致目录服务器变成不响应。

6753712

包含非字符串类型(例如浮点型或日期)属性的搜索过滤器可能无法从 JDBC 视图检索结果。

6761017

内部工作线程可能变成死锁,导致服务器变成不响应。

6761875

服务器上可能产生较高的 CPU 使用率高峰,导致机器上的所有服务变成不响应。

6764873

对绑定连接管理的改进降低连接中断请求等待时间 (close wait)。

6766175

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 版本中的 目录代理服务器 已知问题

本节列出了在发行 目录代理服务器 6.3.1 时发现的已知问题。

5042517

LDIF、JDBC、联接和访问控制数据视图不支持修改 DN 操作。

6355714

当前,getEffectiveRight 控制仅受 LDAP 数据视图的支持,而未考虑代理的本地 ACI。

6356465

目录代理服务器 可能拒绝 ACI 将子类指定到目标属性,例如 (targetattr = "locality;lang-fr-ca")

6360059

目录代理服务器 无法恢复数据源连接失败后已修复的 JDBC 数据源连接。 仅当重新启动 目录代理服务器 实例后 目录代理服务器 才能恢复连接。

6383532

验证模式配置更改后必须重新启动 目录代理服务器。

6386073

生成 CA 签名证书请求后进行刷新,证书即显示为自签名证书。

6388022

如果 目录代理服务器 使用的 SSL 端口不正确,则收到对该端口的安全搜索请求后,目录代理服务器 可能会关闭所有连接。

6390118

目录代理服务器 在被配置为基于客户端应用程序凭证而非代理授权进行验证时,无法正确计数引用中继器数。

6390220

创建数据视图时可以指定 base-dn 属性,但在创建数据视图后不能将 base-dn 属性设置为 ""(根 DSE)。

6410741

目录服务控制中心 将值作为字符串进行排序。因此,您在 目录服务控制中心 中排序数字时,这些数字会被视为字符串。

0、20 和 100 按升序排列的结果为 0、100、20。 0、20 和 100 按降序排列的结果为 20、100、0。

6439604

配置警报后,必须重新启动 目录代理服务器 才能使更改生效。

6447554

配置了数字或字典数据分发时,目录代理服务器 无法重命名移至其他数据视图的条目。

6458935

使用联接数据视图工作时,在构成联接的视图中 目录代理服务器 不采取数据分发算法。

要解决此问题,同时使用联接和数据分发时在联接数据视图的级别配置数据分发。

6461510

在 目录代理服务器 中,引用中继器限制不起作用。

6469154

在 Windows 中,dsadmdpadm 命令的输出以及帮助消息未本地化为简体中文和繁体中文。

6469780

未动态检测 JDBC 数据源条目的创建。如果在创建 JDBC 数据视图之前创建了 JDBC 服务器,则数据视图在下次重新启动服务器之前一直被忽略。 因此在配置 JDBC 数据源之后,您必须重新启动 目录代理服务器 使更改被检测到。

6486578

对于 JDBC 对象类,当一个类 A 使用表格作为辅助对象而另一个类 B 使用同一表格作为唯一主要对象时,对 B 的请求无法运行。在主要表格中使用时 目录代理服务器 无法忽略 filter-join-rule 属性。

6488197

在 Windows 系统上安装并创建服务器实例后,安装和服务器实例文件夹的文件访问权限允许所有用户进行访问。

要解决此问题,请更改安装和服务器实例文件夹上的权限。

6488297

在 Windows 中,DSCC 初始化仅可由管理员用户执行。

6490763

在重新启动 目录服务器 后通过 目录代理服务器 访问 目录服务器 时,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 毫秒。

6490853

如果运行的搜索使用了配置有 DB2 数据库的 JDBC 数据视图,且在搜索结果中有大量条目要返回,则返回 1,344 个条目后可能发生错误。

要克服此限制,请将 CLI/ODBC 配置关键字 CLIPkg 的值设置为最高 30,增加大型数据包的数量。即使如此搜索结果仍然限制为最高 11712 个条目。

有关详细信息,请参见 DB2 文档。

6491133

使用 目录服务控制中心 创建自签名证书时,请勿在证书名称中使用多字节字符。

6491845

通过 目录代理服务器 所允许的默认 LDAP 控件不按 目录服务控制中心 显示。

6493349

目录服务控制中心 在为现有排除的子树或备用搜索基更改 DN 时会删除逗号。

6494540

第一次启用或禁用非安全 LDAP 访问后,必须重新启动 目录代理服务器 才能使更改生效。

6497547

时间限制和大小限制设置仅对 LDAP 数据源发挥作用。

6497992

使用命令 dpadm set-flags cert-pwd-store=off 后,无法使用 目录服务控制中心 重新启动 目录代理服务器。

6501867

dpadm start 命令用于结合了 ASCII 和多字节字符的服务器实例名时不起作用。

6505112

在现有连接处理器上设置 data-view-routing-custom-list 属性时,包含必须换码的字符(例如逗号)的数据视图名会出错。

要解决此问题,请勿在数据视图名中包含必须换码的字符。例如,不要使用包含 DN 的数据视图名。

6510583

与早期版本不同,正如在手册页 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

请注意,您必须重复现有设置。否则,仅允许服务器侧排序控件。

6511264

在使用 目录代理服务器 的 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

6520368

用于通过 目录代理服务器 访问 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

6527010

目录代理服务器 无法写入表示 JDBC 数据库中表间的多对多 (N:N) 关系的 JDBC 属性。

6539650

带有多字节 DN 和使用 DSCC 创建的 目录代理服务器 实例,在 Linux 上无法启动。

6542857

在 Solaris 10 中使用服务管理工具 (SMF) 启用服务器实例时,该实例在您重新启动系统时可能不会启动,并返回以下错误:


svcadm: Instance "svc:/instance_path" is in maintenance state.

要解决此问题,请使用本地用户身份创建 Directory Server 和 Directory Proxy Server 服务器。

6547755

路径中带有多字节字符的 目录代理服务器 实例可能无法在 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 字符以避免这些问题。

6547759

在 HP-UX 上,如果访问将多个浏览器会话设置为不同语言环境的 DSCC,DSCC 可能以不同于浏览器中设置的语言环境的语言环境显示某些字符串。

6551076

如果计算机具有多个主机名,控制台不会检索 目录代理服务器 实例的后端状态。

6565106

如果在 RDBMS 表格中存在重复条目,匹配在 JDBC 对象类中找到的 DN 模式,那么在 JDBC 数据视图中执行搜索时,目录代理服务器 将返回重复子树(非叶)节点。例如,如果在 JDBC 对象类中存在 DN 模式 ou 且在映射到 JDBC 属性 ou 的 RDBMS 列中存在重复条目(例如 sales),那么在搜索结果中将会存在类似于 ou=sales 复节点。

    要解决此问题,请执行以下操作:

  1. 通过采纳表格中的值(该表格包含了被映射到 ou JDBC 属性的列),以恰当方式创建 RDBMS 视图,从而确保无重复条目。

  2. 使用带有 DN 模式 ou 的 JDBC 对象类中的 RDBMS 视图名称,替换 RDMBS 表格名称。此方法的限制是由于 RDBMS 视图为只读,JDBC 属性 ou 的值不能通过 目录代理服务器 添加。

6567644

DPS 构建非法的 DB 请求。

6573439

在 DSCC 中的某个实例的更多视图选项中,显示在“访问日志”、“错误日志”和“审计日志”下的日期未被格式化。

6583798

在 DSCC 6.0 中,通过 DSCC 创建数据源时会默认将 useTCPNoDelay 设置为 False,而通过管理命令 dpconf create-ldap-data-source 创建实例时,会将 use-tcp-no-delay 设置为 True

6588319

如果 DSCC 是使用 Tomcat 服务器配置的,则“帮助”和“版本”弹出窗口的标题会显示乱码形式的多字节字符串。

6590460

dpadm show-cert dps-instance-path 命令的输出中的字符串 owner 未翻译为简体中文和繁体中文。

6592543

在法语语言环境中,提示确认停止或取消注册服务器的弹出窗口显示重复的省略符号。

6597598

使用 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)
6609603

当新数据源被添加到数据源池时,需要重新启动服务器。

6639674

如果 目录代理服务器 配置属性 allow-bind-operations 设置为 False,则无法使用 dpconf 命令行参数和 -–secure-port 选项连接到 SSL 端口。仍可通过 Start TLS(默认)或清除连接(-–unsecured 选项)进行连接。

6640597

添加操作遵循的引用中的 basedn 不同于初始计算机中的 basedn 时,目录代理服务器 不会更改添加操作的 DN。与仅转发引用相反,尝试依据 目录代理服务器 实例(具有设置为遵循引用的 Directory Server 实例)进行添加操作,会导致添加操作在引用的服务器上被拒绝,因为 basedn 不正确。

使用 ldapmodify 命令依据 Directory Server 实例直接执行添加操作允许添加操作起作用。

6642559

写入虚拟变换在 remove-attr-value 变换模式中无法运行。

6642578

修改条目后,写入虚拟变换不能按预期发挥作用。

6649984

为证书数据库设置的密码长度不足时,不会发出警告。如果密码过短,其会被 目录服务控制中心 接受。然后,发出 dpadm 命令及 cert 子命令会导致命令挂起。

6711054

尝试添加 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

以下各节讨论 目录代理服务器 6.3.1 Update 1:

关于 目录代理服务器 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 中的增强功能

目录代理服务器 6.3.1 Update 1 提供以下增强功能:

使用 dpadm set-flags/get-flags (6765629) 设置和获得 JAVA HOME 的功能

可以为 JAVA_HOME 设置路径名称,并占优于在环境中定义的 JAVA_HOME 值,如以下示例所示:


$ dpadm set-flags instance-path jvm-path=/usr/jdk/latest/
能够设置和获取 DPS 配置的 umask 值和日志文件 (6739456)

dpadm 命令更改了 umask 值,在 DPS 实例下次重新启动时,根据新的 umask 值修改配置文件的许可。 此外,日志文件许可在下次文件轮换时也被类似设置。以下示例显示了一次典型使用:


$ dpadm set-flags instance-path umask=22
无法添加具有同样的“MODEL, ACTION, ATTR_NAME”的新虚拟变换 (6722238)

现在允许管理员在同样的 MODEL, ACTION, ATTR_NAME 上定义不同的虚拟变换。

此外,目录代理服务器 6.3.1 Update 1 还添加新属性并升级现有属性,如以下列表所述。新属性被标注为“新”。从 DSEE 6.3.1 中的规范更改而来的属性被标注为“升级”。

close-client-connection(新)

动态(无需重新启动)

级别:connection-handler

类型:boolean

默认值:false

描述:表明当没有数据源可用时连接处理程序是否应关闭客户端连接。

data-view-use-internal-client-identity (新)

动态(无需重新启动)

级别:连接处理程序

类型:boolean

默认值:false

描述:表明在绑定到远程 LDAP 服务器时要求不要始终使用传入的客户端标识。

文档:此属性为标志,表明在绑定到远程 LDAP 服务器时要求不要始终使用传入的客户端标识。

db-vendor(新)

动态(无需重新启动)

级别:jdbc-data-source

类型:枚举

mysql

RDBMS 后端为 MySQL。

derby

RDBMS back-end is Apache Derby/Java DB.

db2

RDBMS 后端为 DB2。

oracle

RDBMS 后端为 Oracle。

ms-sql-server

RDBMS 后端为 Microsoft SQL Server。

generic

RDBMS 后端未定义。如果可能,目录代理服务器 从 jdbc-data-source 中定义的 db-url 确定供应商名称。

默认值:generic

描述:JDBC 数据源的供应商名称

文档:此属性指定 JDBC 数据源的供应商名称。 如果连接到 RDBMS 后端使用的是第三方而非数据库供应商提供的 IDBC 驱动程序,则应当设置此属性。此数据用于构建供应商特定的 SQL 声明,如果该声明可提高性能的话。

numeric-lower-bound(更新)

动态(无需重新启动)

级别:jdbc-data-viewjoin-data-view ldap-data-viewldif-data-view

新类型:长整型

旧类型(适用于 DPS 6.0 至 6.3.1):整数

其他属性保持不变。

numeric-upper-bound(升级)

动态(无需重新启动)

级别:jdbc-data-viewjoin-data-view ldap-data-viewldif-data-view

新类型:长整型

旧类型(适用于 DPS 6.0 至 6.3.1):整数

其他属性保持不变。

down-monitoring-interval(新)

静态(需要重新启动)

级别:ldap-data-source

类型:以秒计的持续时间(下限:1

默认值:继承(monitoring-interval 的值)

描述:可用性监视器对失败的连接进行轮询(以检测其恢复状态)的时间间隔

文档:此属性指定轮询间隔。当发现连接处于关闭状态时,可用性监视器按此间隔轮询连接以检测其恢复状态。如未指定,则使用 monitoring-interval 属性值。

monitoring-retry-count(新)

静态(需要重新启动)

级别:ldap-data-source

类型:整数(下限:1

默认值:3

描述:在将连接标记为关闭之前要执行的重试次数

文档:此属性指定可用性监视器在首先检测到连接为关闭状态时,对连接进行轮询的次数。这就允许连接被标记为有待提高速度。 如果在重试了指定次数以后连接仍然有故障,则使用 down-monitor-interval 属性的值作为轮询间隔。

use-tcp-keep-alive(新)

动态(无需重新启动)

级别:ldap-data-source

类型:boolean

默认值:true

描述:指定是否为服务器和数据源之间的连接启用 SO_KEEPALIVE

文档:此属性为标记,表明是否应当为服务器和数据源之间的连接启用 SO_KEEPALIVE

use-tcp-keep-alive(新)

动态(无需重新启动)

级别:ldap-listenerldaps-listener

类型:boolean

默认值:true

描述:指定是否为客户端和侦听器之间的连接启用 SO_KEEPALIVE

文档:此属性为标记,表明是否应为客户端和侦听器之间的连接启用 SO_KEEPALIVE

allow-unauthenticated-operations(更新)

动态(无需重新启动)

级别:服务器

类型:boolean

默认值:true

新描述:表明服务器是否接受未经验证的操作

旧描述:(适用于 DPS 6.0 至 DPS 6.3.1):表明服务器是否接受来自匿名客户端的操作

新文档:此属性为标记,表明 目录代理服务器 是否接受未经验证的操作。用于处理绑定操作的模式由 allow-unauthenticated-operations-mode 指定。

旧文档(适用于 DPS 6.0 至 DPS 6.3.1):此属性为标记,表明 目录代理服务器 是否允许匿名客户端执行操作。

allow-unauthenticated-operations-mode (新)

动态(无需重新启动)

级别:服务器

类型:枚举

anonymous-only

未指定密码时,仅允许匿名绑定

dn-identified-only

未指定密码时,仅允许与指定的 DN 绑定

anonymous-and-dn-identified

未指定密码时,仅允许匿名绑定以及与指定的 DN 绑定

默认值:anonymous-and-dn-identified

描述:不使用密码处理绑定操作的模式

文档:此属性表明当 allow-unauthenticated-operations 被设置为“true”时,目录代理服务器 如何不使用绑定密码处理操作。

time-resolution(更新)

静态(需要重新启动)

级别:服务器

类型:以毫秒计的持续时间

新默认值: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-millisystem-micro 时,此属性被忽略。

旧文档(适用于 DSP 6.0 至 6.3.1):此属性指定连续系统调用之间的时间间隔,该调用从 OS 检索时间。对于耗时少于 500 毫秒的操作的有关详细信息,请缩短 time-resolution 周期。如果被设置为 0 毫秒,则代理服务器系统地执行系统调用以检索当前时间。 否则时间存入高速缓存且仅在每隔一个 time-resolution 周期时才会检索。该时间在日志中显示。

描述保持以前内容不变。

time-resolution-mode(新)

静态(需要重新启动)

级别:服务器

类型:枚举

custom-resolution

每隔 time-resolution 毫秒即使用线程执行系统调用

system-milli

使用系统调用检索时间(以毫秒计)

system-micro

使用系统调用检索时间(以微秒计)

默认值:custom-resolution

描述:用于检索系统时间的模式

文档:此属性指定用于从 OS 检索时间的模式。

支持平台

目录代理服务器 6.3.1 Update 1 对于所有支持的 Directory Server Enterprise Edition 6.3.1 平台均可用。有关详细信息,请参见硬件要求操作系统要求

目录代理服务器 6.3.1 Update 1 中修复的错误 1

本节列出 目录代理服务器 6.3.1 Update 1 中修复的错误。

6567644

目录代理服务器 构建非法的数据库请求。

6590816

为 LDAP 侦听器设置 connectionIdleTimeOutInSec 可能会禁用 DSCC。

6641888

搜索操作返回的条目可能包含 viewable-attr 中不存在的属性。

6648665

如果未对连接执行任何操作,max-client-connections 属性不会执行。

6681502

默认情况下,内存监视被禁用。

6686150

数字分发算法应当使用 long 而非 int 来设置数值界限。

6717943

目录代理服务器 针对资源属性的默认大小限制将错误的整数用于无限制。

6721192

DN 变换失败。

6721749

add-attr-value 的设置可能导致 DN 变换产生错误输出。

6722222

绑定到 LDAP 服务器时应当映射 bindDN。(使用 bindDN 的 DV 的 DN 映射规则)。

6722238

不能添加具有同样的“MODEL, ACTION, ATTR_NAME”的新虚拟变换。

6723858

在后端目录服务器上设置的 requires-bind-password 属性未被执行。

6734559

依赖于虚拟属性的虚拟 DN 映射失败。

6736621

绑定 DN 在变换失败时被拒绝,即使当其进入视图时也是如此。

6737084

针对来源服务器方向的 DN 映射错误。

6739414

属性名称中的大写/小写字符由 6.3 目录代理服务器 实施变换。

6739456

客户要求 目录代理服务器 为 config 和日志文件设置组权限 (umask 117, chmod 660)。

6751692

使用 MaxTenuringThreshold Java 参数时,dpadm start 命令转储核心。

6758793

DN 映射可能丢弃重命名的条目。

6760526

dpadm 不生成 DPS.pid 文件。

6760951

目录代理服务器 配置模式与 SystemMonitorThread.java 功能不一致。

6761032

服务器与控制台对于 searchMode 参数不一致。

6764073

目录代理服务器 被配置为使用代理验证时失败。

6765629

允许使用 dpadm set-flags 设置 JAVA HOME

6767776

在 rootDSE 上不能使用 DN 映射

6774589

目录代理服务器 要求虚拟 DN 变换具有多值命名属性。

6778262

应当为 etimes 提供微秒时间粒度。

6778308

splitldif 命令忽略虚拟变换。

6780423

在重负载下,套接字可能保持在中断请求等待 (close wait) 状态中。

6782659

当套接字被创建时,在 目录代理服务器 6.3 中未设置 SO_KEEPALIVE 选项(即,setKeepAlive() != True)。

6798674

由于 ConfigAttribute 对象中存在 null 值,CR 6513526 的修复可能引起退化。

6802371

对基于通道的侦听器忽略了 acceptBacklog 属性。

6808701

由于后端连接上的上次活动的原因,非活动心跳的发送频率不足。

6808704

没有为绑定的后端联接发送不活动心跳。

6808706

由于上次服务器活动的原因,后端服务器检查执行的频率可能不足。

6809099

ldapsearch 在监视器条目上运行可能产生不一致 的输出。

6809712

在切断所有连接之前,可用性检查应当确保后端服务器已关闭。

6817976

在放弃请求的情况下,连接可能被阻塞。

6818788

在后端心跳中获得了更出色的精确度。

6818926

在服务器套接字中发生文件描述符泄漏。

6819304

如果故障转移池的定义不具备源,则在 cn=monitor 上搜索时可能出现 null 指针异常。

6819315

尝试绑定...失败后 目录代理服务器 继续打开至目录服务器的连接。

6819752

持久搜索客户端可能未接收条目更改通知。

6821356

2 个连接可能共享同样的标识符。

6821752

持续搜索在客户端断开后未清理。

6823036

当检测到数据源关闭时,主动监视间隔应当设置为 1 秒。

6823593

目录代理服务器 将不同的客户端操作关联到同一后端连接。

6827104

如果闲置大于 inactivity-timeout 而后端连接未关闭但被再利用,则引起连接泄漏。

6827129

连接池内务处理和健康检查进程应当进行调试。

6828462

两个同时发生的长期捆绑将同一后端连接分配给 2 个客户端连接。

6828841

设置错误的 jvm-path 会挂起重新启动且无任何警告。

6828842

无后端服务器可用时,目录代理服务器 返回不正确的错误代码。

6828896

在出现“不能检索后端连接”的情况下,应当提供关闭客户端连接的选项。

6832043

明确设置了 useAffinity=false 和 affinityPolicy 后,不应启用客户端关联。

6835931

如果数据源主机之一不可到达,则无法启动 目录代理服务器。

6836922

dpconf 命令应当支持 目录代理服务器 6.3.1_update 1 中引入的新属性。

6837295

dpconf 命令应当支持绑定 DN 映射。

6837392

应当提供更简单的版本更新用于管理 目录代理服务器 属性。

6837970

dpconf 应当支持 monitorRetryCount

6839452

客户端关联忽略了数据源的只读标志。

6844727

应当完成实施 CR 6714425 和 6714448 的修复。

6851216

小写字母联接表达式可能引起 SQL 请求失败。

6854864

当 100 台以上的客户机执行持续搜索时 目录代理服务器 6.3.1 性能不足。

6855978

持续搜索线程环和 目录代理服务器 不再可以处理持续搜索

6859116

持续搜索的性能不足。

6860746

创建 20 个持续搜索然后将其停止,引起持续搜索功能失败。

6868131

在属性映射和虚拟变换的某些情形中 目录代理服务器 返回 StringIndexOutOfBoundsException

6868804

变换和映射规则不按预期方式执行。

6870051

线程可能过早释放,产生 ASN.1 异常。

6870452

当后端关闭时 Directory Proxy Server 返回不正确的错误。

6870496

可能出现意外的 Null 指针异常。

6874644

在某些情况下,密码存储方案可能被 JDBC 数据视图忽略。

6879124

当不同的用户在客户端连接上绑定时 目录代理服务器 可能返回相同的结果。

6881972

在某些情况下,使用 JDBC 时 目录代理服务器 可能启动失败。

6886109

可能发生意外的 ASN1 异常且无法处理。

目录代理服务器 6.3.1 Update 1 安装说明

本节讨论以下主题:

获取软件

目录代理服务器 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 平台的唯一修补程序:

对于每个平台,以下分发可用:

目录代理服务器 6.3.1 update 1 修补程序 141958-01 可通过以下位置获得:SunSolve 并适用于以下两类安装:

安装说明

本节介绍如何安装 目录代理服务器 6.3.1 update 1。

Procedure在 目录代理服务器 6.3.1 的 Zip 和本地软件包安装中安装修补程序

开始之前

注 –

在应用 Directory Proxy Server 6.3.1 update 1 修补程序之前,请备份 Directory Server Enterprise Edition 安装目录,因为您稍后无法恢复早期的 Directory Proxy Server 配置。此建议适用于 Zip 和本地软件包安装。


  1. 将修补程序 141958-01 从 Sunsolve 下载到 downloaded-patch-path 目录。

  2. 停止与拟安装修补程序的安装相关联的 目录代理服务器 实例。

  3. 在 Windows 系统上,打开命令提示符窗口。在 UNIX 系统上,打开终端窗口。

  4. 更改当前目录到您想要升级的平台和分发(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

  5. 在 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 安装。

  6. 在 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。

  7. 通过运行以下 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
  8. 如果您正在安装修复程序的 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 后,现在可以通过连接处理程序属性配置默认行为,如示例中所示。

  9. 重新启动所有代理服务器实例。

目录代理服务器 6.3.1 Update 1 中的已知问题和限制

本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知问题和限制。


注 –

目录代理服务器 6.3.1 中的已知问题和限制即使在应用了 目录代理服务器 6.3.1 update 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.1 update 1 时发现的已知问题。

6728746

在发行版 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:organizationalPersonobjectClass: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
6826694

尽管 log-level-data-sources-detailed 属性的默认设置被记录为 none,实际默认值为 all。然而,将 log-level-data-sources-detailed 设置为 none 以外的任何值会影响服务器性能,并使 access 文件迅速增长。 由于该原因,DPS 服务器实例被创建时 log-level-data-sources-detailed 设置的值被自动设置为 none。建议您不要将此项设置设置为某个其他值。

6832498

由于 Vulnerability Note VU#836068, MD5 vulnerable to collision attacks 中所描述问题的原因,目录代理服务器 应当避免在签名证书中使用 MD5 算法。

执行以下步骤确定证书的签名算法。

  1. 运行以下命令,显示特定 目录代理服务器 实例中定义的证书列表。


    $ dpadm list-certs instance-path
    
  2. 在每个被定义的证书上运行以下命令,确定证书是否采用 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
       ...
  3. 运行以下命令从数据库删除任何 MD5 签名证书:


    $ dsadm remove-cert instance-path cert-alias
    

执行以下步骤更新证书数据库密码。(创建目录代理服务器实例时 dpadm 命令生成默认证书数据库密码。)

  1. 停止 目录代理服务器 实例。

  2. 运行以下命令:


    $ dpadm set-flags instance-path cert-pwd-prompt=on
    

    显示消息,提示您输入密码。

  3. 输入一个至少 8 个字符长的密码。

  4. 重新启动 目录代理服务器 实例并在提示时提供 Internal (Software) Token

将使用 MD5 功能的任何证书替换为使用 SHA-1 签名算法的证书。根据您的安装是否使用自签名证书,还是从证书授权机构获得的证书,执行以下过程之一。

执行以下步骤生成并储存一个自签名证书:

  1. 运行以下命令:


    $ dpadm add-selfsign-cert  --sigalg SHA1withRSA \
    dps-instance-path cert-alias
    

    注 –

    默认签名算法为 MD5withRSA


    显示以下提示:


    [Password or Pin for "NSS Certificate DB"]
  2. 输入新证书数据库密码。

执行以下步骤生成并储存从证书授权机构 (CA) 获得的证书:

  1. 运行以下命令发布 CA 签名的服务器证书请求:


    $ dpadm request-cert  --sigalg SHA1withRSA instance-path cert-alias
    
  2. 确保您的证书授权机构不再使用 MD5 签名算法,然后将证书请求发送到证书授权机构(公司内部或外部,取决于您的规则)以获取 CA 签名的服务器证书,在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“请求 CA 签名的服务器证书” 中有介绍。

  3. 当证书授权机构向您发送新证书时,请运行以下命令将证书添加到证书数据库:


    $ dpadm add-cert instance-path cert-alias
    

    《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。

  4. 如果受信任的证书授权机构证书尚未存储在证书数据库中,请运行以下命令将其添加:


    $ dpadm add-cert --ca instance-path trusted-cert-alias
    

    《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。

  5. 运行以下命令验证新证书是否正在被使用。


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

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