本章介绍已知的运行时问题。
自本文档在 Solaris 9 4/03 Documentation CD 和 Solaris 9 4/03 Installation CD 的安装 Kiosk 上发布以来,本章增加了以下运行时错误说明。
如果 ocfserv 终止并且显示被锁定,则不论插入还是取出智能卡,系统都保持锁定状态。
远程登录到 ocfserv 进程终止的机器。
成为超级用户。
在终端窗口中键入以下命令,终止 dtsession 进程。
# pkill dtsession |
智能卡控制台中的“编辑配置文件”菜单项不能编辑位于 /etc/smartcard/opencard.properties 的智能卡配置文件。如果选择该菜单项,将出现一条警告信息,指出除非技术支持人员要求如此,否则不能继续执行此操作。
解决方法:不要使用智能卡控制台中的“编辑配置文件”菜单项。有关智能卡配置的信息,请参见《Solaris Smartcard Administration Guide》。
如果安装了以下任意一种欧洲语言或俄文 Unicode/UTF-8 语言环境,但没有安装美国英文、中文或韩文 Unicode/UTF-8 语言环境,则 mp 打印命令会失败。
de_DE.UTF-8
fr_FR.UTF-8
it_IT.UTF-8
es_ES.UTF-8
sv_SE.UTF-8
ru_RU.UTF-8
mp 打印命令将终止打印作业,并显示以下错误消息:
mp: 配置文件行: 46,无法启动字体文件 (/usr/openwin/lib/locale/zh.GBK/X11/fonts/TrueType/songti.ttf) |
其它 CDE 桌面应用程序中也会发生这种错误。例如,在 dtmail 和 dtpad 中。
有关 mp 打印命令的详细信息,请参见 mp(1) 手册页。
解决方法:选择以下解决方法之一。
对于全新安装或升级到 Solaris 9 4/03 操作环境,请选择并安装以下任意一种或多种美国英文、中文或韩文 Uniocde/UTF-8 语言环境:
en_US.UTF-8
zh_CN.UTF-8
zh_HK.UTF-8
zh_TW.UTF-8
ko_KR.UTF-8
如果已经完成了安装或升级,可以手动添加位于 Solaris 9 4/03 Software 1 of 2 CD 或网络映像中的 SUNWgttf 软件包。按照以下步骤执行操作:
以超级用户的身份登录系统。
插入 Solaris 9 4/03 Software 1 of 2 CD。
转到 /cdrom/sol_9*/s0/Solaris_9/Product 目录。
# cd /cdrom/sol_9*/s0/Solaris_9/Product |
添加 SUNWgttf 软件包。
# pkgadd -d . SUNWgttf |
如果在 SunTM LX50 的中文语言环境中启动公用桌面环境 (CDE) 会话,则启动时执行的 CDE 应用程序可能以 root-window 输入法式样显示,而非预期的 over-the-spot 输入法式样。
解决方法:在 /usr/dt/config/Xsession.d/0020.dtims 脚本的结尾处添加 sleep 1 行并启动新的 CDE 桌面会话。
临时从 Solaris 9 4/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 4/03 Unicode 或 UTF-8 语言环境中阅读包含许多长行的电子邮件,CDE 邮件程序 (dtmail) 似乎挂起,电子邮件不会立即显示。
解决方法:选择以下解决方法之一。
扩大 dtmail 信箱窗口以容纳 132 列。
按照以下步骤禁用复杂文本布局功能。
成为超级用户。
将目录切换到系统的语言环境目录。
# cd /usr/lib/locale/locale-name |
在上例中,locale-name 指的是系统的 Solaris 9 4/03 Unicode 或 UTF-8 语言环境的名称。
重命名语言环境布局引擎种类。
# mv LO_LTYPE LO_LTYPE- |
在将任何修补程序应用到语言环境布局引擎之前,将语言环境布局引擎的种类重命名为原名称 (LO_LTYPE)。
当从桌面删除最后一项后,在同步手持设备时,该项会从手持设备恢复到桌面。例如,“日历”中的最后一个约会或“地址管理器”中的最后一个地址。
解决方法:在同步前从手持设备中手动删除最后一项。
如果您在 PDA 设备与 Solaris CDE 之间交换多字节数据,数据在两种环境中可能都会被破坏。
解决方法:在运行 SolarisTM PDASync 应用程序之前,使用 PDA 备份公用程序备份个人计算机上的数据。如果您意外地交换了多字节数据并破坏了该数据,请从备份中恢复数据。
如果您先从 Solaris 9 9/02 或 Solaris 9 12/02 发行版升级到 Solaris 9 4/03 操作环境,然后再创建新的用户帐户,则不会为该帐户创建 home 目录。
如果使用 smuser 命令行界面 (CLI) 来创建用户帐户,则在 CLI 执行完成后,会立即在终端窗口中显示“null”错误。
如果使用 Solaris 管理控制台图形用户界面 (GUI) 来创建用户帐户,则不会显示错误消息。
解决方法:升级到 Solaris 9 4/03 操作环境后,按照以下步骤重新注册 jar 文件。
您需要删除并重新创建在系统升级到此发行版后添加的所有用户帐户。
删除操作可以在重新注册 jar 文件以前或以后进行。 但是,此解决方法必须在创建新用户帐户之前完成。
成为超级用户。
重新注册 jar 文件。
# /usr/sadm/bin/smcregister library -n VUserMgrLib.jar \ /usr/sadm/lib/usermgr/VUserMgrLib.jar \ /usr/sadm/lib/usermgr/VUserMgrLib_classlist.txt ALL |
停止 WBEM 服务器。
# /etc/init.d/init.wbem stop |
重新启动 WBEM 服务器。
# /etc/init.d/init.wbem start |
完成以上步骤后,在添加新的用户帐户时,就会成功创建其 home 目录(通常为 /export/home/username)。
有关详细信息,请参见 smuser( 1M) 手册页。
如果使用 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 4/03(x86 平台版)操作环境的 Sun LX50 时,可以选择按 F4 功能键来引导服务分区。但按 F4 键后屏幕变为空白,而且系统无法引导服务分区。
解决方法:当显示“BIOS 引导”屏幕时,请勿按 F4 键。超时后,将显示“当前磁盘分区信息”屏幕,选择“部分#”列中与 type=DIAGNOSTIC 相对应的编号并按回车键。系统将引导服务分区。
在 Solaris 9 4/03 操作环境中基于 UltraSPARC II 的系统上,不能始终生成伴随某些无法纠正的内存错误消息的 CP 事件消息。这些系统包括 Sun EnterpriseTM 10000 和 Sun Enterprise 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 管理控制台装载和共享工具不能修改对系统很重要的文件系统(如 /(根)、/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 卷管理器镜像了根 (/) 文件系统,并且该文件系统不是从柱面 0 开始的,则您附加的所有子镜像也不能从柱面 0 开始。
如果试图将从柱面 0 开始的子镜像附加到某个镜像,并且该镜像中最初的子镜像不是从柱面 0 开始的,则会显示以下错误消息:
不能向无标签的镜像附加有标签的子镜像 |
解决方法:选择以下解决方法之一。
确保根文件系统和其它子镜像的卷都从柱面 0 开始。
确保根文件系统和其它子镜像的卷都不从柱面 0 开始。
缺省情况下,JumpStart 安装过程会从柱面 0 开始交换片,并从磁盘上的其它位置开始根 (/) 文件系统。常见的系统管理方式是从柱面 0 开始片 0。如果将缺省的 JumpStart 安装(其根在片 0,而不在柱面 0)镜像到第二个典型磁盘(其片 0 从柱面 0 开始),就会出现问题,从而导致试图附加第二个子镜像时产生错误消息。 有关 Solaris 安装程序缺省行为的详细信息,请参见《Solaris 9 安装指南》。
如果遇到以下情况,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 4/03 操作环境中,锁定的帐户被视为过期的或不存在的帐户。结果,cron、at 和 batch 公用程序不能调度锁定帐户的作业。
解决方法:要使锁定帐户能够接受 cron、at 或 batch 作业,请用字符串 NP(无口令)替换锁定帐户的口令字段 (*LK*)。
如果在运行 Solaris 9 4/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) - zh 中,标题为“DocHome”的链接以及在不同的书之间的链接不能正常使用。如果选择这些链接,浏览器会显示“找不到”错误。
解决方法:要在系统上的 iPlanet Directory Server 5.1 文档之间导航,请转至 http://docs.sun.com 上的 iPlanet Directory Server 5.1 Collection (Solaris Edition) - zh 页面。单击指向要查看的文档的链接。
如果您删除了 SUNWsdocs 软件包,然后试图删除其它文档软件包,删除将会失败。这是由于安装任何文档集时都会一起安装 SUNWsdocs 软件包,并由其提供浏览器入口点。
解决方法:如果删除了 SUNWsdocs 软件包,则从文档介质重新安装 SUNWsdocs 软件包,然后删除其它文档软件包。
在 Solaris 9 4/03 操作环境和其它基于 UNIX 的系统中,Solaris 9 4/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 4/03 操作环境和其它基于 UNIX 的系统中,将环境变量 LC_ALL 设置为 C acroread。例如,在 C shell 中,在终端窗口中键入以下命令。
% env LC_ALL=C acroread |
升级到 Adobe Acrobat Reader 5.0 或更高版本。
如果发生以下情况,系统中某些 Solaris 9 4/03 文档集可能会被意外删除。
系统上同时安装了 Solaris 9 4/03 Documentation 1 of 2 CD 和 Solaris 9 4/03 Documentation 2 of 2 CD。
然后使用 prodreg 公用程序或 Solaris 9 4/03 Documentation CD 安装程序删除某些文档软件包。
Solaris 9 4/03 Documentation 1 of 2 CD 和 Solaris 9 4/03 Documentation 2 of 2 CD 包含三个公共的文档集。如果从 Solaris 9 4/03 Documentation 1 of 2 CD 或 Solaris 9 4/03 Documentation 2 of 2 CD 安装中删除包含这些文档集的软件包,该软件包会同时从两个安装中删除。
下表列出了可能会被意外删除的软件包。
表 2–1 两张 Solaris 9 4/03 Documentation CD 上都包含的 Solaris 9 4/03 文档软件包
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 4/03 Documentation 1 of 2 CD 或 Solaris 9 4/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 |
然后开始排序。
解决方法:在 server.xml 文件中手动设置语言环境项。
当用户安装 Application Server 7 的本地化版本时,Application Server 7 的二进制软件包中并未包含本地化的手册页。
解决方法:
1. 切换到 C 语言环境,获得英文版的手册页。
2. 使用有关 asadmin 公用程序手册页的联机帮助或管理员指南。
通过 Solaris 9 4/03 操作环境的缺省浏览器来使用 Sun ONE Application Server 管理 UI 时,会显示以下错误消息:
不支持浏览器: Netscape 4.78 建议将浏览器升级到 Netscape 4.79 或 Netscape 6.2 (或更高版本) 来运行 Sun One Application Server 管理 UI。如果不升级并继续进行 操作,将导致性能降低或发生不可预知的结果。 |
如果运行的是 Solaris 9 4/03 操作环境中包含的 Sun ONE Application Server 管理 UI 版本,则需要使用 Netscape 4.79 或 Netscape 7.0。
解决方法:使用 /usr/dt/appconfig/SUNWns/netscape 来代替 /usr/dt/bin/netscape。
某些 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 Administrator's Guide》。
使用 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,口令将不被缓存,这会导致重新启动失败。restart 命令不支持从不启用 SSL 模式切换到启用 SSL 模式。
这个问题只在服务器首次重新启动时发生,以后的重新启动则恢复正常。
解决方法:选择以下解决方法之一。
如果应用程序有许多 Enterprise JavaBeansTM 组件,服务器在动态重新装入应用程序的过程中可能会崩溃。动态重新装入功能用于在开发环境中对应用程序的小更改进行快速测试。此崩溃是由于试图使用过多的文件描述符造成的。
解决方法:按照以下步骤执行操作。
按以下格式向 /etc/system 文件添加行,加大文件描述符的限制值。
set rlim_fd_max=8192
set rlim_fd_cur=2048
根据应用程序的大小,可以适当地调整限制值。
重新引导系统。
如果系统的缺省编码不是 UTF-8,则在 Application Server 的输出中,多字节字符的显示可能不正确。
解决方法:在浏览器中打开 server.log 文件。
如果通过 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 4/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 地址。
单击“Save”。
从左侧的面板选择您的服务器实例。
单击“Apply Changes”。
单击“Stop”。
单击“Start”。
服务器将重新启动并实现您所做的更改。
如果在进行小更改并重新封装应用程序后试图多次部署样例,将显示以下错误消息。
已经部署 |
这个问题影响到大多数样例,因为这些样例都使用 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 属性中。
如果管理服务器从属于根用户,而服务器实例从属于非根用户,则在动态重新装入和调用应用程序的过程中可能会发生访问权限问题。
解决方法:在部署和重新部署模块或应用程序(具有或不具有预编译选项)之后,将以下目录的拥有者从根用户更改为非根用户,非根用户与实例的拥有者相同。
根据应用程序的类型,目录拥有权的更改应该递归应用到以下列表中的各个目录:
domain-root/server-instance /applications/j2ee-apps/application-name
domain-root/server-instance /applications/j2ee-modules/module-name
domain-root/server-instance /generated/ejb/j2ee-apps/application-name
domain-root/server-instance /generated/jsp/j2ee-apps/application-name
domain-root/server-instance /generated/jsp/j2ee-modules/module-name
成为超级用户。
根据实际情况,对每个目录键入以下命令。
# chown -R non-root-instance-owner directory-name |
如果 DNS 查找 IPv6 地址失败,则远程方法调用因特网 Inter-ORB 协议 (RMI-IIOP) 的客户机不能使用 IPv6 地址。
解决方法:应该在部署站点中设置域名服务 (DNS),以便查找 IPv6 地址。
如果用户在 Only show entries with 字段中键入多字节字符并查找事件日志,则显示查找结果时 Only show entries with 字段中的值将被破坏。这是由于消息格式从 UTF-16 转换到 UTF-8 造成的。
解决方法:无。
如果 Sun ONE Application Server 作为 Solaris 的一部分进行安装,Application Server 启动时会出现多个问题:
所有应用程序服务器和管理服务器实例都会在 Solaris 系统启动过程中自动启动。在许多环境中,用户并不希望所有实例都在 Solaris 系统启动过程中自动启动,因为启动每个定义的实例都会对系统的可用内存产生不利影响。
应用程序服务器实例和管理服务器实例自动启动时,每个实例的启动脚本都作为根用户执行。执行不属于非根用户的实例启动脚本时,非根用户可以通过修改实例级启动脚本来访问根用户。
在安装 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 系统启动过程中启动。由于系统启动和停机脚本是作为根用户执行的,因此每个应用程序服务器和管理服务器实例的启动脚本也作为根用户执行。实例级启动脚本的名称为 startserv,位于 instance-dir/bin/startserv 中。因为非根用户也可以拥有实例,所以非根用户可以修改 startserv 脚本,作为根用户执行命令。
如果实例使用具有特权的网络端口,则该实例的 startserv 脚本必须作为根用户执行。但是,在根用户最初启动实例后,实例的配置中通常会设置 run as user,强制使实例以指定的用户运行。
解决方法:根据您的环境,执行以下解决方法之一。
如果您的环境不要求所有应用程序服务器实例和管理服务器实例都作为根用户启动,则注释掉 /etc/init.d/appserv 脚本中的 asadmin start-appserv 和 asadmin stop-appserv 命令。
如果您的环境要求启动特定管理域或者启动一个或多个管理域中的特定实例,您可以修改或创建脚本来自动执行该过程。请注意,“特定管理域”包括每个域的管理服务器实例和所有应用程序服务器实例。
修改 /etc/init.d/appserv 脚本,启动所需的域或实例。
根据环境的需要,定义新的 /etc/rc*.d/ 脚本。
启动注意事项:要自动启动特定的应用程序服务器管理域或特定的应用程序服务器实例,在修改 Solaris 操作环境启动脚本时,请注意以下事项。
启动特定的域 – 如果要以根用户启动管理服务器实例和全部应用程序服务器实例,请按如下所示修改 /etc/rc*.d/ 脚本。
case "$1" in 'start') /usr/sbin/asadmin start-domain --domain production-domain ;; 'stop') /usr/sbin/asadmin stop-domain --domain production-domain ;;
以非根用户启动特定的应用程序服务器实例 – 使用带有 -c 选项的 su 命令修改 /etc/rc*.d/ 脚本。
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 Administrator's Guide》。
在安装过程中键入独特名称时,使用 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 命名服务时,自动装载的路径名必须唯一(不区分大小写)。
解决方法:无。
如果服务器在输出、备份、恢复或创建索引的过程中停止,则服务器会崩溃。
解决方法:在执行这些操作的过程中不要停止服务器。
如果试图通过安全套接字层 (SSL) 使用基于认证的鉴别来配置复制,则当出现以下任一情况时,复制将无法正常工作。
供应商的认证是自签名的。
供应商的认证只能作为 SSL 服务器认证,并且该服务器不能在 SSL 握手过程中担当客户机角色。
解决方法:无。