本章描述已知的运行时问题。
自本文档在 Solaris 9 9/02 Documentation CD 和 Solaris 9 9/02 Installation CD 中的安装 Kiosk 中发行后,本章中又添加了以下运行时错误描述。
如果 ocfserv 终止而且显示被锁定,则不论插入还是取出智能卡,系统都将保持锁定状态。
远程登录到 ocfserv 进程终止的机器。
成为超级用户。
在终端窗口中输入以下命令,终止 dtsession 进程。
# pkill dtsession |
智能卡管理控制台中的"编辑配置文件"菜单项不能编辑位于 /etc/smartcard/opencard.properties 的智能卡配置文件。如果选择该菜单项,将显示一条警告信息,指出除非技术支持人员要求如此,否则不能继续执行此操作。
解决方法:不要使用智能卡管理控制台中的"编辑配置文件"菜单项。有关智能卡配置的信息,请参见《Solaris Smartcard Administration Guide》。
如果在 dtmail 从命令行启动时指定了 FontList 选项,则 dtmail 在连接到 IMAP 服务器后会崩溃。请参见以下示例。
/usr/dt/bin/dtmail -xrm "Dtmail*FontList: -*-r-normal-*:" |
显示以下错误信息:
段故障 |
此问题在 C 和 ja 语言环境中都会发生。
解决方法:在从命令行启动 dtmail 时,不要指定 FontList 选项。
如果您尝试在任何 Solaris 9 9/02 Unicode 或 UTF-8 语言环境中阅读包含许多长行的电子邮件,CDE 邮件程序 (dtmail) 似乎挂起,电子邮件不会立即显示。
解决方法:选择以下解决方法之一。
扩大 dtmail 邮箱窗口以容纳 132 列。
按照以下步骤禁用"复杂文本布局"功能。
成为超级用户。
将目录更改到系统的语言环境目录。
# cd /usr/lib/locale/locale-name |
上例中,locale-name 是系统的 Solaris 9 9/02 Unicode 或 UTF-8 语言环境的名称。
重命名语言环境布局引擎种类。
# mv LO_LTYPE LO_LTYPE- |
在将任何修补程序应用到语言环境布局引擎之前,将语言环境布局引擎种类重命名为原名称 (LO_LTYPE)。
当从桌面删除最后一项后,在同步手持设备时,该项会从手持设备恢复到桌面。例如,"日历"中的最后一个约会或 "地址管理器"中的最后一个地址,它们被删除后会重新恢复。
解决方法:在同步前从手持设备中手动删除最后一项。
如果您在 PDA 设备与 Solaris CDE 之间交换多字节数据,数据可能会在两种环境中都遭到破坏。
解决方法:在运行 PDASync 应用程序之前,使用 PDA 备份公用程序来备份个人计算机上的数据。如果您意外地交换了多字节数据并破坏了该数据,请从备份恢复数据。
在 Solaris 9 9/02 操作环境基于 UltraSPARC II 的系统中,不是总能产生与某些无法更正的内存错误信息一同出现的 CP 事件信息。这些系统包括 Sun EnterpriseTM 10000 和 Sun EnterpriseTM 6500/6000/5500/5000/ 4500/4000/3500/3000 系统。结果是不能始终提供某些用于识别有故障的 CPU 所需的信息。
解决方法:有关此问题的最新信息,请查阅 SunSolve Web 站点 http://sunsolve.sun.com。
Solaris WBEM Services 2.5 守护程序找不到写入 com.sun.wbem.provider 接口或 com.sun.wbem.provider20 接口的提供程序。即使您为写入这些接口的提供程序创建了一个 Solaris_ProviderPath 实例,Solaris WBEM Services 2.5 守护程序也找不到这些提供程序。
解决方法:为使守护程序能够找到这样一个提供程序,请停止并重新启动 Solaris WBEM Services 2.5 守护程序。
# /etc/init.d/init.wbem stop # /etc/init.d/init.wbem start |
如果使用 javax
API 开发提供程序,则不需要停止并重新启动 Solaris WBEM Services 2.5 守护程序,因为 Solaris WBEM Services 2.5 守护程序会动态识别 javax
提供程序。
如果选择使用 com.sun 应用程序编程接口而不是使用 javax
应用程序编程接口来开发您的 WBEM 软件,则只有 CIM 远程方法调用 (RMI) 得到完全支持。其它协议,如 XML/HTTP,不一定完全支持 com.sun 应用程序编程接口。
下表列出了在 RMI 下能够成功执行、但在 XML/HTTP 下不能成功执行的调用示例。
方法调用 |
错误信息 |
---|---|
CIMClient.close() |
NullPointerException |
CIMClient.execQuery() |
CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED |
CIMClient.getInstance() |
CIM_ERR_FAILED |
CIMClient.invokeMethod() |
XMLERROR: ClassCastException |
Solaris 管理控制台安装和共享工具不能修改系统重要文件系统(如 / (root)、/usr 和 /var)上的安装选项。
解决方法:选择以下解决方法之一。
在 mount 命令中使用 remount 选项。
# mount -F file-system-type -o remount,additional-mount-options \ device-to-mount mount-point |
通过使用 -remount 选项和 mount 命令所做的安装特性修改不是永久性的。此外,前一个命令的 additional-mount-options 部分没有指定的所有安装选项都会继承系统所指定的缺省值。有关详细信息,请参见手册页 mount_ufs(1M)。
编辑 /etc/vfstab 文件中相应的项,修改文件系统安装选项,然后重新引导系统。
当内存不足时会显示以下错误信息:
CIM_ERR_LOW_ON_MEMORY |
当通用信息模型 (CIM) 对象管理器的运行导致内存不足时,不能再添加其它项。必须重置 CIM 对象管理器系统信息库。
解决方法:要重置 CIM 对象管理器系统信息库,请执行以下步骤。
成为超级用户。
关闭 CIM 对象管理器。
# /etc/init.d/init.wbem stop |
删除 JavaSpacesTM log 目录。
# /bin/rm -rf /var/sadm/wbem/log |
重新启动 CIM 对象管理器。
# /etc/init.d/init.wbem start |
在重置 CIM 对象管理器系统信息库时,会丢失数据存储中的任何专有定义。必须使用 mofcomp 命令重新编译包含这些定义的 MOF 文件。请参见以下示例。
# /usr/sadm/bin/mofcomp -u root -p root-password your-mof-file |
如果 Solaris 卷管理器镜像了根 (/) 文件系统,并且该文件系统不是从柱面 0 开始的,则您附加的所有子镜像也不能从柱面 0 开始。
如果试图将从柱面 0 开始的子镜像附加到某个镜像,并且该镜像中最初的子镜像不是从柱面 0 开始的,则会显示以下错误信息。
不能向无标签的镜像附加有标签的子镜像 |
解决方法:选择以下解决方法之一。
确保根文件系统和其它子镜像的卷都从柱面 0 开始。
确保根文件系统和其它子镜像的卷都不从柱面 0 开始。
缺省情况下,JumpStart 安装过程会在柱面 0 开始交换片,并从磁盘上的其它位置开始根 (/) 文件系统。在系统管理实践中,通常是从柱面 0 开始片 0。如果将缺省的 JumpStart 安装(其根在片 0,但不在柱面 0)镜像到第二个磁盘(其片 0 从柱面 0 开始),则在试图附加第二个子镜像时会显示错误信息。有关 Solaris 安装程序的缺省行为的详细信息,请参见"交换片安装问题"。
如果使用 metadetach 命令从镜像中删除子镜像,可能无法重新附加该子镜像。这是由于在分离子镜像后,镜像会自动调整大小。
解决方法:在使用 metadetach 命令分离子镜像之前,先附加一个与要分离的子镜像大小相同的子镜像。
如果从系统中实际删除一个软分区的磁盘,然后又用新磁盘替换它,则 metareplace -e 命令将无法启用该软分区。不论在发出 metareplace -e 命令以启用软分区之前是否使用 metarecover 命令,都会发生此故障。
解决方法:在新磁盘上重新创建软分区。
如果软分区是镜像或 RAID 5 的一部分,则使用不带 -e 选项的 metareplace 命令,用新的软分区来替换旧的软分区。
# metareplace dx mirror or RAID 5 old_soft_partition new_soft_partition |
如果遇到以下情况,metahs -e 命令可能会失败。
热备用设备遇到问题,例如在使用 metaverify 测试公用程序时引起的错误。
在元设备上发生错误时,Solaris 卷管理器软件试图激活热备用。热备用被标记为 broken。
系统被关闭。包含热备用的故障磁盘被同一位置的新磁盘替换。
当系统引导时,Solaris 卷管理器软件不能识别新的热备用。
metahs -e 命令用于在新磁盘上启用热备用。
系统会显示以下信息:
警告: md: d0: 热备用打开错误(不可用) |
这是由于 Solaris 卷管理器软件内部不能识别交换到同一物理位置的新的热备用磁盘。Solaris 卷管理器软件继续显示系统中不再存在的磁盘的设备 ID。
在 Photon 或存储机箱上不会发生此类故障,因为替换磁盘时设备号也变了。
解决方法:选择以下解决方法之一。
按照以下步骤在 Solaris 卷管理器状态数据库中更新热备用磁盘的设备 ID。
成为超级用户。
输入以下命令,更新热备用磁盘的设备 ID。
# metadevadm -u logical-device-name |
输入以下命令,使新的热备用磁盘可用。
# metareplace -e logical-device-name |
按照以下步骤管理系统中的热备用和热备用池。
成为超级用户。
输入以下命令,删除热备用片的项。
# metahs -d hsphot-spare-pool-number logical-device-name |
输入以下命令,用正确的设备 ID 为热备用片在同一位置创建新的项。
# metahs -a hsphot-spare-pool-number logical-device-name |
不能用通过 Solaris 卷管理器软件配置的设备来替换发生故障的设备。Solaris 卷管理器软件必须是第一次识别出替换设备。如果一个磁盘从 Photon 上的一个插槽实际移动到另一个插槽,则 metadevadm 命令会失败。这是由于该片的逻辑设备名不再存在。但是,该磁盘的设备 ID 仍然存在于元设备复本上。系统会显示以下信息:
检测到未命名的设备。请运行 'devfsadm && metadevadm -r 来解决此问题。 |
此时,您可以在新位置访问该磁盘。但是,可能需要使用旧的逻辑设备名来访问该片。
解决方法:将该驱动器实际移回原来的插槽。
如果从系统中删除并替换物理磁盘,然后用 metarecover -p -d 命令向该磁盘中写入适当的软分区特定信息,会导致一个打开故障。该命令不能更新元设备数据库名称空间以使其反映磁盘设备标识的变化。这种情况会使建立在该磁盘上的每个软分区都产生一个打开故障。系统会显示以下信息:
打开错误 |
解决方法:在新磁盘上创建软分区,而不是使用 metarecover 命令来恢复软分区。
如果软分区是镜像或 RAID 5 的一部分,则使用不带 -e 选项的 metareplace 命令,用新的软分区来替换旧的软分区。
# metareplace dx mirror or RAID 5 old_soft_partition new_soft_partition |
Solaris 点对点协议 (PPP) 4.0 守护程序 (pppd ) 在以下条件下可能会意外退出。
pppd 守护程序空闲。
启用了 pppd 守护程序的 demand 和 holdoff 选项。
数据包在隔离期间到达。
如果 pppd 守护程序意外退出,会在适当的系统日志文件中记录一条类似如下的信息。
current date hostname pppd[PID]: [ID 702911 daemon.error] 无法设置 要传递的 IP: 无效的参数 current date hostname pppd[PID]: [ID 702911 daemon.error] 无法启用 IPCP |
请参见手册页 pppd( 1M),获取有关 pppd 的 demand 和 holdoff 选项的详细信息。
解决方法:选择以下解决方法之一。
如果在试图重新启动链接之前不需要 pppd 进行等待,则不要对 pppd 守护程序使用 holdoff 选项。
将 holdoff 选项的值设为 0。
从类似以下 Bourne shell 脚本的循环脚本中运行 pppd 守护程序。
#!/bin/sh while :; do /usr/bin/pppd cua/b lock idle 60 demand nodetach noauth \ 38400 10.0.0.1:10.0.0.2 holdoff 20 done
如果在两个 IP 节点之间配置多个隧道,并启用 ip_strict_dst_multihoming 或其它 IP 过滤器,会导致数据包丢失。
解决方法:选择以下解决方法之一。
先在两个 IP 节点之间配置一个隧道。然后使用带有 addif 选项的 ifconfig 命令,向该隧道添加地址。
不要在两个 IP 节点之间的隧道上启用 ip_strict_dst_multihoming。
如果解除一个 CDE 会话的锁定,则所有缓存的 Kerberos 5 版 (krb5) 凭据都可能会被删除。结果是您可能无法访问各种系统公用程序。此问题在以下条件下发生。
在 /etc/pam.conf 文件中,系统的 dtsession 服务在缺省情况下被配置为使用 krb5 模块。
您锁定 CDE 会话,然后尝试解除该会话的锁定。
如果发生此问题,会显示以下错误信息。
锁定屏幕: PAM-KRB5(鉴定): 检验 TGT 与 host/host-name 时出错: 权限被重播缓存代码拒绝 |
解决方法:向 /etc/pam.conf 文件中添加非 pam_krb5 的 dtsession 项。
dtsession auth requisite pam_authtok_get.so.1 dtsession auth required pam_unix_auth.so.1 |
如果在 /etc/pam.conf 文件中设置了这些项,则缺省情况下不会运行 pam_krb5 模块。
临时从 Solaris 9 9/02 操作环境中删除了 CDE 桌面环境中的可移动介质自动运行功能,以减轻潜在的安全问题。
要使用 CD-ROM 或其它可移动介质卷的自动运行功能,必须执行以下操作之一:
从可移动介质文件系统的顶级运行 volstart 程序。
按照 CD 附带的说明,从 CDE 的外部访问。
有关安全问题和修补程序的最新信息,请查阅 SunSolve Web 站点 http://sunsolve.sun.com。无须支持合同便可从 SunSolve 站点得到所有安全修补程序。
在 Solaris 9 9/02 操作环境中,锁定的帐户被视为过期的或不存在的帐户。结果,cron、at 和 batch 公用程序不能调度锁定帐户的作业。
解决方法:要使锁定帐户能够接受 cron、at 或 batch 作业,请用字符串 NP(无密码)替换锁定帐户的密码字段 (*LK*)。
如果试图在运行 Solaris 9 9/02 操作环境的系统上用 Veritas Volume Manager 执行各种任务,vxddladm addjob 或 vxddladm addsupport 公用程序可能会发生(主存储器)信息转储。
解决方法:执行以下步骤。
成为超级用户。
请检验 /var/ld/ld.config 文件和 /usr/bin/crle 公用程序是否在该系统上。
在终端窗口中输入以下命令。
# /usr/bin/cp /var/ld/ld.config /var/ld/ld.config.save # /usr/bin/crle -E LD_LIBRARY_PATH=/usr/lib # appropriate-vxddladm-command # /usr/bin/mv /var/ld/ld.config.save /var/ld/ld.config |
在 iPlanetTM Directory Server 5.1 Collection (Solaris 版)中,标题为 DocHome 的链接以及在不同的文档之间的链接无法正常使用。如果选择这些链接,浏览器会显示"找不到"错误。
解决方法:要在系统上的 iPlanet Directory Server 5.1 的文档间浏览,请打开 http://docs.sun.com 处的 iPlanet Directory Server 5.1 Collection(Solaris 版)页面。单击指向要查看的文档的链接。
如果删除了 SUNWsdocs 软件包,然后试图删除其它文档软件包,删除将会失败。这是由于安装任何文档集时都会一起安装 SUNWsdocs 软件包,并由其提供浏览器入口点。
解决方法:如果删除了 SUNWsdocs 软件包,请从文档介质重新安装 SUNWsdocs 软件包,然后删除其它文档软件包。
在 Solaris 9 9/02 操作环境和其它基于 UNIX 的系统中,无法在以下欧洲语言环境中打开位于 Solaris 9 9/02 Documentation 1 of 2 CD 上的 PDF 文档。
de(德文)
es(西班牙文)
fr(法文)
it(意大利文)
sv(瑞典文)
这是由于 Adobe Acrobat Reader 的限制。有关此问题的详细信息,请参见 Adobe Technote 站点 http://www.adobe.com:80/support/techdocs/294de.htm。
解决方法:选择以下解决方法之一。
在 Solaris 9 9/02 操作环境和其它基于 UNIX 的系统中,将环境变量 LC_ALL 设置为 C acroread。例如,在 C shell 中,在终端窗口中输入以下命令。
% env LC_ALL=C acroread |
升级到 Adobe Acrobat Reader 5.0 或更高版本。
如果发生以下情况,某些 Solaris 9 9/02 文档集可能会从系统中被意外删除。
系统上同时安装了 Solaris 9 9/02 Documentation 1 of 2 CD 和 Solaris 9 9/02 Documentation 2 of 2 CD。
然后使用 prodreg 公用程序或 Solaris 9 9/02 Documentation CD 安装程序来删除某些文档软件包。
Solaris 9 9/02 Documentation 1 of 2 CD 和 Solaris 9 9/02 Documentation 2 of 2 CD 包含三个公共的文档集。如果从 Solaris 9 9/02 Documentation 1 of 2 CD 或 Solaris 9 9/02 Documentation 2 of 2 CD 安装中删除包含这些文档集的软件包,该软件包会同时从两个安装中删除。
下表列出了可能会被意外删除的软件包。
表 2-1 两张 Solaris 9 9/02 Documentation CD 中所包含的 Solaris 9 9/02 Documentation 软件包
HTML 软件包名称 |
PDF 软件包名称 |
文档集说明 |
---|---|---|
SUNWaadm |
SUNWpaadm |
Solaris 9 System Administrator Collection |
SUNWdev |
SUNWpdev |
Solaris 9 Developer Collection |
SUNWids |
SUNWpids |
iPlanet Directory Server 5.1 Collection - zh |
解决方法:选择以下解决方法之一。
如果卸载进程意外删除了这些文档软件包,而您希望系统上有这些软件包,请从 Solaris 9 9/02 Documentation 1 of 2 CD 或 Solaris 9 9/02 Documentation 2 of 2 CD 重新安装该软件包。
要避免此问题,请使用 pkgrm 公用程序删除要从系统中消除的软件包。
在 en_US.UTF-8 语言环境中,不能通过同时按 AltGraph 和 E 键输入欧元字符。
解决方法:选择以下解决方法之一。
按下并释放书写 (Compose) 键,随后按下并释放 C 键,然后按下并释放 = 键 (Compose+C+=)。
如果您的键盘上没有 Compose 键,则在按下 Shift 和 T 键的同时按下 Control 键 (Ctrl-Shift-T)。
按下 4 键的同时按下 Alt 键 (Alt-4)。
要在阿拉伯语言环境中生成带音调符号的字符,请输入阿拉伯字符,然后按 Shift-U。
在欧洲 UTF-8 语言环境中排序不能正常工作。
解决方法:在 FIGGS UTF-8 语言环境中尝试排序前,请把 LC_COLLATE 变量设置为相等的 ISO-1 值。
# echo $LC_COLLATE > es_ES.UTF-8 # LC_COLLATE=es_ES.IS08859-1 # export LC_COLLATE |
然后开始排序。
安全 shell 应用程序没有本地化,并且不能被完全翻译。
在安装过程中输入独特名称时,使用 UTF-8 字符集编码。其它编码不受支持。安装操作不会将数据从本地字符集编码转换为 UTF-8 字符集编码。用于输入数据的 LDIF 文件必须也使用 UTF-8 字符集编码。输入操作不会将数据从本地字符集编码转换为 UTF-8 字符集编码。
由 SunTM Open Net Environment (Sun ONE) Directory Server(即以前的 iPlanet Directory Server)5.1 所提供的构架与 RFC 2256 中为 groupOfNames 和 groupOfUniquenames 对象类指定的架构不同。在提供的架构中,member 和 uniquemember 属性类型是可选的。RFC 2256 指定在各自的对象类中必须至少存在一个这种类型的值。
aci 属性是一个可操作属性,除非您明确请求,否则在搜索中不会返回该属性。
目前不支持通过 WAN 执行多主控复制。
SunTM ONE Directory Server 5.1 提供 UID Uniqueness 插件。缺省情况下,插件未被激活。要确保特定属性的属性唯一性,请为每个属性创建一个新的 Attribute Uniqueness 插件实例。有关 Attribute Uniqueness 插件的详细信息,请参见 http://docs.sun.com 处的《iPlanet Directory Server 5.1 Administrator's Guide》。
现在,Referential Integrity 插件在缺省情况下是关闭的。要避免解析循环冲突,在多主控复制环境中应只在一个主控复制中启用 Referential Integrity 插件。在发出链式请求的服务器上启用 Referential Integrity 插件之前,分析性能资源、时间和完整性需要。完整性检查会消耗大量内存和 CPU 资源。
nsRoleDN 属性用于定义角色。此属性不应用于计算用户输入中的角色成员关系。在计算角色成员关系时,请查看 nsrole 属性。
如果 VLV 索引涉及多个数据库,则 VLV 索引不能正确运行。
如果启动 Sun ONE Directory Server 5.1 控制台并创建非激活的新用户或新角色,则新创建的用户或角色并不是非激活的。不能通过控制台来创建非激活的用户和角色。
解决方法:要创建非激活的用户或角色,请执行以下步骤:
创建新用户或新角色。
双击新创建的用户或角色,或者选择新创建的用户或角色。在"对象"菜单中,单击"特性"项。
单击"帐户"选项卡。
单击"取消激活"按钮。
单击"确定"。
新创建的用户或角色被取消激活。
如果在 Sun ONE Directory Server 5.1 配置时指定了包含空格的基本 DN,例如 o=U.S. Government,C=US,则生成的 DN 被截断为 Government,C=US。在配置时,DN 应输入为 o=U.S.%20Government,C=US。
解决方法:要更正基本 DN 项,请执行以下步骤。
在控制台的"服务器和应用程序"选项卡的左侧导航窗格中选择顶级目录项。
编辑"用户"目录子树字段中的后缀。
单击"确定"。
如果在非主控目录服务器上更新口令策略信息,该信息不会复制到所有其它服务器上。这种信息包括帐户锁定。
解决方法:在每台服务器上手动管理口令策略信息。
如果帐户锁定有效,并且用户口令被更改,则帐户锁定仍然有效。
解决方法:重置 accountUnlockTime、passwordRetryCount 和 retryCountResetTime 锁定属性来解除帐户的锁定。
如果您安装 Sun ONE Directory Server 5.1,启动控制台,用 LDIF 文件初始化目录,然后备份服务器,则控制台会报告备份成功。但实际上备份失败。
解决方法:在初始化数据库之后,从控制台执行以下任务:
停止服务器。
重新启动服务器。
执行备份。
您不能使用 LDAP 命名服务来创建除大小写不同以外完全相同的自动安装路径名,因为这会导致非唯一的路径名。如果命名属性用区分大小写的语法来定义,并且已经存在一个名称相同(但大小写不同)的项,则目录服务器不允许创建该项。
/home/foo 和 /home/Foo 路径不能同时存在。
例如,如果存在项 attr=foo,dc=mycompany,dc=com,服务器就不允许创建 attr=Foo,dc=mycompany,dc=com。此问题的一个副作用是在使用 LDAP 命名服务时,自动安装的路径名必须唯一(不区分大小写)。
解决方法:无。
如果服务器在输出、备份、恢复或创建索引的过程中停止,则服务器会崩溃。
解决方法:在执行这些操作的过程中不要停止服务器。
如果您试图通过 (SSL) 将复制配置为使用基于认证的鉴别,则在存在以下任一条件时,复制不能工作。
供应商的认证是自签名的。
供应商的认证只能担当 SSL 服务器认证,并且该服务器不能在 SSL 握手过程中"担当"客户机角色。
解决方法:无。