本章列出了在安装和部署 Instant Messaging 过程中可能出现的常见问题,并提供监视程序的概述。各个系统组件在操作时生成的日志信息对检查或解决问题非常有用。此外,可使用监视框架代理监视 Instant Messaging 进程的总体状况以防患于未然,并且评估使用级别以帮助您确定部署的规模以及防止停机时间。本章包含以下各节的信息:
有关管理服务器、多路复用器、监视程序、“日历”代理和客户机日志记录的详细信息以及默认的日志文件位置,参见第 13 章,管理 Instant Messaging 的日志记录。
Instant Messenger 为您提供了两种对客户机进行故障排除的方式。可收集有关客户机系统的运行时信息,并根据要求生成 Instant Messenger 日志文件。
可从 Instant Messenger 客户机获取客户机系统的有关信息。
根据需要生成客户机日志。默认情况下,不会生成日志。有关配置客户机日志记录的信息,参见管理 Instant Messenger 的日志记录。
以下列出了一些问题及其可能的原因,以及有助于进行故障排除的信息:
必须使用支持 XMPP 重定向的客户机来成功地部署重定向服务器。使用 Instant Messenger 2006Q1 或更新的版本,或者如果使用第三方客户机,请确保客户机支持 XMPP 重定向。
如果 XMPP/HTTP 网关服务于两个域且 im.jnlp 文件仅包含一个域名的参数,则不在所列出的域中的用户无法进行验证。例如,如果 im.jnlp 文件包含以下参数:
<argument>domain=mydomain.siroe.com</argument> |
尝试从 mydomain 以外的域中登录的用户将接收到错误,并无法进行验证。要解决这一问题,需要配置 Instant Messenger 验证其他域。
打开 im.jnlp 资源文件。
删除域参数条目。
例如,删除:
<argument>domain=mydomain.siroe.com</argument> |
再次下载 Instant Messenger。
运行 Instant Messenger。
显示“登录”页面。
单击“更多详细资料”。
“登录”页面展开以显示客户机的连接设置。
在“服务器”文本框中,输入网关的 URL,并加上 ?to=domain。
例如,如果用户是 mydomain.siroe.com 的一部分,则将以下信息附加到 URL 上:
?to=mydomain.siroe.com |
要测试配置,使用有效的用户名和密码登录。
如果设置了使用 Sun Java System Portal Server 7 2006Q1 或更新版本的 "Portal Archive" 且消息未归档,那么确保在 iim.conf 中设置了 iim_arch.portal.search 参数:
iim_arch.portal.search="Portal Server Search URL" |
其中 Portal Server Search URL 是 Portal Server 的搜索 URL。例如:
iim_arch.portal.search="http://portal.siroe.com:8080/search1/search" |
(问题编号:6361796)patchrm 和 patchadd 进程重新部署了客户机资源。在此过程中,所有自定义文件都将被覆写。在执行这些操作之前,需要备份要保存的自定义文件。
默认情况下,Instant Messaging 使用 mail 属性来确定在收件人脱机时转发即时消息的电子邮件地址。如果您的目录不为电子邮件地址使用 mail 属性,则需要配置 Instant Messaging 来使用与目录相同的属性。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
将 iim_ldap.user.mailattr 参数的值更改为目录用来在用户条目中包含电子邮件地址的属性。
如果日历弹出提示没有按预期出现,可按本小节所述方式对配置进行故障排除。有关设置日历弹出提示的说明,参见第 16 章,使用日历弹出提示。
日历弹出提示配置中最常见的错误是在配置文件中错误输入了参数名称。这包括排印错误和错误拼写的参数名称。请确保您已经在 iim.conf 和 ics.conf 中正确输入了所有配置参数和值。如果已经配置了弹出提示,再使用表 A–11 来将条目与所要求的参数进行比较。
如果 Instant Messaging 和 Calendar Server 配置文件是正确的,但弹出提示仍然没有按预期出现,请确保日历客户机和 Instant Messenger 都已正确配置。
登录到日历客户机。
请确保时区设置正确。
如果使用 Calendar Express,从菜单中选择“工具”->“选项”->“设置”。
预定电子邮件提示。
如果使用 Calendar Express,在菜单中选择“工具”->“选项”->“设置”。
保存设置。
以同一用户登录到 Instant Messenger。
选择“工具”->“设置”。
显示“设置”对话框。
选择“警报”选项卡。
选中“显示日历提醒”复选框并单击“确定”。
离开用户已登录的 Instant Messenger。
检查在日历客户机中配置的时间用户是否接收到电子邮件警报和弹出提示。
如果尚未接收到电子邮件警报,则日历客户机未正确配置。有关故障排除的更多信息,请参阅日历客户机文档。
如果收到了电子邮件警报,但没有收到日历弹出提示,并且确信已经正确配置了服务器和客户机,那么请检查 xmppd.log 以获得更多的信息。您可能需要将该日志配置为更详细的设置,例如 DEBUG。有关更改日志级别的说明,参见使用 iim.conf 参数设置 Instant Messaging 组件的日志级别。
如果正在配合 Sun Java System Access Manager 使用 SSO,则 Access Manager 服务器和 Instant Messaging 服务器必须配置为使用相同的 Web 容器。
下列是可能引起此问题的原因:
applet 页面的错误代码基。
未在 Web 容器配置中定义 Application/x-java-jnlp-file MIME 类型。
插件 或 Java Web Start 没有安装或不起作用。
没有可用的兼容 Java 版本。
安全异常,无法检验 .jar 文件的签名。
获取必要信息的位置:
Java Web Start 或插件的错误(异常栈跟踪,启动页面)中。
浏览器的 applet 页源中。
下列是可能引起此问题的原因:
Instant Messaging 服务器或多路复用器未运行。
Applet 描述符文件(.jnlp 或 html)中使用了不正确的多路复用器主机或端口名称。
Instant Messenger 和多路复用器之间使用不同的 SSL 设置。
客户机和服务器版本不匹配。
获取诊断信息的位置:
Instant Messaging 服务器和多路复用器日志文件。
Instant Messenger 日志。
Instant Messenger“关于”对话框,“详细信息”选项卡。
下列是可能引起此问题的原因:
访问 LDAP 服务器时的错误,例如 LDAP 服务器未运行,或发生了置备错误(如模式违规)。
找不到最终用户。
证书无效。
无效的 Instant Messenger 会话。
获取诊断信息的位置:
Instant Messaging 服务器、身份验证和 LDAP 日志文件。
在使用 Sun Java System Access Manager 的部署中,请确保目录中的用户条目包含 iplanet-am-managed-person 对象类。Instant Messaging 服务器在 Access Manager 部署中搜索有效用户时使用该对象类。有关该对象类以及 Access Manager 如何使用它的更多信息,参阅 Sun Java System Access Manager 文档。
下列是可能引起此问题的原因:
服务器无法验证会话令牌。
Instant Messaging 频道未正确配置。例如,错误的 Instant Messaging 服务器主机、端口或两者都错误。
Plug-in 或 Java Web Start 没有安装或不起作用。
未找到最终用户和 Instant Messaging 服务器在执行 LDAP 查找时无法找到最终用户。
获取诊断信息的位置:
Instant Messaging 服务器和 Instant Messaging 频道日志。
下列是可能引起此问题的原因:
内容实际已归档,但最终用户没有足够的访问权限。
内容尚未提交到数据库中。
Instant Messaging 服务器中已禁用该归档提供者。
获取诊断信息的位置:
Instant Messaging 服务器和归档日志文件。
下列是可能引起此问题的原因:
服务器标识不正确。
SSL 设置不匹配。
获取诊断信息的位置:
两个服务器的 Instant Messaging 服务器日志文件。
如果在安装或卸载 Instant Messaging 时发生严重错误,系统可能处于不相容状态。结果导致安装和卸载无法完成。在这种情况下,您必须手动删除所有 Instant Messaging 组件,然后才能尝试新的安装。清除过程包括删除软件包和注册表信息。
备份以后安装可能需要的所有信息。
有关说明,参见备份 Instant Messaging 数据。
手动编辑产品注册表信息。
对于 Solaris 9,执行以下命令:
prodreg(1) |
对于所有其他操作系统:
编辑 productregistry.xml 并从文件中删除所有 Instant Messaging XML 元素。
默认情况下,productregistry XML 文件存储在以下位置:
Solaris:/var/sadm/install/productregistry
Linux:/var/tmp/productregistry
删除以下软件包或 RPM(如果仍然存在的话):
SUNWiim
SUNWiimc
SUNWiimd
SUNWiimid
SUNWiimin
SUNWiimjd
SUNWiimm
SUNWiimc-l10n
SUNWiimd-l10n
SUNWiimid-l10n
SUNWiimin-l10n
amconsole
) 中如果在 Sun Java System Application Server 部署中 Instant Messaging 使用 Access Manager 策略,则需要在完成 Instant Messaging 配置后重新启动 Application Server。如果不重新启动 Application Server,Instant Messaging 服务将不会显示在 Access Manager 控制台 (amconsole
)。
在一给定部署中,可能发生以下 LDAP 问题。请相应更改 iim.conf 文件中的 LDAP 参数。
默认情况下,Instant Messaging 服务器执行 LDAP 目录的匿名搜索。但是,各站点通常禁止在其目录中进行匿名搜索,这样任何随意进入的人员便无法执行搜索并检索全部信息。如果您站点的目录配置为阻止这样的匿名搜索,并且在安装后配置期间没有提供绑定证书,则需要使用可用来绑定和执行搜索的用户 ID 和密码来配置 Instant Messaging 服务器。
使用 iim_ldap.usergroupbinddn 和 iim_ldap.usergroupbindcred 参数配置所需的证书。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
指定要服务器用来绑定到目录的 DN 作为 iim_ldap.usergroupbinddn 的值。
iim_ldap.usergroupbinddn=bind-DN |
指定对应于绑定 DN 的密码作为 iim_ldap.usergroupbindcred 的值。
iim_ldap.usergroupbindcred=password |
保存并关闭文件。
可自定义 Instant Messenger 显示联系人名称的方式。Instant Messenger 用于显示联系人名称的默认属性为 cn。联系人名称显示为First Name、Last Name。例如,Frank Smith、Mary Jones 等。
使用 iim_ldap.userdisplay 和 iim_ldap.groupdisplay 参数来指定用来显示联系人名称的属性。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
指定要用来显示用户名的属性,作为 iim_ldap.userdisplay 的值。
iim_ldap.userdisplay=user-name-attribute |
指定要用来显示组名的属性,作为 iim_ldap.groupdisplay 的值。
iim_ldap.groupdisplay=group-name-attribute |
保存并关闭文件。
如果目录索引为允许使用通配符,并且要能够在搜索联系人名称时使用通配符,则需要将 Instant Messaging 服务器配置为允许通配符搜索。然而,除非用户 ID 索引为子字符串搜索,否则允许通配符可能会影响性能。有关允许在 Instant Messaging 中进行通配符搜索的说明,参见修改客户机用户搜索联系人的方式。
如果目录使用非标准对象类来定义用户和组,则您需要更改相应的 iim_ldap.* 参数,以您的值替换 inetorgperson 和 groupofuniquenames。
有关 LDAP 参数的列表,参见LDAP 和用户注册配置参数。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
使用在目录中定义用户所用的对象类搜索和替换 inetorgperson。
使用在目录中定义组所用的对象类搜索和替换 groupofuniquenames。
保存并关闭文件。
如果您的目录不为用户验证使用 uid 属性,则需要使用您的目录所用的属性来配置 Instant Messaging 服务器。默认情况下,Instant Messaging 使用 uid。您还需要更改值中包含 uid 的每个过滤器参数。
使用 iim_ldap.loginfilter 参数指定用于用户验证的属性。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
在以下参数中使用要用于用户验证的属性搜索和替换 uid。
iim_ldap.loginfilter
iim_ldap.usergroupbyidsearchfilter
保存并关闭文件。
如果您的目录不为用户 ID 使用 uid 属性,则需要使用您的目录所用的属性来配置 Instant Messaging 服务器。默认情况下,Instant Messaging 使用 uid。此外,您应该为目录中的属性建立索引,以帮助抵消由搜索未索引属性引起的性能下降。
使用 iim_ldap.user.uidattr 参数指定用于用户 ID 的属性。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
指定要用于用户 ID 的属性作为 iim_ldap.user.uidattr 的值。
默认值为 uid。
例如,要使用 loginname 属性,将 iim_ldap.user.uidattr 属性作如下设置:
iim_ldap.user.uidattr=loginname
保存并关闭文件。
将索引指令添加到 LDAP 的索引规则中:
index loginname eq
如果正收到没有在服务器池中的服务器之间共享在线状态的错误:
请确保节点都已正确配置以启用服务器到服务器的通信。有关配置参数及其相应值的列表,参见配置服务器池中的 Instant Messaging 服务器之间的服务器到服务器通信。
检查日志文件中的服务器到服务器会话建立的错误。
Instant Messaging 提供了一个代理,可帮助您监视活动。此代理被称作监视框架管理代理或 mfwk 代理。mfwk 代理包含在“通用代理容器”(Common Agent Container, CAC) 中。mfwk 代理随 Instant Messaging 一起安装。CAC 随 Java ES 一起提供,并使用 Java ES 安装程序安装。有关安装、启用和管理监视的更多信息,以及对所监视的 Instant Messaging 对象的概述,参见《Sun Java Enterprise System 5 Monitoring Guide》。
监视程序进程监视服务器和多路复用器组件,并在确定某个组件未运行的情况下,尝试重启该组件。
对于服务器,监视程序通过定期尝试与服务器进行直接连接或通过多路复用器连接(根据服务器的当前配置),从而确定服务器是否处于运行状态。监视程序设法轮询服务器的运行状态,并且在它无法确定状态的情况下,会尝试与服务器进行连接。如果两项操作均失败,监视程序会停下来,然后重新启动服务器。
在使用监视程序前,使用 imadmin status 命令检验该程序是否已启用并且在运行。默认情况下,在安装 Instant Messaging 时即启用和运行监视程序。
附录 C,Instant Messaging imadmin 工具参考提供了有关 imadmin 实用程序的更多信息。
使用 imadmin 命令行实用程序检查监视程序的状态。
转至包含 imadmin 命令行实用程序的目录:
cd im-svr-base/sbin |
运行 imadmin status:
./imadmin status watchdog |
imadmin 实用程序将返回监视程序的当前状态。
默认情况下,在安装 Instant Messaging 时即启用监视程序。通过在 iim.conf 中设置配置参数,可禁用或启用监视程序。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
通过按以下方式设置 iim_wd.enable 参数,启用或禁用监视程序:
启用监视程序:iim_wd.enable=true
禁用监视程序:iim_wd.enable=false
保存并关闭 iim.conf 文件。
刷新 Instant Messaging 服务器配置:
cd im-svr-base/sbin |
./imadmin refresh |
管理监视程序日志记录的方法与管理服务器、多路复用器和“日历”代理日志记录的方法相同。监视程序日志文件保存为 im-db-base/log/iim_wd.log。
有关为包括监视程序在内的所有 Instant Messaging 组件设置日志记录级别的更多信息,参见第 13 章,管理 Instant Messaging 的日志记录。