本章介绍已知的运行时问题。 对于那些由于发现太晚而未能包含在这些发行说明中的最新 Solaris 运行时问题,请参见位于 http://docs.sun.com/db/doc/817-3468 的《Solaris 9 12/03 发行说明》。
自本文档在 Solaris 9 12/03 Documentation CD 和 Solaris 9 12/03 Installation CD 的安装 Kiosk 上发布以来,本章增加了以下运行时错误说明:
如果 ocfserv 终止并且显示被锁定,则不论插入还是取出智能卡,系统都保持锁定状态。
解决方法:按照以下步骤解除系统锁定:
远程登录到 ocfserv 进程终止的计算机。
成为超级用户。
在终端窗口中键入以下命令,终止 dtsession 进程。
# pkill dtsession |
ocfserv 重新启动,智能卡登录并恢复功能。
智能卡管理控制台中的“编辑配置文件”菜单项不能编辑位于 /etc/smartcard/opencard.properties 的智能卡配置文件。 如果选择该菜单项,将出现一条警告信息,指出除非技术支持人员要求如此,否则不能继续执行此操作。
解决方法:不要使用智能卡管理控制台中的“编辑配置文件”菜单项。 有关智能卡配置的信息,请参见《Solaris Smartcard Administration Guide》。
如果使用了 xmlValidateDocument() 函数,则使用 /usr/lib/libxml2.so.2 库的应用程序可能会因信息转储而出现间断性失败。 此问题是由已经过 xmlValidateDocument() 函数验证的文档的库中的堆栈溢出所致。
只有针对在 Solaris 9 4/03 发行版之前引入的 libxml2 发行版编译代码时才会遇到此问题。 编译后,代码将在以下发行版之一上执行:
Solaris 9 4/03
Solaris 9 8/03
Solaris 9 12/03
解决方法: 对所有 Solaris 9 发行版应用以下修补程序:
对于 SPARC 系统,应用修补程序 114014-07。
对于 x86 系统,应用修补程序 114015-07。
如果使用了 libxml2.so 功能测试宏,则需要对使用 Solaris 9 4/03、Solaris 9 8/03 或 Solaris 9 12/03 发行版的系统上采用 libxml2.so 编译的应用程序进行重新编译。 之所以需要进行重新编译,是因为随 Solaris 软件提供的 libxml2.so 的版本已经由于二进制不兼容性而恢复到 2.4.23。 这种二进制不兼容性曾出现在 libxml2 的 2.5.4 版本中。
临时从 Solaris 9 12/03 软件中删除了 CDE 桌面环境中的可移动介质自动运行功能。
解决方法:要使用 CD-ROM 或其它可移动介质卷的自动运行功能,必须执行以下操作之一:
从可移动介质文件系统的顶级运行 volstart 程序。
按照 CD 附带的说明,从 CDE 外部进行访问。
如果在从命令行启动 dtmail 时指定了 FontList 选项,则 dtmail 在连接到 IMAP 服务器后会崩溃。 请参见以下实例:
/usr/dt/bin/dtmail -xrm "Dtmail*FontList: -*-r-normal-*:" |
将显示以下错误消息:
段故障 |
此问题在 C 和 ja 语言环境中都会发生。
解决方法:在从命令行启动 dtmail 时,不要指定 FontList 选项。
如果尝试在任何 Solaris 9 12/03 Unicode 或 UTF-8 语言环境中阅读包含许多长行的电子邮件,CDE 邮件程序 (dtmail) 似乎挂起, 电子邮件不会立即显示。
解决方法:请选择以下解决方法之一:
增大 dtmail 信箱窗口以容纳 132 列。
按照以下步骤禁用复杂文本布局功能:
成为超级用户。
将目录切换到系统的语言环境目录。
# cd /usr/lib/locale/locale-name |
在上例中,locale-name 指的是系统的 Solaris 9 12/03 Unicode 或 UTF-8 语言环境的名称。
重命名语言环境布局引擎种类。
# mv LO_LTYPE LO_LTYPE- |
在将任何修补程序应用到语言环境布局引擎之前,将语言环境布局引擎的种类重命名为原名称 (LO_LTYPE)。
当从桌面删除最后一项后,在同步手持设备时,该项会从手持设备恢复到桌面。 例如,“日历”中的最后一个约会或“地址管理器”中的最后一个地址。
解决方法:在同步前从手持设备中手动删除最后一项。
如果您在 PDA 设备与 Solaris CDE 之间交换多字节数据,则数据在两种环境中都可能会被破坏。
解决方法:在运行 SolarisTM PDASync 应用程序之前,使用 PDA 备份公用程序备份个人计算机上的数据。 如果意外地交换了多字节数据并破坏了该数据,请从备份中恢复 数据。
有关 GNOME 2.0 桌面的发行说明和疑难解答的信息,请参见位于 http://docs.sun.com 上的以下文档:
如果签名的修补程序及其内容被提取到相同的目录中,则不能使用 /usr/sbin/patchadd 命令安装提取的修补程序。 相反,签名的修补程序将在您执行 /usr/sbin/patchadd ./patchid 命令时进行安装。 未签名的、已提取的修补程序将被忽略。
在某些情况下,可能会显示以下错误消息:
正在检验签名的修补程序 patchid... 错误: 无法打开键存储 /var/sadm/security/patchadd /truststore 进行读取 错误: 无法打开键存储 /var/sadm/security 进行互斥访问 签名修补程序 patchid 的签名无效。 Patchadd 正在终止。 |
解决方法:请选择以下解决方法之一:
将签名的修补程序提取到该修补程序所在目录以外的目录中。 执行 /usr/sbin/patchadd 命令时使用已提取的修补程序的路径。
在提取签名的修补程序之后,运行 /usr/sbin/patchadd 命令之前,删除 .jar 文件。
不要提取签名的修补程序, 而应总装软件包键存储并直接安装签名的修补程序。 执行以下操作:
成为超级用户。
执行以下命令:
# /usr/bin/mkdir /var/sadm/security |
# /usr/bin/keytool -export -storepass changeit -alias \ gtecybertrustca -keystore usr/java/jre/lib/security/cacerts -file \ /tmp/gte.crt |
# /usr/bin/pkgadm addcert -t -f der /tmp/gte.crt |
将缺省口令 changeit 更改为用于保护 Java 键存储的口令。
使用 lucreate 命令创建新引导环境时,该命令将在以下实例中失败:
所有装载的存储设备的设备路径都是装载的其它存储设备的设备路径的子集。
例如,一个文件系统当前装载在 /dev/md/dsk/d1 中,另一个文件系统当前装载在 /dev/md/dsk/d10 中。
所有装载的存储设备的设备路径都是在 lucreate 命令中用作变量的存储设备的设备路径的子集。
例如,如果一个文件系统当前装载在 /dev/md/dsk/d10 中,并且 /dev/md/dsk/d100 被用作 lucreate 的选项,而您正在为新引导环境指定文件系统。
将显示以下使人产生误解的错误消息:
文件系统创建公用程序 /usr/lib/fs/ufsufs/mkfs 不可用。 |
无法为 boot-environment 创建所有必需的文件系统。 |
无法为 boot-environment 创建文件系统 |
解决方法:确保在设备名称为其它存储设备(其中仍有文件系统在使用)的子集的存储设备上没有使用任何文件系统。
如果在装载的文件系统中存在任何不明确的名称,请重命名现有的 Solaris 卷管理元设备。
在以下解决方法中,d10 和 d100 仅用作实例。 不明确的设备名称的其它实例包括 d20 和 d200 或 d377 和 d37,其中 d20 与 d200 相匹配,而 d377 与 d37 相匹配。
成为超级用户。
使用 metarename 命令重命名其中一个不明确的元设备名称。
# metarename d10 d300 |
元设备 d10 被重命名为 d300。
使用 metarename 命令之前,必须先卸载 d10 上的文件系统。
在卸载文件系统时,请编辑 /etc/vfstab 文件 和包含要重命名的元设备的名称的其它所有相应的配置文件。 您需要将对旧元设备名称的所有引用更改为对新元设备名称的引用。
如果某进程正在访问文件系统上的数据,请将系统转换到单用户模式以卸载该文件系统。 在作出更改之后请重新引导系统。
如果使用 Solaris 管理控制台对担当域名服务 (DNS) 服务器的系统上的用户或组帐户执行操作,并且 该系统上存在 /etc/named.conf 文件,则会发生错误。
从图形用户界面 (GUI) 执行这些操作时,或使用控制台的命令行界面 smuser 和 smgroup 时,会发生以下错误。
对某个用户执行操作时,控制台启动一个新对话框或退出 smuser 命令,并显示以下错误消息:
“由于出现意外错误,无法查看用户或角色。 这是由于以下错误引起的: CIM_ERR_FAILED。” |
对某个组执行操作时,控制台启动一个新对话框或退出 smgroup 命令,并显示以下错误消息:
“由于出现意外的 CIM 错误,无法读取组 ID: CIM_ERR_FAILED。”请从 GUI 或命令行界面执行操作。 |
解决方法: 请选择以下解决方法之一:
通过重新启动 DNS 服务器来解决此问题,步骤如下:
成为超级用户。
将 named.conf 文件移到另一个目录中。 例如:
# mv /etc/named.conf /var/named/named.conf |
重新启动 DNS 服务器。
# pkill -9 in.named |
# /usr/sbin/in.named /var/named/named.conf |
通过重新启动 WBEM 服务器来解决此问题,步骤如下:
成为超级用户。
使用文本编辑器编辑 /usr/sadm/lib/wbem/WbemUtilityServices.properties 文件。
用 /tmp/new-filename 替换 /etc/named.conf 字符串。
确保您选用了系统上不存在的文件名。
停止 WBEM 服务器。
# /etc/init.d/init.wbem stop |
启动 WBEM 服务器。
# /etc/init.d/init.wbem start |
有关详细信息,请参见 smuser(1M) 和 smgroup(1M) 手册页。
当引导具有服务分区并且已安装 Solaris 9 12/03 (x86 Platform Edition) 软件的 Sun LX50 时, 可以选择按 F4 功能键来引导服务分区。但按下 F4 键后屏幕变为空白, 而且系统无法引导服务分区。
解决方法:当显示“BIOS 引导屏幕”时,请勿按 F4 键。 超时后,将显示“当前磁盘分区信息”屏幕, 选择“零件号”列中与 type=DIAGNOSTIC 相对应的编号 并按回车键。 系统将引导服务分区。
在 Solaris 912/03 发行版中基于 UltraSPARC II 的系统上,不能始终生成伴随某些无法纠正的内存错误消息的 CP 事件消息。 包括以下系统:
Sun EnterpriseTM 10000 系统
Sun Enterprise 6500 系统
Sun Enterprise 6000 系统
Sun Enterprise 5500 系统
Sun Enterprise 5000 系统
Sun Enterprise 4500 系统
Sun Enterprise 4000 系统
Sun Enterprise 3500 系统
Sun Enterprise 3000 系统
结果是某些用于标识失败 CPU 的信息不能始终显示。
解决方法:有关此问题的最新信息,请访问 SunSolveSM 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 |
通过使用 mount 命令和 -remount 选项所做的装载特性修改不是永久性的。 此外,未在上个命令的 additional-mount-options 部分中指定的所有装载选项均会继承由系统指定的缺省值。 有关详细信息,请参见 mount_ufs(1M) 手册页。
编辑 /etc/vfstab 文件中相应的项以修改文件系统装载特性,然后重新引导系统。
当内存不足时会显示以下错误消息:
CIM_ERR_LOW_ON_MEMORY |
当 CIM 对象管理器的内存不足时,不能添加更多项目。 必须重置 CIM 对象管理器系统信息库。
解决方法:要复位 CIM 对象管理系统信息库,请执行以下操作:
成为超级用户。
停止 CIM 对象管理器。
# /etc/init.d/init.wbem stop |
删除 JavaSpacesTM 日志目录。
# /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 卷管理器镜像了 root (/) 文件系统,并且该文件系统不是从柱面 0 开始的,则您附加的所有子镜像也不能从柱面 0 开始。
如果试图将从柱面 0 开始的子镜像附加到某个镜像,并且该镜像中最初的子镜像不是从柱面 0 开始的,则会显示以下错误信息:
不能向无标签的镜像附加有标签的子镜像 |
解决方法:请选择以下解决方法之一:
确保 root 文件系统和其它子镜像的卷都从柱面 0 开始。
确保 root 文件系统和其它子镜像的卷都不从柱面 0 开始。
缺省情况下,JumpStart 安装进程会从柱面 0 开始交换,并从磁盘上的其它位置开始 root (/) 文件系统。 常见的系统管理方式是从柱面 0 开始片 0。如果将缺省的 JumpStart 安装(其 root 在片 0,而不在柱面 0)镜像到第二个典型磁盘(其片 0 从柱面 0 开始),就会出现问题, 从而导致试图附加第二个子镜像时产生错误消息。 有关 Solaris 安装程序缺省行为的详细信息,请参见《Solaris 9 12/03 安装指南》。
如果遇到以下情况,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 |
如果在两个 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 12/03 发行版中,锁定的帐户被视为过期的或不存在的帐户。 结果,cron、at 和 batch 公用程序不能调度锁定帐户的作业。
解决方法:要使锁定帐户能够接受 cron、at 或 batch 作业,请用字符串 NP(无口令)替换锁定帐户的口令字段 (*LK*)。
如果在运行 Solaris 9 12/03 软件的系统上尝试使用 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 Edition) 中,标题为“DocHome”的链接不能正常使用。 不同的书之间的链接也不能正常使用。 如果选择这些链接,浏览器会显示“找不到”错误。
解决方法:要在系统上的 iPlanet Directory Server 5.1 文档之间切换,请转至 http://docs.sun.com 上的 iPlanet Directory Server 5.1 Collection (Solaris Edition) 页面。 单击指向要查看的文档的链接。
如果您删除了 SUNWsdocs 软件包,然后试图删除其它文档软件包,删除将会失败。 这是由于安装任何文档集时都会一起安装 SUNWsdocs 软件包,并由其提供浏览器入口点。
解决方法:如果删除了 SUNWsdocs 软件包,则从文档介质重新安装 SUNWsdocs 软件包,然后删除其它文档软件包。
如果在系统上安装以下任何两个或所有三个文档介质,然后尝试卸载这些 CD 中的任何一个,卸载程序汇总面板都会报告故障状态:
Solaris 9 12/03 Documentation 1 of 2 CD
Solaris 9 12/03 Documentation 2 of 2 CD
Solaris 9 on Sun Hardware documentation set on the Solaris 9 12/03 Software Supplement CD
发生此问题是由于三张 CD 都包含依赖于 SUNWsdocs 软件包的软件包。
您试图卸载的 CD 仍然处于已注册状态。 但是,产品注册表中会显示已损坏状态。 卸载程序将此状态解释为故障。
随后,卸载过程中将跳过文档集,即使已从系统中删除了相关的软件包。
解决方法:请执行以下操作来解决该问题:
卸载剩余的 Solaris 9 12/03 文档 CD。
取消注册未正确卸载的 Solaris 9 12/03 文档 CD。
如果有必要,重新安装 Solaris 9 12/03 文档介质。
在 Solaris 9 12/03 软件和其它基于 UNIX 的系统中,在以下的欧洲语言环境中,不可访问 Solaris 9 12/03 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 12/03 软件和其它基于 UNIX 的系统中,将环境变量 LC_ALL 设为 C acroread。 例如,在 C shell 中,在终端窗口中键入以下命令:
% env LC_ALL=C acroread |
对于非基于 UNIX 的系统,请升级到 Adobe Acrobat Reader 5.0 或更高版本。
在以下情况下,系统中某些 Solaris 9 12/03 文档集可能会被意外删除:
系统上同时安装了 Solaris 9 12/03 Documentation 1 of 2 CD 和 Solaris 9 12/03 Documentation 2 of 2 CD。
然后使用 prodreg 公用程序或 Solaris 9 12/03 Documentation CD 安装程序来删除某些文档软件包。
Solaris 9 12/03 Documentation 1 of 2 CD 和 Solaris 9 12/03 Documentation 2 of 2 CD 包含三个公共的文档集。 如果从 Solaris 9 12/03 Documentation 1 of 2 CD 或 Solaris 9 12/03 Documentation 2 of 2 CD 安装中删除包含这些文档集的软件包,该软件包会同时从两个安装中删除。
下表列出了可能会被意外删除的软件包:
表 2–1 两张 Solaris 9 12/03 Documentation CD 上都包含的 Solaris 9 12/03 文档软件包
HTML 软件包名称 |
PDF 软件包名称 |
文档集说明 |
---|---|---|
SUNWaadm |
SUNWpaadm |
Solaris 9 System Administrator Collection |
SUNWdev |
SUNWpdev |
Solaris 9 Developer Collection |
SUNWids |
SUNWpids |
iPlanet Directory Server 5.1 Collection |
解决方法:请选择以下解决方法之一:
如果卸载过程意外删除了这些文档软件包,并且您希望系统上有这些软件包,请从 Solaris 9 12/03 Documentation 1 of 2 CD 或 Solaris 9 12/03 Documentation 2 of 2 CD 重新安装这些软件包。
要避免此问题,请使用 pkgrm 公用程序删除要从系统中删除的软件包。
此 Solaris 9 发行版中添加了对以下三种键盘布局的软件支持: 爱沙尼亚语键盘类型 6、加拿大法语键盘类型 6 和波兰语程序员键盘类型 5。
使用此软件,爱沙尼亚、加拿大和波兰的用户可以根据自己的语言需要来更改标准的美国键盘布局,从而更灵活地进行键盘输入。
目前,这三种键盘布局类型还没有可用的硬件。
解决方法:要使用这种新的键盘软件,请使用以下方法之一修改 /usr/openwin/share/etc/keytables/keytable.map 文件:
对于加拿大法语类型 6 键盘,请进行以下更改:
将 /usr/openwin/share/etc/keytables/keytable.map 文件中的 US6.kt 项改为 Canada6.kt。 按以下方式读取已修改的项:
6 0 Canada6.kt |
重新引导系统使更改生效。
如果您要使用现有的波兰文类型 5 键盘布局,请进行以下更改:
将 /usr/openwin/ share/etc/keytables/keytable.map 文件中的 Poland5.kt 项改为 Poland5_pr.kt。 按以下方式读取已修改的项:
4 52 Poland5_pr.kt |
如果您使用的是带有 DIP 开关的键盘,则在重新引导系统之前,请确保先将这些开关设置为用于输入波兰文的正确二进制值(二进制值 52)。
如果您使用的是标准的美国类型 5 键盘,请将 /usr/openwin/share/etc/keytables/keytable.map 文件中的 US5.kt 项改为 Poland5_pr.kt。 按以下方式读取已修改的项:
4 33 Poland5_pr.kt |
重新引导系统使更改生效。
要在阿拉伯文语言环境中生成带音调符号的字符,请键入阿拉伯字符,然后按 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 |
然后开始排序。
通过 Solaris 9 12/03 软件的缺省浏览器尝试使用 Sun ONE Application Server Administrative UI 时,会显示以下错误消息:
不支持浏览器: Netscape 4.78 建议将浏览器升级到 Netscape 4.79 或 Netscape 6.2 (或更高版本)来运行 Sun One Application Server Administrative UI。如果不升级并继续进行操作, 可能会导致性能降低或发生不可预知的结果。 |
如果您运行的是 Solaris 9 12/03 发行版中的 Sun ONE Application Server Administrative UI 版本,则需要使用 Netscape 4.79 或 Netscape 7.0 软件。
解决方法:使用 /usr/dt/appconfig/SUNWns/netscape,而不使用 /usr/dt/bin/netscape。
某些 NavigatorTM 软件版本不支持编辑 Sun ONE Application Server 存取控制列表 (ACL)。 如果在使用 Netscape Navigator 6.x 或 Netscape Navigator 7.x 版本软件时试图编辑 ACL 项,则可能会遇到间断性问题。
可能发生的几类问题包括:
浏览器窗口消失。
启动时不显示 ACL 编辑屏幕。
解决方法:请选择以下解决方法之一:
使用受支持的 Netscape Navigator 软件 4.79 版或 Microsoft Internet Explorer 6.0 版。
手动编辑 ACL 文件。 有关 ACL 文件格式的详细信息,请参见《Sun ONE Application Server 7 管理员指南》。
使用 Oracle® 9.2 客户端访问 Oracle 9.1 数据库时,如果数字列出现在时间戳列的后面,可能会导致数据被破坏。
这可能是由于使用 ojdbc14.jar 文件访问 Oracle 9.1 数据库造成的。 应用修补程序可能有助于解决 32 位 Solaris 机器(运行 Oracle 9.1 数据库)上的此类问题。 这种适用于 Oracle 的 JDBCTM 驱动程序在 JDKTM 1.4 上运行。
解决方法:从 Oracle 的 Web 站点下载用于错误 2199718 的修补程序并将其应用到服务器中。
使用命令行界面创建 Persistence Manager Factory 资源时报告检验器错误。 在 Sun ONE Application Server 管理界面中查看资源时,会显示以下错误:
ArgChecker 失败: jndiName 验证失败: 对象必须非空 |
解决方法:按照以下步骤创建新的 Persistence Management Factory 资源:
使用数据源信息创建 jdbc 连接池,以连接到数据库。
通过 Java Naming and Directory InterfaceTM (J.N.D.I.) 查找创建 jdbc 资源,使连接池可用。
使用第 2 步创建的 jdbc 资源来创建持久性资源管理。
server.xml 文件中 iiop-listener 元素的地址属性中的 any 值允许侦听系统上所有可用的接口, 此支持包括 IPv4 和 IPv6 接口。 但是,Sun ONE Application Server 缺省配置在 iiop-listener 元素中使用 0.0.0.0 地址值。 此缺省配置不侦听 IPv6 接口, 只侦听系统上所有的 IPv4 接口。
解决方法:在 server.xml 文件 iiop-listener 元素的地址属性中使用 :: 值来侦听系统上的所有 IPv4 和 IPv6 接口。
如果在安装证书并启用安全设置后重新启动 Sun ONE Application Server,重新启动将失败。 将显示一条消息,说明服务器无法接收口令。
如果未启用安全套接字层 (SSL) ,未缓存口令,将导致重新启动失败。 重新启动命令不支持从非 SSL 模式到启用 SSL 模式的切换。
这个问题只在服务器首次重新启动时发生, 以后的重新启动则恢复正常。
解决方法:请选择以下解决方法之一:
如果应用程序有许多 Enterprise JavaBeansTM 组件,服务器在动态重新装入应用程序的过程中可能会崩溃。 动态重新装入功能用于在开发环境中对应用程序的微小更改进行快速测试。 此崩溃是由于试图使用过多的文件描述符造成的。
解决方法: 请执行以下操作:
按以下格式向 /etc/system 文件添加行,增加文件描述符的限制值。
set rlim_fd_max=8192
set rlim_fd_cur=2048
根据应用程序的大小,可以适当地调整限制值。
重新引导系统。
如果通过 Sun ONE Application 管理界面安装外部证书, 则当您试图使用安装在外部加密模块上的证书为 http 侦听程序启用 SSL 时,会遇到问题。 尽管能够成功安装证书,但证书昵称并不显示在管理界面中。
解决方法:请执行以下操作:
以管理员用户身份登录到安装有 Sun ONE Application Server 软件的系统中。
使用 asadmin 命令将 http 侦听程序链接到安装在外部加密模块上的证书。 有关 asadmin 命令的详细信息,请参见 asadmin(1AS) 手册页。
# asadmin create-ssl --user admin user--password password --host host name \ --port port --type http-listener --certname nobody@apprealm:Server-Cert \ --instance instance --ssl3enabled=true \ --ssl3tlsciphers +rsa_rc4_128_md5 http-listener-1 |
以上命令在证书与服务器实例之间建立了链接, 但该命令并不安装证书, 证书是通过管理界面安装的。
尽管已将证书和 http 侦听程序链接起来,但 http 侦听程序只在非 SSL 模式中进行侦听。
启用 http 侦听程序在 SSL 模式中进行侦听。 使用以下命令:
# asadmin set --user admin user --password password --host host name \ --port port server1.http-listener.http-listener-1.securityEnabled=true |
以上命令将服务器实例的侦听状态从非 SSL 切换到 SSL。 执行完以上操作后,证书将显示在管理界面中。
现在您可以根据需要使用管理界面来编辑 http 侦听程序。
如果在 Solaris 9 12/03 发行版中运行 Sun ONE Application Server 软件, 并使用 /usr/appserver/bin 中的 flexanlg 命令,则会显示以下打开失败错误:
ld.so.1: /usr/appserver/bin/flexanlg: 致命: libplc4.so: 打开失败: 文件不存在或目录已被删除 |
解决方法:请执行以下操作:
将以下项添加到 LD_LIBRARY_PATH 文件中:
/usr/lib/mps
运行 flexanlg 命令。
% /usr/appserver/bin/flexanlg
如果您的网络中未使用 IPv6,则不会出现这个问题。
缺省情况下,Sun ONE Application Server 7 实例和 Admin Server 实例使用 IPv4。所有能运行 Sun ONE Application Server 的系统软件都支持 IPv4。 对于支持 IPv6 的平台,为了保持一致性,需要更改 Sun ONE Application Server 的配置。
如果要更改这些配置,您必须确保系统支持 IPv6。 如果将 IPv6 相关的配置应用到仅支持 IPv4 的系统,Application Server 实例可能无法启动。
解决方法:请执行以下配置更改:
启动管理服务器。
通过在浏览器中连接到管理服务器 HTTP 主机或端口,来启动管理控制台。
选择要配置 IPv6 的服务器实例,例如 server1。
在树视图中扩展 HTTP 侦听程序节点。
选择要配置 IPv6 的 HTTP 侦听程序,例如 http-listener1。
在“General”节中,将“IP Address”字段的值更改为 ANY。
在“Advanced”节中,将“Family”字段的值更改为 INET6。
将“Family”字段设置为 INET6 不会禁用 IPv4 功能,除非选定一个 IPv6 地址作为 IP 地址。 如果 IP 地址设置为 ANY,则匹配所有的 IPv4 和 IPv6 地址。
单击“保存”。
从左侧的面板中选择您的服务器实例。
单击“应用更改”。
单击“停止”。
单击“启动”。
服务器将重新启动并实现您所做的更改。
如果在进行小的更改并重新封装应用程序后试图多次部署样例,将显示以下错误消息:
已经部署 |
此问题影响到大多数样例,因为这些样例都使用 Ant 公用程序和 common.xml 文件,而它们都具有 deploy 目标。 这种组合用法混淆了应用程序部署和资源注册。
解决方法:请选择以下解决方法之一:
对于大多数使用 Ant 公用程序 build.xml 文件并包含 common.xml 文件的样例应用程序,键入以下命令:
% asant deploy_common |
对于所有其它样例应用程序,键入以下命令:
% asant undeploy % asant deploy |
本地事务管理器不支持具有非零的超时值设置的事务。 如果将事务服务元素中的超时秒数属性设置为大于 0 的值,则所有本地事务都被作为全局事务处理。 超时值为 0 意味着如果事务管理器未收到参与的数据源返回的信息,事务管理器将一直等待。
如果数据源驱动程序不支持全局事务,本地事务可能会失败。
解决方法:将超时秒数复位为缺省值 0。
要通过容器管理持久性 (CMP) bean 利用 Oracle JDBC 优化,必须在 server.xml 文件的 classpath-suffix 属性中指定 classes12.zip 文件。 不要将 classes12.zip 文件放置在 instance/lib/ 目录(第三方库的缺省目录)中。
解决方法:将 classes12.zip 文件添加到 server.xml 文件的 classpath-suffix 属性中。
如果 DNS 查找 IPv6 地址失败,则远程方法调用因特网 Inter-ORB 协议 (RMI-IIOP) 的客户机将不能使用 IPv6 地址。
解决方法:应该在部署站点设置 DNS,以便查找 IPv6 地址。
如果 Sun ONE Application Server 作为 Solaris 的一部分进行安装,则 Application Server 启动时会出现多个问题:
所有应用服务器和管理服务器实例都会在 Solaris 系统启动过程中自动启动。 在许多环境中,用户并不希望所有实例都在 Solaris 系统启动过程中自动启动, 因为启动每个定义的实例都会对系统的可用内存产生不利影响。
应用服务器实例和管理服务器实例自动启动时,每个实例的启动脚本都作为 root 执行。 执行不属于非 root 用户的实例启动脚本时,非 root 用户可以通过修改实例级启动脚本来访问 root 用户。
在安装 Sun ONE Application Server 的过程中,会安装 /etc/init.d/appserv 脚本以及 /etc/rc*.d/ 目录中 S84appserv 和 K05appserv 脚本的符号链接。 这些脚本导致所有应用服务器实例和管理服务器实例(定义为应用服务器安装的一部分)随着 Solaris 系统的启动和停机而自动启动和停止。
/etc/init.d/appserv 脚本包含以下代码段:
case "$1" in 'start') /usr/sbin/asadmin start-appserv ;; 'stop') /usr/sbin/asadmin stop-appserv ;;
执行 asadmin start-appserv 命令导致管理服务器实例和(所有管理域中定义的)所有应用服务器实例在 Solaris 系统启动过程中启动。 由于系统启动和停机脚本是作为 root 执行的,因此每个应用服务器和管理服务器实例的启动脚本也作为 root 执行。 实例级启动脚本的名称为 startserv,位于 instance-dir/bin/startserv 中。 因为非 root 用户也可以拥有实例,所以非 root 用户可以修改 startserv 脚本,作为 root 用户执行命令。
如果实例使用具有特权的网络端口,则该实例的 startserv 脚本必须作为 root 执行。 但是,实例的配置中通常会设置 run as user, 以强制实例在 root 用户第一次启动该实例后以指定的用户身份运行。
解决方法:根据您的环境,执行以下解决方法之一:
如果您的环境不要求所有应用服务器实例和管理服务器实例都作为 root 启动,则注释掉 /etc/init.d/appserv 脚本中的 asadmin start-appserv 和 asadmin stop-appserv 命令。
如果您的环境要求启动特定管理域或者启动一个或多个管理域中的特定实例,您可以修改或创建脚本来自动执行该过程。 请注意,特定管理域包括每个域的管理服务器实例和所有应用服务器实例。
修改 /etc/init.d/appserv 脚本,启动所需的域或实例。
根据环境的需要,定义新的 /etc/rc*.d/ 脚本。
启动注意事项:要自动启动特定的应用服务器管理域或特定的应用服务器实例,在修改 Solaris 软件启动脚本时,请注意以下事项:
启动特定的域 – 如果要以 root 用户身份启动特定管理域中的管理服务器实例和所有应用服务器实例,请按如下所示修改 /etc/rc*.d/ 脚本:
case "$1" in 'start') /usr/sbin/asadmin start-domain --domain production-domain ;; 'stop') /usr/sbin/asadmin stop-domain --domain production-domain ;;
以非 root 用户身份启动特定的应用服务器实例 – 修改 /etc/rc*.d/ 脚本以使用带有 -c 选项的 su 命令。
case "$1" in 'start') su - usera -c "/usr/sbin/asadmin start-instance --domain test-domain instance-a" su - userb -c "/usr/sbin/asadmin start-instance --domain test-domain instance-b" ;; 'stop') su - usera -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-a" su - userb -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-b" ;;
有关可通过 asadmin 命令行界面使用的 startup 和 shutdown 命令的详细信息,请参见《Sun ONE Application Server 7 管理员指南》。
在安装过程中键入独特名称 (DN) 时,使用 UTF-8 字符集编码。 其它编码不受支持。 安装操作不会将数据从本地字符集编码转换为 UTF-8 字符集编码。 用于输入数据的轻量目录交换格式 (LDIF) 文件也必须使用 UTF-8 字符集编码。 输入操作不会将数据从本地字符集编码转换为 UTF-8 字符集编码。
Sun Open Net Environment (Sun ONE) Directory Server(以前的 iPlanet Directory Server)5.1 提供的架构与 RFC 2256 中为 groupOfNames 和 groupOfUniquenames 对象类指定的架构不同。 在提供的架构中,member 和 uniquemember 属性类型是可选的。 RFC 2256 指定在各自的对象类中必须至少存在一个这些类型的值。
aci 属性是一个可操作属性,除非您明确要求,否则在搜索中不会返回该属性。
目前不支持在广域网 (WAN) 上进行多主控复制。
Sun ONE Directory Server 5.1 提供用户标识号 (UID) Uniqueness 插件。 缺省情况下,该插件未被激活。 要确保特定属性的属性唯一性,请为每个属性创建一个新的 Attribute Uniqueness 插件实例。 有关 Attribute Uniqueness 插件的详细信息,请参见 http://docs.sun.com 上的《iPlanet Directory Server 5.1 系统管理员指南》。
现在,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 命名服务时,自动安装的路径名必须唯一(不区分大小写)。
解决方法:无。
如果服务器在执行 export、 backup、restore 命令或创建索引过程中停止,则服务器会崩溃。
解决方法:在执行这些操作的过程中不要停止服务器。
如果您试图通过 SSL 将复制配置为使用基于证书的鉴别,则在存在以下任一条件时,复制不能工作:
供应商的证书是自签名的。
供应商的证书只能作为 SSL 服务器证书,并且该服务器不能在 SSL 握手过程中担当客户机角色。
解决方法:无。
如果您试图在 Veritas Volume Manager (VxVM) 卷上创建 2 TB 或更大的 UFS 文件,将会导致错误状态。 结果会生成大小为 VxVM 卷模数 2 TB 的文件系统。 例如,大小为 8.4 TB 的 VxVM 卷将生成一个大小为 0.4 TB 的文件系统。
不显示警告消息。
解决方法: 无。
Solaris 9 12/03 发行版不支持使用 fssnap 命令为大于 1 TB 的 UFS 文件系统创建快照。 将显示以下错误消息:
fssnap: 致命: 文件系统 /dir/snapshot0 支持大文件。 |
解决方法:无。