Sun Java System Instant Messaging 7.2 管理指南

第 19 章 监视 Instant Messaging 和故障排除

本章列出了在安装和部署 Instant Messaging 过程中可能出现的常见问题,并提供监视程序的概述。各个系统组件在操作时生成的日志信息对检查或解决问题非常有用。此外,可使用监视框架代理监视 Instant Messaging 进程的总体状况以防患于未然,并且评估使用级别以帮助您确定部署的规模以及防止停机时间。本章包含以下各节的信息:

有关管理服务器、多路复用器、监视程序、“日历”代理和客户机日志记录的详细信息以及默认的日志文件位置,参见第 13 章,管理 Instant Messaging 的日志记录

对 Instant Messenger 进行故障排除

Instant Messenger 为您提供了两种对客户机进行故障排除的方式。可收集有关客户机系统的运行时信息,并根据要求生成 Instant Messenger 日志文件。

获取 Instant Messenger 的运行时信息

可从 Instant Messenger 客户机获取客户机系统的有关信息。

Procedure从“关于”对话框获取 Instant Messenger 的运行时信息

  1. 在 Instant Messenger 中,选择“帮助”->“关于”。

    出现“关于”对话框。

  2. 选择“详细信息”选项卡。

    “详细信息”选项卡中包含有关客户机系统的信息,在解决问题时可使用这些信息。

获取 Instant Messenger 日志

根据需要生成客户机日志。默认情况下,不会生成日志。有关配置客户机日志记录的信息,参见管理 Instant Messenger 的日志记录

问题与解决方案

以下列出了一些问题及其可能的原因,以及有助于进行故障排除的信息:

无法从客户机连接到 Instant Messaging 重定向服务器

必须使用支持 XMPP 重定向的客户机来成功地部署重定向服务器。使用 Instant Messenger 2006Q1 或更新的版本,或者如果使用第三方客户机,请确保客户机支持 XMPP 重定向。

无法通过 XMPP/HTTP 网关 登录到 Instant Messenger

如果 XMPP/HTTP 网关服务于两个域且 im.jnlp 文件仅包含一个域名的参数,则不在所列出的域中的用户无法进行验证。例如,如果 im.jnlp 文件包含以下参数:


<argument>domain=mydomain.siroe.com</argument>

尝试从 mydomain 以外的域中登录的用户将接收到错误,并无法进行验证。要解决这一问题,需要配置 Instant Messenger 验证其他域。

Procedure配置 Instant Messenger 以从特定域进行验证

  1. 打开 im.jnlp 资源文件。

  2. 删除域参数条目。

    例如,删除:


    <argument>domain=mydomain.siroe.com</argument>
  3. 再次下载 Instant Messenger。

  4. 运行 Instant Messenger。

    显示“登录”页面。

  5. 单击“更多详细资料”。

    “登录”页面展开以显示客户机的连接设置。

  6. 在“服务器”文本框中,输入网关的 URL,并加上 ?to=domain

    例如,如果用户是 mydomain.siroe.com 的一部分,则将以下信息附加到 URL 上:


    ?to=mydomain.siroe.com
  7. 要测试配置,使用有效的用户名和密码登录。

使用 Sun JavaTM System Portal Server 7 2006Q1 或更新版本时消息未归档

如果设置了使用 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"

在执行 patchrmpatchadd 后 Instant Messenger 资源自定义信息丢失

(问题编号:6361796)patchrmpatchadd 进程重新部署了客户机资源。在此过程中,所有自定义文件都将被覆写。在执行这些操作之前,需要备份要保存的自定义文件。

无法向脱机用户转发邮件

默认情况下,Instant Messaging 使用 mail 属性来确定在收件人脱机时转发即时消息的电子邮件地址。如果您的目录不为电子邮件地址使用 mail 属性,则需要配置 Instant Messaging 来使用与目录相同的属性。

Procedure配置用于用户电子邮件地址的属性

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. iim_ldap.user.mailattr 参数的值更改为目录用来在用户条目中包含电子邮件地址的属性。

日历弹出提示不工作

如果日历弹出提示没有按预期出现,可按本小节所述方式对配置进行故障排除。有关设置日历弹出提示的说明,参见第 16 章,使用日历弹出提示

日历弹出提示配置中最常见的错误是在配置文件中错误输入了参数名称。这包括排印错误和错误拼写的参数名称。请确保您已经在 iim.confics.conf 中正确输入了所有配置参数和值。如果已经配置了弹出提示,再使用表 A–11 来将条目与所要求的参数进行比较。

如果 Instant Messaging 和 Calendar Server 配置文件是正确的,但弹出提示仍然没有按预期出现,请确保日历客户机和 Instant Messenger 都已正确配置。

Procedure为弹出提示对日历客户机和 Instant Messenger 配置进行故障排除

  1. 登录到日历客户机。

  2. 请确保时区设置正确。

    如果使用 Calendar Express,从菜单中选择“工具”->“选项”->“设置”。

  3. 预定电子邮件提示。

    如果使用 Calendar Express,在菜单中选择“工具”->“选项”->“设置”。

  4. 保存设置。

  5. 以同一用户登录到 Instant Messenger。

  6. 选择“工具”->“设置”。

    显示“设置”对话框。

  7. 选择“警报”选项卡。

  8. 选中“显示日历提醒”复选框并单击“确定”。

  9. 离开用户已登录的 Instant Messenger。

  10. 检查在日历客户机中配置的时间用户是否接收到电子邮件警报和弹出提示。

    如果尚未接收到电子邮件警报,则日历客户机未正确配置。有关故障排除的更多信息,请参阅日历客户机文档。

    如果收到了电子邮件警报,但没有收到日历弹出提示,并且确信已经正确配置了服务器和客户机,那么请检查 xmppd.log 以获得更多的信息。您可能需要将该日志配置为更详细的设置,例如 DEBUG。有关更改日志级别的说明,参见使用 iim.conf 参数设置 Instant Messaging 组件的日志级别

单点登录不工作

如果正在配合 Sun Java System Access Manager 使用 SSO,则 Access Manager 服务器和 Instant Messaging 服务器必须配置为使用相同的 Web 容器。

Instant Messenger 未加载或未启动

下列是可能引起此问题的原因:

获取必要信息的位置:

连接被拒绝或超时

下列是可能引起此问题的原因:

获取诊断信息的位置:

验证错误

下列是可能引起此问题的原因:

获取诊断信息的位置:

Instant Messenger 频道显示错误

下列是可能引起此问题的原因:

获取诊断信息的位置:

Instant Messaging 服务器和 Instant Messaging 频道日志。

Instant Messaging 内容未归档

下列是可能引起此问题的原因:

获取诊断信息的位置:

Instant Messaging 服务器和归档日志文件。

服务器到服务器通信无法启动

下列是可能引起此问题的原因:

获取诊断信息的位置:

两个服务器的 Instant Messaging 服务器日志文件。

严重的安装失败使服务器处于不相容状态

如果在安装或卸载 Instant Messaging 时发生严重错误,系统可能处于不相容状态。结果导致安装和卸载无法完成。在这种情况下,您必须手动删除所有 Instant Messaging 组件,然后才能尝试新的安装。清除过程包括删除软件包和注册表信息。

Procedure手动删除所有 Instant Messaging 组件

  1. 备份以后安装可能需要的所有信息。

    有关说明,参见备份 Instant Messaging 数据

  2. 手动编辑产品注册表信息。

    对于 Solaris 9,执行以下命令:


    prodreg(1)
    

    对于所有其他操作系统:

    1. 编辑 productregistry.xml 并从文件中删除所有 Instant Messaging XML 元素。

      默认情况下,productregistry XML 文件存储在以下位置:

      • Solaris:/var/sadm/install/productregistry

      • Linux:/var/tmp/productregistry

    2. 删除以下软件包或 RPM(如果仍然存在的话):

      • SUNWiim

      • SUNWiimc

      • SUNWiimd

      • SUNWiimid

      • SUNWiimin

      • SUNWiimjd

      • SUNWiimm

      • SUNWiimc-l10n

      • SUNWiimd-l10n

      • SUNWiimid-l10n

      • SUNWiimin-l10n

Instant Messaging 服务不显示在 Access Manager 控制台 (amconsole) 中

如果在 Sun Java System Application Server 部署中 Instant Messaging 使用 Access Manager 策略,则需要在完成 Instant Messaging 配置后重新启动 Application Server。如果不重新启动 Application Server,Instant Messaging 服务将不会显示在 Access Manager 控制台 (amconsole )。

对 Instant Messaging 和 LDAP 进行故障排除

在一给定部署中,可能发生以下 LDAP 问题。请相应更改 iim.conf 文件中的 LDAP 参数。

使用不允许匿名绑定的目录

默认情况下,Instant Messaging 服务器执行 LDAP 目录的匿名搜索。但是,各站点通常禁止在其目录中进行匿名搜索,这样任何随意进入的人员便无法执行搜索并检索全部信息。如果您站点的目录配置为阻止这样的匿名搜索,并且在安装后配置期间没有提供绑定证书,则需要使用可用来绑定和执行搜索的用户 ID 和密码来配置 Instant Messaging 服务器。

使用 iim_ldap.usergroupbinddniim_ldap.usergroupbindcred 参数配置所需的证书。

Procedure为 Instant Messaging 服务器配置绑定证书

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 指定要服务器用来绑定到目录的 DN 作为 iim_ldap.usergroupbinddn 的值。


    iim_ldap.usergroupbinddn=bind-DN
    
  3. 指定对应于绑定 DN 的密码作为 iim_ldap.usergroupbindcred 的值。


    iim_ldap.usergroupbindcred=password
    
  4. 保存并关闭文件。

使用 cn 以外的属性显示联系人名称

可自定义 Instant Messenger 显示联系人名称的方式。Instant Messenger 用于显示联系人名称的默认属性为 cn。联系人名称显示为First NameLast Name。例如,Frank SmithMary Jones 等。

使用 iim_ldap.userdisplayiim_ldap.groupdisplay 参数来指定用来显示联系人名称的属性。

Procedure更改用来显示联系人名称的属性

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 指定要用来显示用户名的属性,作为 iim_ldap.userdisplay 的值。


    iim_ldap.userdisplay=user-name-attribute
    
  3. 指定要用来显示组名的属性,作为 iim_ldap.groupdisplay 的值。


    iim_ldap.groupdisplay=group-name-attribute
    
  4. 保存并关闭文件。

使用通配符搜索目录

如果目录索引为允许使用通配符,并且要能够在搜索联系人名称时使用通配符,则需要将 Instant Messaging 服务器配置为允许通配符搜索。然而,除非用户 ID 索引为子字符串搜索,否则允许通配符可能会影响性能。有关允许在 Instant Messaging 中进行通配符搜索的说明,参见修改客户机用户搜索联系人的方式

为用户和组使用非标准对象类

如果目录使用非标准对象类来定义用户和组,则您需要更改相应的 iim_ldap.* 参数,以您的值替换 inetorgpersongroupofuniquenames

有关 LDAP 参数的列表,参见LDAP 和用户注册配置参数

Procedure更改用于指定用户和组的对象类

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 使用在目录中定义用户所用的对象类搜索和替换 inetorgperson

  3. 使用在目录中定义组所用的对象类搜索和替换 groupofuniquenames

  4. 保存并关闭文件。

为用户验证使用 uid 以外的属性

如果您的目录不为用户验证使用 uid 属性,则需要使用您的目录所用的属性来配置 Instant Messaging 服务器。默认情况下,Instant Messaging 使用 uid。您还需要更改值中包含 uid 的每个过滤器参数。

使用 iim_ldap.loginfilter 参数指定用于用户验证的属性。

Procedure更改用于用户验证的属性

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 在以下参数中使用要用于用户验证的属性搜索和替换 uid

    • iim_ldap.loginfilter

    • iim_ldap.usergroupbyidsearchfilter

  3. 保存并关闭文件。

为用户 ID 使用 uid 以外的属性

如果您的目录不为用户 ID 使用 uid 属性,则需要使用您的目录所用的属性来配置 Instant Messaging 服务器。默认情况下,Instant Messaging 使用 uid。此外,您应该为目录中的属性建立索引,以帮助抵消由搜索未索引属性引起的性能下降。

使用 iim_ldap.user.uidattr 参数指定用于用户 ID 的属性。

Procedure更改用于用户 ID 的属性

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 指定要用于用户 ID 的属性作为 iim_ldap.user.uidattr 的值。

    默认值为 uid

    例如,要使用 loginname 属性,将 iim_ldap.user.uidattr 属性作如下设置:

    iim_ldap.user.uidattr=loginname

  3. 保存并关闭文件。

  4. 将索引指令添加到 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 命令行实用程序检查监视程序的状态。

Procedure确定监视程序的状态

  1. 转至包含 imadmin 命令行实用程序的目录:


    cd im-svr-base/sbin
    
  2. 运行 imadmin status


    ./imadmin status watchdog
    

    imadmin 实用程序将返回监视程序的当前状态。

启用和禁用监视程序

默认情况下,在安装 Instant Messaging 时即启用监视程序。通过在 iim.conf 中设置配置参数,可禁用或启用监视程序。

Procedure启用或禁用监视程序

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 通过按以下方式设置 iim_wd.enable 参数,启用或禁用监视程序:

    启用监视程序:iim_wd.enable=true

    禁用监视程序:iim_wd.enable=false

  3. 保存并关闭 iim.conf 文件。

  4. 刷新 Instant Messaging 服务器配置:


    cd im-svr-base/sbin
    

    ./imadmin refresh
    

管理监视程序日志记录

管理监视程序日志记录的方法与管理服务器、多路复用器和“日历”代理日志记录的方法相同。监视程序日志文件保存为 im-db-base/log/iim_wd.log

有关为包括监视程序在内的所有 Instant Messaging 组件设置日志记录级别的更多信息,参见第 13 章,管理 Instant Messaging 的日志记录