Sun Java System Instant Messaging 7.2 管理指南

第 2 部分 管理 Instant Messaging

第 3 章 Instant Messaging 配置文件和目录结构概述

本章提供有关管理 Instant Messaging 的配置文件的信息。在对部署配置进行更改之前,先要熟悉这些文件的位置。

本章在以下各节中说明用于存储 Instant Messaging 操作数据和配置信息的 Instant Messaging 服务器目录结构和属性文件:

Instant Messaging 服务器目录结构

Instant Messaging 服务器目录结构展示用于 Instant Messaging 服务器的特定于平台的目录结构。

表 3–1 Instant Messaging 服务器目录

说明 

Solaris 位置 

Linux 位置 

程序文件 

这些文件包括本机可执行文件、binlib 目录中的库文件、sbin 目录中的 shell 脚本、Java 类以及 lib 目录中的模板文件。

Instant Messaging 安装目录 (im-svr-base)

“安装目录”的默认值是: 

/opt/SUNWiim

Instant Messaging 安装目录 (im-svr-base)

“安装目录”的默认值是: 

/opt/sun/im

服务器配置文件 

这些文件位于“配置目录”,其中包括 iim.conf 文件和含有服务器范围内所有访问控制文件的子目录。

Instant Messaging 配置目录 (im-cfg-base)

“配置目录”的默认值是: 

/etc/opt/SUNWiim/default/config

为方便起见,安装程序会创建一个从 /etc/opt/SUNWiim/default/config/opt/SUNWiim/config 的符号链接。

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。有关更多信息,参见在单个 Instant Messaging 安装中创建多个实例

Instant Messaging 配置目录 (im-cfg-base)

“配置目录”的默认值是: 

/etc/opt/sun/im/default/config

为方便起见,安装程序会创建一个从 /etc/opt/sun/im/default/config/opt/sun/im/config 的符号链接。

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。参见在单个 Instant Messaging 安装中创建多个实例以获得更多信息。

运行时目录 

包含 Instant Messaging 服务器数据。这些文件包括服务器在运行时生成的文件的可配置目录。其中包括数据库目录中的最终用户数据。另外,其中还包含 log 目录中的服务器、多路复用器、“日历”代理及 XMPP 服务日志文件。

Instant Messaging 运行时目录 (im-runtime-base)

“运行时目录”的默认值是: 

/var/opt/SUNWiim/default

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。参见在单个 Instant Messaging 安装中创建多个实例以获得更多信息。

Instant Messaging 运行时目录 (im-runtime-base)

“运行时目录”的默认值是: 

/var/opt/sun/im/default

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。参见在单个 Instant Messaging 安装中创建多个实例以获得更多信息。

数据库 

如果您使用基于文件的属性存储,则数据库目录会包含最终用户信息,例如用户和新闻频道目录。如果您使用 LDAP 来存储用户数据,则不使用数据库目录。 

Instant Messaging 数据库目录 (im-db-base)

“数据库目录”的默认值是: 

/var/opt/SUNWiim/default/db

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。参见在单个 Instant Messaging 安装中创建多个实例以获得更多信息。

Instant Messaging 数据库目录 (im-db-base)

“数据库目录”的默认值是: 

/var/opt/sun/im/default/db

此外,如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。参见在单个 Instant Messaging 安装中创建多个实例以获得更多信息。

Instant Messenger 资源。 

这些文件包含 Instant Messenger 使用的 HTML 文档和 jar 文件。最顶层目录包含与语言环境无关的资源,以及含有本地化资源的语言环境特有目录。

Instant Messaging 资源目录 (im-svr-base/html)

“资源目录”的默认值是: 

/opt/SUNWiim/html

Instant Messaging 资源目录 (im-svr-base/html)

“资源目录”的默认值是: 

/opt/sun/im/html

Instant Messaging 服务器配置文件

Instant Messaging 将所有配置选项存储到 iim.conf 文件中。有关存储在此文件中的参数及其值的更多信息,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

Instant Messaging 数据

Instant Messaging 服务器将 Instant Messenger 使用的以下数据存储于数据库目录 (im-db-base),并通过 iim.conf 中的 iim.instancevardir 参数指示:

第 4 章 配置高可用性 Instant Messaging(仅 Solaris)

配置高可用性 (HA) Instant Messaging 可提供软件和硬件故障的监视和恢复功能。高可用性功能作为故障转移数据服务而不是可扩展服务来实施,仅 Solaris 支持。本章说明使用 Sun Cluster 软件的 Instant Messaging HA 配置。有关 Sun Cluster 提供的可扩展和故障转移数据服务的更多信息,参见 HA 相关文档

本章说明如何配置 Instant Messaging HA 服务,包括:

Instant Messaging HA 概述

将 Sun Cluster 与 Instant Messaging 一起使用以创建高可用性部署。本节中的以下各部分提供关于 HA 要求、本章示例使用的术语以及配置 HA 所需权限的信息:

在开始之前,您应该熟悉一般的 HA 概念,尤其是要熟悉 Sun Cluster 软件。有关更多信息,参见 HA 相关文档

Instant Messaging HA 配置软件要求

Instant Messaging HA 配置要求如表 4–1 中所示的软件。

表 4–1 Instant Messaging HA 配置的软件要求

软件和版本 

说明和修补程序 

Solaris 9 OS 

支持所有版本的 Solaris 9 OS。 

Solaris 9 OS 要求最低为 Sun Cluster 3.0 U3。 

Solaris 9 OS 包括 Solaris Logical Volume Manager (LVM)。

Solaris 10 OS 

支持所有版本的 Solaris 10 OS。 

Sun Cluster 3.1 

必须在群集中的所有节点上安装和配置 Sun Cluster 软件。 

要安装 Sun Cluster,则使用 Communications Suite 安装程序,遵循《Sun Java Communications Suite 5 Installation Guide》中的安装过程。

安装 Sun Cluster 软件后,必须配置群集。有关更多信息,参阅 Sun Cluster System Administration Guide for Solaris OS。有关相关文档,参见 HA 相关文档

Sun Cluster 修补程序

对于 Solaris 9 和 10,您可以从 SunSolve 在线下载修补程序。

Veritas Volume Manager (VxVM) 3.x 

要求最低为 3.5 版,加上所需的修补程序。 

Veritas File System (VxFS) 3.x 

要求最低为 3.5 版,加上所需的修补程序。 

HAStoragePlus 要求最低为修补程序 110435-08。 

Instant Messaging HA 配置权限要求

要安装和配置 Instant Messaging HA 配置,需登录为或成为超级用户 (root) 并指定控制台或窗口用于查看发送到 /dev/console 的消息。

Instant Messaging HA 配置术语和清单

表 4–2 说明本章的配置示例中所用的各种术语。此外,您在配置 Instant Messaging 的 HA 之前将需要收集信息。配置过程中将提示您此信息。将此清单与表 1–1 中的清单结合使用。

表 4–2 HA 配置清单

示例中的名称 

说明 

您的值 

/global/im

与群集文件系统或 HAStoragePlus 一起使用的全局文件系统挂载点。 

 

/local/im

用作共享磁盘挂载点的本地目录(如果您使用 HAStoragePlus)。 

 

im-logical-host

逻辑主机名 

 

im-logical-host-ip

逻辑主机 IP 数字地址 

 

im-node–1

节点 1 FQDN

 

im-node–2

节点 2 FQDN

 

im-resource-group

Instant Messaging 资源组 

 

im-resource-group-store

Instant Messaging 存储资源 

 

im-resource

Instant Messaging 资源 

 

im-runtime-base

(包括 im-runtime-base/dbim-runtime-base/logs

为运行时目录(包括数据库和日志子目录)的位置选择全局共享分区。例如: 

  • Instant Messaging 运行时目录 (im-runtime-base):

    /global/im/var/opt/SUNWiim/default

  • 数据库子目录 (im-db-base):

    / global/im/var/opt/SUNWiim/default/db

  • 日志子目录:

    /global/ im/var/opt/SUNWiim/default/logs

参见 Instant Messaging 服务器目录结构以获得关于运行时目录以及数据库和日志子目录的更多信息。

 

设置 Instant Messaging 的 HA

以下是安装和配置带两个节点的 Instant Messaging HA 配置所必需的高级步骤列表:

选择配置文件和二进制文件使用的本地或共享磁盘

开始之前,您需要确定以下哪个部署最适合您的需要。在两个环境中,共享组件均本地安装在群集中的每个节点上。此外,在两个环境中,运行时文件均安装在共享磁盘上。

准备群集中的每个节点

在群集中的每个节点上,您需要创建用来运行组件的 Instant Messaging 运行时用户和组。群集中所有节点上的 UID 和 GID 编号必须相同。

尽管 configure 实用程序可以为您创建这些名称,但您也可以在运行配置程序之前创建它们,作为本章中所述的每个节点准备工作的一部分。此外,根据使用本地还是共享磁盘,在特定的节点上您可能无法运行 configure,而必须手动创建运行时用户和组 ID。

运行时用户和组 ID 名称必须位于以下文件中:

参见创建 UNIX 系统用户和组以获得说明。参阅您的操作系统文档以获得关于用户和组的详细信息。

选择安装目录 (im-svr-base)

对于 Instant Messaging,Java Enterprise System 安装程序在 Solaris 上使用 /opt/SUNWiim 作为默认安装目录 (im-svr-base)。不过,如果配置文件和二进制文件使用共享磁盘,则必须指定一个全局(共享)安装目录。例如: /global/im/opt/SUNWiim.

如果使用本地磁盘,则可以将 Instant Messaging 安装到默认目录。不过,您应将 Instant Messaging 安装到节点中每台计算机上相同的目录中。

安装 Sun JavaTM System 产品和软件包

使用 Communications Suite 安装程序来安装产品和软件包。关于安装程序的更多信息,参阅《Sun Java Communications Suite 5 Installation Guide》

表 4–3 列出多节点群集配置所需的产品或软件包。

表 4–3 多节点 Instant Messaging HA 配置所需的产品和软件包

产品或软件包 

节点 1 

节点 n

Sun Cluster 软件 

需要 

需要 

Instant Messaging 7.2 Server 

需要 

需要(如果配置文件和二进制文件使用本地磁盘)。不需要(如果配置文件和二进制文件使用共享磁盘)。 

Sun Cluster Agent for Instant Messaging 

(SUNWiimsc)

需要 

需要(如果配置文件和二进制文件使用本地磁盘)。不需要(如果配置文件和二进制文件使用共享磁盘)。 

共享组件 

如果使用 HAStoragePlus,则必须安装 SUNWscu

需要 

需要 

配置 HA 环境

根据配置文件和二进制文件使用本地还是共享磁盘,您需要执行的步骤可能会有所不同。

如果配置文件和二进制文件使用本地磁盘,则要遵循以下两个过程中的步骤:

如果配置文件和二进制文件使用共享磁盘,则要遵循以下两个过程中的步骤:

Procedure为配置文件和二进制文件使用本地磁盘的节点 1 配置 HA

开始之前

填写表 1–1表 4–2 中的清单并准备好答案备用。

  1. 使用 Java Enterprise System 安装程序安装产品和软件包。

    参见选择安装目录 (im-svr-base) 以获得有关选择安装目录的特定说明。

    参见表 4–3 以获得 HA 所需产品和软件包的列表。参阅《Sun Java Communications Suite 5 Installation Guide》 以获得特定说明。

  2. 如果运行时文件使用 HAStoragePlus,则将共享磁盘挂载到本地目录,否则跳至步骤 3

    例如:

    1. 如果挂载点不存在,则创建该挂载点 (/local/ im/im-runtime-base/)。

      当配置过程步骤 4 中出现提示时,指定此目录 (/local/ im/im-runtime-base/) 作为“Instant Messaging 服务器运行时文件目录”。

    2. 使用 mount 命令在 /local/im/im-runtime-base 上挂载磁盘。

  3. 运行 configure 实用程序。

    参见第 1 章,安装后配置 Instant Messaging 以获得说明。

  4. 当提示输入“Instant Messaging 服务器运行时文件目录”时,输入以下之一:

    • 如果运行时文件使用 HAStoragePlus,则输入 /local/im/im-runtime-base/

    • 如果运行时文件使用群集文件系统,则输入 /global/im/im-runtime-base/ 。其中,/global/im 是群集文件系统中的全局目录。

  5. 当提示输入 Instant Messaging 主机名时,输入逻辑主机。

    选择接受该逻辑主机,即使 configure 实用程序无法连接到指定的主机。运行 configure 实用程序时,逻辑主机资源文件可能脱机。

  6. 不要选择在配置后或系统启动时启动 Instant Messaging。

    在 HA 配置中,Instant Messaging 服务还需要逻辑主机联机以便 Instant Messaging 正常工作。

  7. 如果运行时文件使用 HAStoragePlus,则卸载共享磁盘。

Procedure为配置文件和二进制文件使用本地磁盘的节点 n 配置 HA

开始之前

确保您已经如前面的步骤所述完成节点 1 上的 HA 配置(为配置文件和二进制文件使用本地磁盘的节点 1 配置 HA)。

准备好表 1–1表 4–2 中清单的答案备用。

  1. 使用 Java Enterprise System 安装程序安装产品和软件包。

    选择在节点 1 上安装 Instant Messaging 所用的路径用于群集中的每个后续节点。参见选择安装目录 (im-svr-base) 以获得特定说明。

    参见表 4–3 以获得 HA 所需产品和软件包的列表。参阅《Sun Java Communications Suite 5 Installation Guide》 以获得特定说明。

  2. 运行 configure 实用程序。

    参见第 1 章,安装后配置 Instant Messaging 以获得说明。

  3. 当提示输入“Instant Messaging 服务器运行时文件目录”时,输入为节点 1 提供的值。

  4. 当提示输入 Instant Messaging 主机名时,输入为节点 1 提供的逻辑主机。

    选择接受该逻辑主机,即使 configure 实用程序无法连接到指定的主机。运行 configure 实用程序时,逻辑主机资源文件可能脱机。

  5. 当提示输入用户和组时,输入为节点 1 提供的值。

  6. 不要选择在配置后或系统启动时启动 Instant Messaging。

    在 HA 配置中,Instant Messaging 服务还需要逻辑主机联机以便 Instant Messaging 正常工作。

Procedure为配置文件和二进制文件使用共享磁盘的节点 1 配置 HA

开始之前

填写表 1–1表 4–2 中的清单并准备好答案备用。

如果配置文件和二进制文件使用共享磁盘,则必须使用群集文件系统而不是 HAStoragePlus。

  1. 使用 Java Enterprise System 安装程序在群集文件系统的目录中安装产品和软件包。

    安装 Instant Messaging 时,您必须指定默认目录以外的目录。参见选择安装目录 (im-svr-base) 以获得特定说明。

    参见表 4–3 以获得 HA 所需产品和软件包的列表。参阅《Sun Java Communications Suite 5 Installation Guide》 以获得特定说明。

  2. 创建一个从 /etc/opt/SUNWiim 指向 /global/im/etc/opt/SUNWiim 的软链接。

  3. 从您安装 Instant Messaging 的全局目录 (/global/ im/im-svr-base/configure) 运行 configure 实用程序。

    参见第 1 章,安装后配置 Instant Messaging 以获得说明。

  4. 当提示输入“Instant Messaging 服务器运行时文件目录”时,输入 /global/ im/im-runtime-base 的值。

  5. 当提示输入 Instant Messaging 主机名时,输入逻辑主机。

    选择接受该逻辑主机,即使 configure 实用程序无法连接到指定的主机。运行 configure 实用程序时,逻辑主机资源文件可能脱机。

  6. 不要选择在配置后或系统启动时启动 Instant Messaging。

    在 HA 配置中,Instant Messaging 服务还需要逻辑主机联机以便 Instant Messaging 正常工作。

Procedure为配置文件和二进制文件使用共享磁盘的节点 n 配置 HA

开始之前

请确保您已经如前面的步骤所述完成节点 1 上的 HA 配置(为配置文件和二进制文件使用共享磁盘的节点 1 配置 HA)。

准备好表 1–1表 4–2 中清单的答案备用。

  1. 创建一个从 /etc/opt/SUNWiim 指向 /global/im/etc/opt/SUNWiim 的软链接。

  2. 创建一个资源类型注册 (RTR) 文件的软链接:


    ln -s /global/im/im-svr-base/cluster/SUNW.iim  \
    /usr/cluster/lib/rgm/rtreg/SUNW.iim
    

配置逻辑主机

启动 Instant Messaging 之前,您需要创建一个资源组、添加逻辑主机并使资源组联机。

Procedure使用逻辑主机配置资源组

  1. 创建一个名为 im-resource-group 的 Instant Messaging 故障转移资源组:


    # scrgadm -a -g im-resource-group -h im-node-2,im-node-1
    
  2. 将逻辑主机名 im-logical-host 添加到资源组。

    Instant Messaging 将侦听此主机名。


    # scrgadm -a -L -g im-resource-group -l im-logical-host
    
  3. 使资源组联机:


    # scswitch -Z -g im-resource-group
    

注册并激活存储资源

在使 Instant Messaging 数据服务联机之前,需要如本节中所述注册并激活存储资源。

Procedure注册并启用存储资源

  1. 注册存储资源。

    如果使用带全局文件系统 (GFS) 的 HAStoragePlus,则将挂载点设置为 FileSystemMountPoints 属性的值。例如:


    # scrgadm -a -j im-resource-group-store -g im-resource-group -t SUNW.HAStorage   \
    -x FileSystemMountPoints=/global/im -x AffinityOn=True
    

    否则,指定挂载点作为 ServicePaths 属性的值。例如:


    # scrgadm -a -j im-resource-group-store -g im-resource-group -t SUNW.HAStorage   \
    -x ServicePaths=/global/im -x AffinityOn=True
    
  2. 启用存储资源:


    # scswitch -e -j im-resource-group-store
    

注册资源类型并创建资源

启动 HA Instant Messaging 服务器或多路复用器之前,需要使用 Sun Cluster 注册资源类型 SUNWiimsc 并创建一个资源。

Procedure注册资源类型并创建资源

  1. 注册资源类型。


    # scrgadm -a -t SUNW.iim
    
  2. 创建资源。

    在一行中输入以下命令:


    # scrgadm -a -j im-resource -g im-resource-group -t SUNW.iim
    -x Confdir_list=/global/im/im-resource-group
    -y Resource_dependencies=im-resource-group-store
    
  3. 启用资源:


    # scswitch -e -j im-resource
    
  4. 启动 Instant Messaging 组件。

验证 Instant Messaging HA 配置

启动 Instant Messaging 后,您需要如本节中所述验证 HA 配置。

Procedure验证 Instant Messaging 的 HA 配置

  1. 检查所有必需的进程是否正在运行。

  2. 将服务切换到备用节点以确保高可用性。

    例如,如果服务在 im-node-1 上运行,则发出以下命令将服务切换到 im-node-2


    # scswitch -z -g im-resource-group -h im-node-2
    
  3. 检查所有必需的进程是否在 im-node-2 中启动。

Instant Messaging HA 配置故障排除

为帮助故障排除,错误消息会写入错误日志。该日志由 syslog 工具控制。关于使用日志记录工具的信息,参阅 HA 相关文档syslog.conf 的手册页。

停止、启动和重新启动 Instant Messaging HA 服务

要启动和停止 Instant Messaging HA 服务,使用 Sun Cluster scswitch 命令。

关于 Sun Cluster scswitch 命令的更多信息,参阅Sun Cluster Reference Manual for Solaris OS

Procedure启动 Instant Messaging HA 服务

    在命令行键入以下命令:


    # scswitch -e -j im-resource
    

Procedure停止 Instant Messaging HA 服务

    在命令行键入以下命令:


    # scswitch -n -j im-resource
    

Procedure重新启动 Instant Messaging HA 服务

    在命令行键入以下命令:


    # scswitch -R -j im-resource
    

停止、启动和重新启动带 Sun Cluster 的部署中的 Instant Messaging 组件

在尝试停止、启动或重新启动 Instant Messaging 组件之前,imadmin 命令会检查确保它未在群集节点上运行。如果 imadmin 确定它正在群集节点上运行,则会返回一个错误而不会执行该命令。使用 Sun Cluster 管理实用程序来停止、启动和重新启动带 Sun Cluster 的部署中的 Instant Messaging 组件。

管理 Instant Messaging 的 HA RTR 文件

资源类型注册 (RTR) 文件是 ASCII 格式的文本文件,它说明了在 Resource Group Manager (RGM) 控制下运行的高可用性资源类型。RTR 文件被 scrgadm 命令用作输入文件,用于将资源类型注册到群集配置中。当在 HA 配置过程中安装 SUNWiimsc 软件包时,会创建 Instant Messaging RTR 文件 SUNW.iim

本节中的以下各部分提供关于管理此文件的信息:

Instant Messaging RTR 文件参数

下表列出特定于 Instant Messaging 的 Instant Messaging RTR 文件 (SUNW.iim) 中的扩展属性。

表 4–4 SUNW.iim 扩展属性

扩展属性 

默认值 

说明 

Server_Root

如果您使用本地磁盘存储文件和二进制文件:im-svr-base

如果您使用共享目录存储文件和二进制文件:/global/im/im-svr-base

定义 Instant Messaging 服务器安装目录的绝对路径。默认情况下,在 Solaris 中,im-svr-base/opt/SUNWiim

Confdir_list

无 

定义 Instant Messaging 配置的绝对路径。此值在安装 SUNWiimsc 的过程中设置。

 

Monitor_retry_count

4

定义您想要进程监视工具 (PMF) 尝试重新启动故障监视的次数(如果它确定监视没有运行)。

Monitor_retry_interval

2(分钟)

PMF 尝试重新启动故障监视的时间间隔(分钟)。 

Probe_timeout

30(秒)

Sun Cluster 探测等待成功连接到 Instant Messaging 的时间(秒)。 

Failover_enabled

True

确定如果在配置的重试间隔 (retry_interval) 内超过了配置的重试次数 (retry_count),是否要故障转移到其他节点。 参见 《Sun Cluster Reference Manual for Solaris OS》 以获得有关重试和其他参数的更多信息。

自定义 Instant Messaging 的 RTR 文件

您可以修改 Instant Messaging RTR 文件 (SUNW.iim) 中几个扩展属性的值来配置 HA 环境。扩展属性是特定于资源类型的属性。类型相同每个资源都会继承这些属性。Instant Messaging 扩展属性如表 4–4 中所述。

参见《Sun Cluster Reference Manual for Solaris OS》中的 rt_regproperty_attributes,以获得有关资源类型注册文件内容的更多信息和有关自定义扩展属性值的说明。

删除 Instant Messaging 的 HA

为了从 HA 环境删除 Instant Messaging,您需要如本节所述删除 Instant Messaging 群集代理 SUNWiimsc

Procedure删除 Instant Messaging 的 HA

开始之前

当您如以下步骤所述删除 SUNWiimsc 软件包时,您对 RTR 文件 SUNW.iim 所做的任何自定义均会丢失。如果您想要在以后还原它们,则需要在删除 SUNWiimsc 软件包之前创建 SUNW.iim 的备份。

  1. 停止运行 Instant Messaging 数据服务:


    scswitch -F -g im-resource-group
    
  2. 禁用 Instant Messaging 资源组 (im-resource-group) 中的所有资源:


    # scswitch -n -j im-resource
    # scswitch -n -j im-logical-host
    # scswitch -n -j im-resource-group-store
    
  3. 从 Instant Messaging 资源组删除资源:


    # scrgadm -r -j im-resource
    # scrgadm -r -j im-logical-host
    # scrgadm -r -j im-resource-group-store
    
  4. 删除 Instant Messaging 资源组:


    # scrgadm -r -g im-resource-group
    
  5. 删除 Instant Messaging 资源类型:


    # scrgadm -r -t SUNW.iim
    
  6. 使用 Java Enterprise System 安装程序,或如下所述手动删除 SUNWiimsc 软件包:


    pkgrm SUNWiimsc
    

    当您删除软件包时,对 RTR 文件所做的任何自定义均会丢失。

  7. 如果配置文件和二进制文件使用共享目录,则删除 HA 配置过程中创建的任何软链接。

    在节点 1 上:


    rm /etc/opt/SUNWiim
    

    在所有其他节点上:


    rm /usr/cluster/lib/rgm/rtreg/SUNW.iim
    

HA 相关文档

第 5 章 为 Instant Messaging 启用单点登录 (SSO)

单点登录可让最终用户进行一次验证(即使用用户 ID 和密码登录)即可访问多个应用程序。Sun JavaTM System Access Manager 是用于 Sun Java System 服务器的 SSO 的官方网关。即,用户必须登录到 Access Manager 以访问其他配置了 SSO 的服务器。

例如,当正确配置时,用户可以在 Access Manager 登录屏幕中登录,并在另一个窗口访问 Instant Messenger 而无需重新登录。与此类似,如果正确配置了 Sun Java System Calendar Server,用户可以在 Access Manager 登录屏幕中登录,并在另一个窗口访问“日历”而无需再次登录。

其他 Communications Suite 服务器(如 Messaging Server)提供两种部署 SSO 的方法。第一种是通过 Access Manager,第二种是通过信任环技术。使用信任环是实现 SSO 的传统方法,Instant Messaging 并未采用此方法。尽管该方法提供了一些 Access Manager SSO 不具备的功能,但是未来的所有开发工作都将使用 Access Manager。本章的以下小节介绍了使用 Access Manager 为 Instant Messaging 启用 SSO 的信息:

SSO 限制和注意事项

配置 Instant Messaging 以支持基于 Access Manager 的 SSO 和策略

有两个 iim.conf 参数支持 Instant Messaging SSO。

表 5–1 Instant Messaging 单点登录参数

参数 

说明 

iim_server.usesso

确定 Instant Messaging 服务器在验证期间是否应依靠 SSO 提供者。Access Manager 会话 API 为 Instant Messaging 服务器提供了验证由客户机发送的会话 ID 的能力。

可能的值包括: 

0 – 不使用 SSO 提供者。

1 – 首先使用 SSO 提供者,如果 SSO 验证失败则默认使用 LDAP。

-1 – 仅使用 SSO 提供者,即使 SSO 验证失败也不尝试 LDAP 验证。

默认值:1,当运行 configure 实用程序时利用 Access Manager 进行 SSO 时。否则,默认值为 0

iim_server.ssoprovider

指定实现 com.sun.im.provider.SSOProvider 接口的类。如果 iim_server.usesso 不等于 0,且未设置该选项,则服务器使用在 Instant Messaging 中内部定义的默认基于 Access Manager 的 SSO 提供者。通常,您不会修改该参数。

默认值:无 

Procedure为 Instant Messaging 启用 SSO

  1. 请确保 Access Manager SDK 与 Instant Messaging 服务器安装在相同的主机上。

    有关更多信息,参见《Sun Java Communications Suite 5 Installation Guide》

  2. 确保将 Instant Messaging 服务指定给 Access Manager 控制台 (amconsole) 中的组织。

    如果您正在部署中使用其他的 Communications Suite 服务器产品(例如 Messaging Server),则可能需要手动为 Instant Messaging 配置基于 Access Manager 的服务。

    有关说明,参见在 Access Manager 中向子组织添加 Instant Messaging 和在线状态服务以支持单点登录和策略管理。

  3. 运行 configure 实用程序。

    有关说明,参见安装后配置 Instant Messaging

  4. 提示是否要将 Access Manager 用于 SSO 时,选择“是”。

  5. iim.policy.module 参数设置为 "identity":

    1. 打开 iim.conf 并查找 iim.policy.module 参数。

    2. 设置参数:


      iim.policy.module = "identity"
      
  6. 重新启动 Instant Messaging 服务器:

    imadmin start

对 Instant Messaging 的 SSO 进行故障排除

如果 SSO 出现问题,则首先要做的是检查 xmppd.log 服务器日志文件和客户机日志文件是否有错误。提高日志记录级别可能会有所帮助。新的日志记录级别仅在服务器重新启动后生效。

确保已将 Instant Messaging 服务指定给 Access Manager 控制台 (amconsole) 中的组织及其父组织。有关信息,参见在 Access Manager 中向子组织添加 Instant Messaging 和在线状态服务以支持单点登录和策略管理。

确保 iim.conf 中的 im_server.usesso 参数没有设置为 0。有关该参数的信息,参见表 A–4。如果该参数设置为 0,则完成为 Instant Messaging 启用 SSO中的步骤。

如果无法直接登录到 Instant Messaging 中,检查 xmppd.log 是否有类似以下之一的错误:


DEBUG xmppd [com.sun.im.service.util.Worker3] Service        \\
URL not found:session.com.iplanet.sso.SSOException: Service URL not found:

INFO xmppd [com.sun.im.service.util.Worker 3] [Identity]     \\
Failed to create SSO token for USERNAME

INFO xmppd [org.netbeans.lib.collab.util.Worker 1] [LDAP]     \\
pops does not have required objectclass for storing to ldap

如果存在任何这些错误,则使用以下步骤解决问题:

  1. 通过 amconsole 创建一个用户,并为该用户添加验证、配置、Instant Messaging 和在线服务。

  2. 尝试使用所创建的用户登录。

  3. 检查以确保通过 amconsole 正确填写了 amldapuser 的密码。

  4. 检查域(例如 o=siroe.com)是否有“验证配置服务实例”。

  5. 检查“验证配置服务实例”是否具有设置为 LDAP 或“成员资格”的验证模块。该值应显示 REQUIRED/SUFFICIENT 的状态。

    Instant Messaging 仅支持使用用户名和密码登录。如果您使用“验证链”,则需要禁用它来使用 Instant Messaging。

  6. 在 LDAP 或验证模块中,为 CORE 输入 amldapuser 密码。

  7. 在“核心验证模块配置”中的“组织验证配置”下拉菜单和“管理员验证配置”下拉菜单中选择新创建的 ldapService 验证配置服务实例。

  8. 再次登录。

第 6 章 使用服务器池比例缩放 Instant Messaging 部署

服务器池可支持单个域中上百万的用户。通过服务器池,可在同一服务器池中的若干台服务器之间共享一个域。此外,可使用负载平衡器(如重定向服务器)来协助管理池中的服务器利用情况。本章的以下各节介绍了有关服务器池的信息:

有关负载平衡和重定向服务器的信息,参见第 7 章,使用重定向服务器优化 Instant Messaging 服务器池。本章中的各程序均假定您已在服务器池中的主机上安装了 Instant Messaging。此外,需在服务器池的每个节点上安装 Access Manager SDK,并配置 SDK 以与单个远程 Access Manager 服务器进行通信。

Instant Messaging 服务器池的概述

通过创建服务器池,可在 Instant Messaging 部署中支持的用户数将不再受单个服务器系统容量的约束。相反,可使用多个系统的资源来支持单个域中的用户。此外,服务器池提供了冗余性,因此如果池中的一台服务器发生故障,受影响的客户机可在最小的不便程度情况下重新连接并通过池中的另一台服务器继续其会话。在服务器池中部署多台服务器会创建一个多节点部署

配置 Instant Messaging 服务器以通过服务器到服务器端口通信,并从同一 LDAP 目录获取用户数据,从而创建服务器池。配置服务器后,需配置客户机资源以指向负载平衡器或负载均衡器,而非单个节点的主机和端口。


注意 – 注意 –

虽然可使用共享文件系统代替 LDAP 目录存储用户属性,但这样会对性能和可管理性产生负面影响。因此,服务器池仅支持 LDAP 存储。


为确保服务器池中的所有服务器都有一致的数据,以下信息在池中的所有服务器间均相同:

以下信息则不相同:

此外,如果要通过部署中的访问控制文件执行策略,服务器池中的所有服务器的访问控制文件的内容都必须相同。有关更多信息,参见使用访问控制文件的管理策略

Instant Messaging 服务器池的可用性

如果服务器池中的一个节点发生故障,当前连接的所有客户机都会断开连接,并且会话和资源将变为不可用。如果使用负载平衡器设置部署,用户可立即重新连接并由负载平衡器引导至池中的另一节点。执行此类操作时,无需重新创建会议或新闻频道,因为池中的所有服务器间共享此类信息。此外,将用户引导至池中的另一节点后,可继续一对一聊天会话。

配置服务器池中的 Instant Messaging 服务器之间的服务器到服务器通信

本小节介绍如何启用服务器池中的两台 Instant Messaging 服务器或对等点之间的通信的方法。必须使用池中所有其他服务器的信息来配置池中的每个服务器。

表 6–1 列出 iim.conf 中的参数以及用于为服务器池中的两个示例 Instant Messaging 服务器(iimA.siroe.com iimB.siroe.com)建立通信的值。

有关配置参数的更多信息,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

表 6–1 服务器池中的两台 Instant Messaging 服务器的示例配置信息

iim.conf 中的参数

服务器 A 的值 

服务器 B 的值 

注释 

iim_server.serverid

iimA.siroe.com

iimB.siroe.com

在服务器池中,此 ID 用于支持回拨机制且不用于验证。此值在服务器池中应唯一。 

iim_server.password

secretforiimA

secret4iimB

 

iim_server.coservers

coserver1

coserver1

每台 Instant Messaging 服务器均通过其符号名进行标识。服务器的符号名会被添加到 iim.conf 文件内的 iim_server.coservers 参数中。此参数可包含多个以逗号分隔的值。

iim_server.domainname

siroe.com

siroe.com

服务器池中共享同一默认域的对等服务器。 

iim_server.coserver1.host

iimB.siroe.com:5269

iimA.siroe.com:5269

服务器池中对等服务器的主机名和端口号。 

iim_server.coserver1.serverid

iimB.siroe.com

iimA.siroe.com

服务器池中对等服务器的服务器 ID (iim_server.serverid)。

iim_server.coserver1.password

secret4iimB

secretforiimA

服务器池中对等服务器的密码 (iim_server.password)。

iim_server.coserver1.domain

siroe.com

siroe.com

服务器池中共享同一默认域的对等服务器。 

Procedure设置服务器池中两台 Instant Messaging 服务器之间的通信

  1. 收集表 6–1 中列出的信息。

  2. 转到服务器 iimA.siroe.com 上的 im-cfg-base

    有关查找 im-cfg-base 的说明,参见Instant Messaging 服务器目录结构

  3. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数


    注 –

    iim.conf 文件应归用户在安装过程中创建的 Instant Messaging 服务器帐户所有。如果 Instant Messaging 服务器帐户不能读取 iim.conf 文件,则服务器和多路复用器将无法读取配置。另外,您可能无法编辑 iim.conf 文件。


  4. 修改参数值以匹配您的部署。

    表 8–1 列出了需修改的参数。如果 iim.conf 中没有这些参数,则进行添加。以下示例显示了对应于需修改的服务器到服务器通信的 iimA.siroe.com 上的 iim.conf 部分。


    iim_server.serverid=iimA.siroe.com
    iim_server.password=secretforiimA
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimB.siroe.com:5269
    iim_server.coserver1.serverid=iimB.siroe.com
    iim_server.coserver1.password=secret4iimB
    iim_server.coserver1.domain=siroe.com
                   
  5. 对服务器 iimB.siroe.com 上的 iim.conf 文件执行第 2 步到第 4 步。

    以下示例显示了对应于需修改的服务器到服务器通信的 iimB.siroe.com 上的 iim.conf 部分。


    iim_server.serverid=iimB.siroe.com
    iim_server.password=secret4iimB
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimA.siroe.com:5269
    iim_server.coserver1.serverid=iimA.siroe.com
    iim_server.coserver1.password=secretforiimA
    iim_server.coserver1.domain=siroe.com
  6. 保存更改并关闭 iim.conf

  7. 刷新两台服务器上的配置。


    imadmin refresh server
    

向现有的 Instant Messaging 部署添加新节点

如果需向现有的服务器池添加其他节点,则需为服务器到服务器通信配置新的服务器,然后向池中的所有现有服务器添加新服务器的配置信息。此外,需向新节点添加池中所有服务器的配置信息。有关说明,参见设置服务器池中两台 Instant Messaging 服务器之间的通信

保证多节点部署的安全性

节点连接到远程服务器时,节点会提供一个回拨密钥。远程服务器随后连接回节点以验证回拨密钥。在多节点部署中,远程服务器可能会连接回池中的某个与最初发送回拨密钥的节点所不同的节点。远程服务器所连接的节点必须提供最初连接的节点所提供的同一回拨密钥。iim_server.dialback.key 配置参数定义了节点应使用哪一个回拨密钥。除非明确指定,否则回拨密钥的值均是随机生成的。有关说明,参见为服务器池中的 Instant Messaging 服务器手动定义回拨密钥

远程服务器使用 From 属性来连接回初始服务器。通常,将服务器的域名用作 Jabber 下的服务器到服务器通信中的 From 属性的值。但是,服务器池中的所有服务器均共享同一域名。因此,无法将域名用作查找池中的某台服务器的关键字。实际上,Instant Messaging 使用服务器或对等方的标识符 (serverid) 替代域名作为 From 属性的值。

Procedure为服务器池中的 Instant Messaging 服务器手动定义回拨密钥

除非明确指定,否则回拨密钥的值均是随机生成的。

  1. 打开 iim.conf

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

  2. 修改 iim_server.dialback.key 参数的值。

    例如:


    iim_server.dialback.key=mymultinodedialbackkey
    
  3. 保存更改并关闭 iim.conf

  4. 刷新两台服务器上的配置。


    imadmin refresh server
    

第 7 章 使用重定向服务器优化 Instant Messaging 服务器池

使用 Instant Messaging 附带的重定向服务来平衡服务器池(多节点部署)中的服务器之间的负载。性能直接受到单个部署中各服务器之间所需通信量的影响,因此使可能会共享在线状态信息和消息的两个用户尽可能在同一节点停止,可以改善性能。

本章的以下小节包含有关使用 Instant Messaging 重定向服务器的信息:

Instant Messaging 重定向概述

重定向服务器是一个专门配置的 Instant Messaging 服务器实例,用于执行各类重定向任务(例如将连接终点分配给 Instant Messaging 服务器)。将重定向服务器添加到部署中时,将可能会相互通信的用户分组到同一主机上,从而减少服务器之间的通信量。这样会减少部署中的服务器之间来回发送在线状态通知的数量。用户组由联系人列表的内容确定。联系人列表中的共享条目表示极可能会进行通信。

Instant Messaging 用户分区算法

Instant Messaging 确定部署中各用户之间的最佳划分方法,并创建用户的分组或 分区。Instant Messaging 所用的算法如下:

  1. 确定部署中的一个或多个用户集、用户网络及其连接。然后,重定向服务器会创建一个名为 user-to-network map 的表以将每个用户映射到用户网络。

  2. 对大于最大分区大小且存在弱连接的用户网络进行分区,从而使每个弱连接组件的最大大小不会大于所配置的分区大小。弱连接可由用户网络之间的极少数连接来确定,但是,对用户网络进行分区时,还可能会考虑其他参数(例如地理约束、每个用户网络的连接数量以及其他由管理员设置的约束)。

  3. 将各集分布到指定数量且大小类似的分区中。重定向服务器首先创建 network-to-partition 表作为此进程的一部分,并在最后创建 user-to-partition 表。这些表共同组成了重定向数据库。重定向数据库会将每个用户映射到一个分区 ID。可使用 rdadmin 命令行实用程序创建和管理此数据库。


示例 7–1 Instant Messaging 重定向事件序列

本示例说明实现成功的客户机重定向时要发生一系列事件。

  1. 管理员运行 rdadmin 生成和/或更新重定向数据库。

  2. 用户连接到重定向服务器并尝试进行验证。

  3. 重定向服务器确定用户的身份并在重定向数据库中查找对应的用户 ID。

  4. 如果重定向服务器在重定向数据库中没有找到用户 ID,它会联系下一个重定向服务器(由循环机制确定)来查找包含用户 ID 的重定向数据库。如果在重定向数据库中找到了用户 ID,重定向服务器会获取已分配给此用户的分区 ID。

  5. 重定向服务器根据已分配的分区 ID 确定用户将重定向至其中的节点。

  6. 重定向服务器向包含要重定向至其中的节点的客户机返回错误,并关闭与该客户机的连接。

    重定向服务器使用 see-other-host 流错误来将该信息返回给客户机。有关更多信息,参见RFC 3920

  7. 客户机解释错误,并与返回错误的节点建立连接。

  8. 重定向服务器持续不断地监视节点,并根据需要更新其 partition-to-host 表。


关于 Instant Messaging 重定向数据库

此数据库仅包含本地用户。重定向数据库中不包含网关、组件和远程用户。

Instant Messaging 重定向服务器概述

重定向服务器为一个 Instant Messaging 服务器实例,其唯一功能是重定向客户机连接。重定向服务器不会对最终用户执行任何其他服务。启动时,重定向服务器会载入服务器配置和分区文件,并创建以下数据结构:

重定向服务器使用两种数据结构来重定向客户机连接。有关重定向服务器如何使用此信息的说明,参见示例 7–1

Instant Messaging 重定向服务器和 StartTLS

在客户机与重定向服务器之间,可能会发生建立连接客户机的身份识别所需次数的 StartTLS 协商。客户机不需要验证证书,仅需要用户 ID。

将 Instant Messaging 服务器实例配置为重定向服务器

要将某个服务器实例指定为重定向服务器,需在 iim.conf 中为 iim_server.redirect.provider 参数提供一个值。一旦将实例指定为重定向服务器,则需通过在 iim.conf 中为其他重定向特定参数指定值来提供更多的配置信息。表 7–1 介绍了重定向配置参数。

表 7–1 iim.conf 中的重定向服务器配置参数

参数 

默认值 

说明 

iim_server.redirect.provider

无 

实现 com.sun.im.provider.Redirector 接口的重定向提供者名称或类别的列表(以逗号分隔)此参数的任意值都会将服务器实例定义为重定向服务器。支持的值包括 dbroundrobinregex 以及实现 com.sun.im.provider.Redirector 接口的类名称。

iim_server.redirect.to

无 

此重定向服务器可能会将客户机连接重定向至其中的节点的列表(以逗号分隔)。节点名称可为任意字母字符串。此列表可能是在 iim_server.redirect.to.nodename.host 中定义的主机的超集。

iim_server.redirect.to.nodename.host

无 

其中 nodename 是节点在 iim_server.redirect.to 中出现时的名称。对于重定向服务器要使用的 nodename,此属性为必需。

iim_server.redirect.to.nodename. usessl

False 

若为 true,则 nodename 会配置为使用传统 SSL。有关更多信息,参见在 Instant Messaging 中使用 TLS 和传统 SSL 的概述

iim_server.redirect.db.users

im-db-base/redirect.db

重定向数据库的名称和位置。 

iim_server.redirect.db.partitions

im-cfg-base/redirect.partitions

重定向分区文件的名称和位置。 

iim_server.redirect.db.partitionsize

5000 

分区中的最大用户数。 

iim_server.redirect.roundrobin. partitions

im-cfg-base/redirect.partitions

重定向分区文件的名称和位置。 

iim_server.redirect.pollfrequency

 

重定向服务器与 redirect.hosts 文件中所定义的主机进行连接的时间间隔。重定向服务器轮询这些主机,确定其是否处于联机状态以及能否接受客户机连接。

Procedure将 Instant Messaging 服务器配置为重定向服务器

开始之前

无法将早于 2006Q1 的 Instant Messenger 用于重定向服务器。如果使用第三方客户机,确保客户机支持 XMPP 重定向。

  1. 收集以上的表 7–1 中的信息。

  2. 打开 iim.conf

    有关查找和修改此文件的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

  3. 修改参数值以匹配您的部署。

    表 7–1 列出了需为其提供值的参数。如果 iim.conf 中没有这些参数,则进行添加。以下示例显示了 iimA.siroe.com 上对应于需修改的重定向服务器参数的 iim.conf 部分。


    iim_server.redirect.provider=db,roundrobin
    iim_server.redirect.to=imserverA,imserverB
    iim_server.redirect.to.imserverA.host=iimA.siroe.com
    iim_server.redirect.to.imserverB.host=iimB.siroe.com
    iim_server.redirect.to.imserverA.usessl=false
    iim_server.redirect.to.imserverB.usessl=false
  4. 保存更改并关闭 iim.conf

  5. 刷新重定向服务器的配置。


    imadmin refresh server
    
  6. 配置客户机以连接到重定向服务器而非多路复用器。

管理 Instant Messaging 重定向服务器

以下小节介绍了管理 Instant Messaging 重定向服务器的信息:

停止、启动、重新启动、刷新和检查 Instant Messaging 重定向服务器的状态

重定向服务器是仅配置来实现重定向的 Instant Messaging 服务器实例。使用与常规服务器实例相同的程序来停止、启动、重新启动、刷新和检查状态。例如,要启动重定向服务器,可键入:


imadmin start server

有关更多信息,参见停止、启动、刷新和检查 Instant Messaging 组件

Instant Messaging 重定向服务器日志记录

重定向服务器是仅配置来实现重定向的 Instant Messaging 服务器实例。使用用于常规服务器实例的相同说明和日志。有关更多信息,参见第 13 章,管理 Instant Messaging 的日志记录

为 Instant Messaging 重定向服务器设置分区大小

可通过设置 iim.conf 中的 iim_server.redirect.db.partitionsize 参数来指定最大分区大小。此参数的值等于每个分区所允许的用户数。默认值为 5000(个用户)。

为 Instant Messaging 重定向服务器指定分区列表

redirect.partitions 文件定义了特定分区中的用户要重定向至其中的主节点以及一系列回退节点(如果需要)。文件中的每个非空的非注释行都定义了一个分区的节点列表。列表中的每个节点都必须对应于一个定义为 iim.conf 中的 iim_server.redirect.to 参数值的节点。如果定义的分区数大于 redirect.partitions 文件中的行数,则循环处理未指定的分区。

默认情况下,redirect.partitions 文件存储于以下位置:


im-cfg-base/redirect.partitions

示例 7–2 Redirect.partitions 文件配置

redirect.partitions 文件示例假定以下情况:

在这种情况下,redirect.partitions 可能显示为如下方式:


imserverA, imserverB, imserverC
imserverB, imserverC

有两个非空的非注释行,即表示至少有两个用户分区。第一行定义分区 1 的重定向行为。重定向服务器将首先把分区 1 用户重定向至 imserverA。如果失败,重定向服务器会先尝试 imserverB,然后尝试 imserverC。如果没有可操作的节点,则重定向服务器会向客户机返回错误。


使用 rdadmin 实用程序创建和管理 Instant Messaging 重定向表

通常,根据需要使用 rdadmin 实用程序。无需频繁地重新生成表,因为登记表的更改通常不会太多。但是,应至少每两周运行一次此实用程序。

Procedure创建新的或更新现有的 Instant Messaging 重定向数据库

  1. 停止重定向服务器:


    imadmin stop redirect
    
  2. 如果要更新现有的重定向数据库,获取之前由 rdadmin 创建的分区编号:

    1. 在文本编辑器中打开 rdadmin.log

      rdadmin.log 文件存储于:


      im-runtime-base/log
    2. 查找 "NO OF PARTITIONS RUN" 的值。

  3. 确保至少拥有与分区数量相同的用户条目。

  4. 生成新的重定向数据库:

    例如:


    rdadmin generate

    有关 rdadmin 的其他选项,参见 rdadmin man 页面。

    rdadmin 实用程序创建新的数据库并将其保存为 im-db-base/redirect.new.db,也可指定另一名称。

  5. 在首次生成重定向数据库时,将数据库重命名为 redirect.db

  6. 如果要更新现有重定向数据库,使用新数据库代替旧的重定向数据库:

    例如:


    rm im-db-base/redirect.db
    cp im-db-base/redirect.new.db im-db-base/redirect.db
    
  7. 启动重定向服务器:


    imadmin start redirect
    

Instant Messaging 重定向服务器物理主机监视

重定向服务器监视其将客户机重定向至其中的主机的操作状态。如果重定向服务器确定其中一个主机失败,它会将分区重新分配给随后的主机,如 redirect.partitions 文件所定义。此外,重定向服务器还会检测主机何时返回联机状态,从而可将分区重定向回主机。重定向服务器通过以下两种方式监视主机:

Procedure设置 Instant Messaging 重定向服务器主机轮询频率

  1. 在重定向服务器上,打开 iim.conf

    有关查找和修改此文件的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

  2. 设置 iim_server.redirect.pollfrequency 参数。

    值以分钟为单位。例如:


    iim_server.redirect.pollfrequency=200
  3. 保存并关闭 iim.conf

  4. 刷新重定向服务器。


    imadmin refresh server
    

Instant Messaging 重定向服务器最佳实践和故障排除

以下各节介绍了使用 Instant Messaging 重定向服务器的最佳实践以及故障排除信息:

重定向服务器证书

在使用证书来实现安全验证的部署中,每次进行连接时,系统可能会提示客户机接受两个证书;一个证书用于重定向服务器,另一个证书用于客户机重定向至其中的主机。为避免此类情况,使用受信证书或在两个服务器上使用同一证书。

Instant Messaging 重定向服务器支持的客户机

对于个别不支持 RFC 3920 和 see-other-hosts 流错误 (XMPP 重定向) 的客户机,重定向不起作用。可将 Instant Messenger 2006Q1 或更高版本用于重定向服务器。如果使用第三方客户机,确保客户机支持 XMPP 重定向。

使用重定向服务器并在 LDAP 中存储用户属性

如果要使用 LDAP 来存储用户属性(即 iim.userprops.store =ldap),则需确保 iim_ldap.usergroupbinddniim_ldap.usergroupbindcred 的值拥有对目录的目录管理器级别访问权限。

确定重定向数据库的分区大小

分区大小应尽可能大,以避免出现需拆分用户网络的情况。然而,分区也不应大于最小系统可支持的大小。

将重定向服务器用作分区主机

重定向服务器也可托管一个或多个分区。可通过在 redirect.partitions 文件中列出重定向服务器实例或作为 iim_server.redirect.to 参数的值来实现此目的。但是,不应将多台重定向服务器用作分区主机,因为不同步的 redirect.partitions 文件可能会引起重定向循环。

第 8 章 多个 Instant Messaging 服务器的联合部署

在仅 LDAP 部署中, 您可联合多个 Instant Messaging 部署组成一个更大的 Instant Messaging 社区。来自不同服务器的最终用户可以基于访问权限彼此通信、使用其他域上的会议室,以及订阅远程服务器上的新闻频道。

在使用 Sun JavaTM System Access Manager 的部署中,单个 Instant Messaging 服务器可以托管多个域。可以将单个域指定为 Instant Messaging 服务器实例的默认域。由同一服务器托管的不同域中的最终用户可以彼此交互。当联合多个 Instant Messaging 部署时,默认域中的最终用户可以看到其他远程 Instant Messaging 服务器的默认域中的最终用户。

为了能在网络中的多个 Instant Messaging 服务器之间通信,需要配置您的服务器,以使网络中的其他 Instant Messaging 服务器可识别该服务器的身份。Instant Messaging 服务器用其域名、主机和端口号、服务器 ID 和密码标识其本身。

在仅 LDAP 部署中,两个服务器应位于不同的域中。

在服务器配置中,可以为每个 Instant Messaging 服务器指定一个符号名。此名称由字母和数字组成,例如 IMserver1


注意 – 注意 –

使用 TLS 确保服务器到服务器通信的安全。当在两个服务器之间交换数据时,需要使用这项技术防止第三方的安全侵害。当两个服务器之间的链接使用公共互联网时,就更加需要这种防范技术。遵循下面概述的说明来配置 Instant Messaging 服务器之间的 TLS。


配置 Instant Messaging 服务器之间的联合通信

本节说明如何启用两个 Instant Messaging 服务器之间的联合通信。

表 8–1 列出 iim.conf 中用于在两个服务器之间进行联合通信的参数,以及这些参数在两个示例 Instant Messaging 服务器(iim.company22.comiim.i-zed.com)中的值。

有关配置参数的更多信息,参见附录 A,iim.conf 中的 Instant Messaging 配置参数


注 –

每个 Instant Messaging 服务器由其符号名标识。服务器的符号名会添加到 iim.confiim_server.coservers 参数中。此参数有多个值,各个值之间以逗号相隔。


表 8–1 两个联合 Instant Messaging 服务器的配置信息示例

iim.conf 中的参数

服务器 iim.company22.com 的值

服务器 iim.i-zed.com 的值

iim_server.serverid

Iamcompany22

iami-zed

iim_server.password

secretforcompany22

secret4i-zed

iim_server.coservers

coserver1

coserver1

iim_server.domainname

iim.company22.com

iim.i-zed.com

iim_server.coserver1.host

iim.i-zed.com:5269

iim.company22.com:5269

iim_server.coserver1.serverid

Iami-zed

Iamcompany22

iim_server.coserver1.password

secret4i-zed

secretforcompany22

iim_server.coserver1.domain

i-zed.com

company22.com

Procedure在两个 Instant Messaging 服务器之间进行联合通信

  1. 收集表 8–1 中列出的信息。

  2. 转至服务器 iim.company22.com 上的 im-cfg-base

    有关查找 im-cfg-base 的说明,参见 Instant Messaging 服务器目录结构

  3. 打开 iim.conf

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


    注 –

    iim.conf 文件应归用户在安装过程中创建的 Instant Messaging 服务器帐户所有。如果 Instant Messaging 服务器帐户不能读取 iim.conf 文件,则服务器和多路复用器将无法读取配置。另外,您可能无法编辑 iim.conf


  4. 修改参数值以符合您的部署。

    表 8–1 列出您需要修改的参数。如果 iim.conf 中没有这些参数,则添加它们。以下示例显示 iim.company22.com 上的 iim.conf 部分,对应您需要修改的服务器到服务器通信:


    iim_server.serverid=Iamcompany22
    iim_server.password=secretforcompany22
    iim_server.domainname=iim.icompany22.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iim.i-zed.com:5269
    iim_server.coserver1.serverid=Iami-zed
    iim_server.coserver1.password=secret4i-zed
    iim_server.coserver1.domain=i-zed.com
                   
  5. 对于服务器 iim.i-zed.com 上的 iim.conf 文件,请执行步骤 2 到步骤 4。

    以下示例显示 iim.i-zed.com 上的 iim.conf 部分,对应您需要修改的服务器到服务器通信:


    iim_server.serverid=Iami-zed
    iim_server.password=secret4i-zed
    iim_server.domainname=iim.i-zed.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iim.company22.com:5269
    iim_server.coserver1.serverid=Iamcompany22
    iim_server.coserver1.password=secretforcompany22
    iim_server.coserver1.domain=company22.com
  6. 保存更改并关闭 iim.conf

  7. 刷新两台服务器上的配置。


    imadmin refresh server
    

第 9 章 管理 Instant Messaging 组件

本章说明如何管理 Instant Messaging 组件(服务器、多路复用器、“日历”代理、群集代理和监视程序)及执行其他管理任务,如更改配置参数和创建备份。

本章包含以下几节,分别介绍了 Instant Messaging 中的各种管理任务:

停止、启动、刷新和检查 Instant Messaging 组件

使用 imadmin 命令可以:

imadmin 命令行实用程序只能由超级用户或拥有运行 Instant Messaging 服务器和多路复用器的系统的管理权限的用户执行。此最终用户通常是用来运行服务器的那个身份,并在安装期间指定:

imadmin 命令行实用程序位于以下目录中:

im-svr-base/sbin

启动 Instant Messaging 服务器可使 Instant Messenger 与其进行连接。停止 Instant Messaging 服务器将终止所有连接,并断开与所有 Instant Messenger 客户机之间的连接。

启动 Instant Messaging 组件

可以一并启动所有组件,也可以分别启动单个组件。

start 选项使用 imadmin 命令可根据所启用的组件来启动 Instant Messaging Server、多路复用器、日历代理、群集代理、监视程序。

Procedure启动所有组件

    在命令行中键入如下内容:


    imadmin start
    

    如果服务器和多路复用器均已启用,则此命令将首先启动 Instant Messaging 服务器,然后启动多路复用器。

    如果启用了监视程序(默认设置),此命令将启动监视程序,然后监视程序将读取配置文件,并根据需要启动 Instant Messaging Server 和/或多路复用器。

Procedure启动单个组件

    如下所示在命令行中键入包含指定组件的参数的 imadmin start 命令:

    服务器:


    imadmin start server
    

    多路复用器:


    imadmin start multiplexor
    

    日历代理:


    imadmin start agent-calendar
    

    监视程序:


    imadmin start watchdog
    

停止 Instant Messaging 组件

可以一并停止所有组件,也可以分别停止单个组件。

stop 选项使用 imadmin 命令可根据所启用的组件来停止 Instant Messaging Server、多路复用器、日历代理、群集代理、监视程序。

Procedure停止所有组件

    在命令行中键入如下内容:


    imadmin stop
    

    如果监视程序正在运行,imadmin 将首先停止监视程序,然后停止服务器和/或多路复用器。

    此命令将停止服务器、多路复用器、日历代理、群集代理和监视程序,终止所有最终用户连接,并断开配置的所有入站和出站服务器连接。

Procedure停止单个组件

    如下所示在命令行中键入包含指定组件的参数的 imadmin stop 命令:

    服务器:


    imadmin stop server
    

    多路复用器:


    imadmin stop multiplexor
    

    日历代理:


    imadmin stop agent-calendar
    

    监视程序:


    imadmin stop watchdog
    

刷新组件配置

refresh 选项使用 imadmin 命令可停止和重新启动单个 Instant Messaging 组件并刷新该组件的配置。

可以一并刷新所有组件,也可以分别刷新单个组件。

无论何时在 iim.conf 文件中更改配置参数,都需要刷新配置。

Procedure刷新所有组件

    在命令行中键入如下内容:


    imadmin refresh
    

    此命令将停止服务器、多路复用器、日历代理、群集代理和监视程序,终止所有最终用户连接,并断开配置的所有入站和出站服务器连接。

    如果监视程序正在运行,imadmin 将首先停止监视程序,然后停止服务器和/或多路复用器。然后启动监视程序。该监视程序将读取配置文件,并根据需要启动 Instant Messaging 服务器和/或多路复用器。

Procedure刷新单个组件

    如下所示在命令行中键入包含指定组件的参数的 imadmin refresh 命令:

    服务器:


    imadmin refresh server
    

    多路复用器:


    imadmin refresh multiplexor
    

    日历代理:


    imadmin refresh agent-calendar
    

    群集代理:


    imadmin refresh monitor
    

    监视程序:


    imadmin refresh watchdog
    

检查 Instant Messaging 组件的状态

可以 status 选项使用 imadmin 命令一并检查所有组件的状态,或分别检查单个组件的状态。该命令会返回以下格式的结果:


Component  [status]

例如:


Server          [UP]
Multiplexor     [UP]
Agent:calendar  [DOWN]
Watchdog        [UP]

Procedure检查所有组件的状态

    在命令行中键入如下内容:


    imadmin status
    

    此命令将返回所有已启用组件的状态。

Procedure检查单个组件的状态

    如下所示在命令行中键入包含指定组件的参数的 imadmin status 命令:

    服务器:


    imadmin status server
    

    多路复用器:


    imadmin status multiplexor
    

    日历代理:


    imadmin status agent-calendar
    

    监视程序:


    imadmin status watchdog
    

更改 Instant Messaging 服务器和多路复用器配置参数

Instant Messaging 将配置参数存储在 iim.conf 文件中。有关配置参数的完整列表,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

要更改配置参数,请手动编辑 iim.conf 文件中的配置参数及其值,然后刷新 Instant Messaging 服务器配置。如果更改了多路复用器参数,只需刷新多路复用器,如下所示:


imadmin refresh multiplexor

有关配置参数及其值的完整列表,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

Procedure更改配置参数

  1. 转至 im-cfg-base 目录。

    有关查找 im-cfg-base 的说明,参见Instant Messaging 服务器目录结构

  2. 使用文本编辑器编辑 iim.conf

  3. 保存更改。

  4. 使用 imadmin 刷新配置。

    例如:


    imadmin refresh
    

    注 –

    如果更改了多路复用器的监听端口 (iim_mux.listenport) 和多路复用器主机,则相应更新 im.htmlim.jnlp 文件。如果该操作失败,则会使 Instant Messenger 无法连接到服务器。有关更多信息,参见第 15 章,管理 Instant Messenger


备份 Instant Messaging 数据

Instant Messaging 不附带任何故障恢复工具。请使用站点的备份系统定期备份配置和数据库目录。本部分的以下小节介绍备份 Instant Messaging 的相关信息:

备份信息

需要备份的 Instant Messaging 信息包括以下类型:

配置信息存储在配置目录 (im-cfg-base) 中。默认路径在 Instant Messaging 服务器目录结构中进行了描述。

Instant Messaging 数据存储在数据库目录 (im-db-base) 中。默认 im-db-base 也在 Instant Messaging 服务器目录结构中进行了描述。

如果 Instant Messenger 资源进行了自定义,则必须对其进行备份。安装期间提供了 Instant Messenger 资源的位置。

执行备份

虽然备份信息不经常更改,但 Instant Messaging 最终用户的数据却更改频繁。因此,为避免最终用户数据的丢失,应该定期备份 Instant Messaging 最终用户数据。备份需要在运行安装程序或卸载程序之前执行。

要备份最终用户数据和配置信息,不必停止 Instant Messaging 服务器,因为所有由服务器负责的磁盘提交会自动执行。

恢复备份信息

当出现磁盘故障并且所有最终用户数据和配置信息均丢失时,需要恢复最终用户数据和配置信息的备份。

Procedure从备份恢复最终用户数据

  1. 转至 im-runtime-base 目录。

    有关查找 im-runtime-base 的信息,参见Instant Messaging 服务器目录结构

  2. 停止 Instant Messaging 服务器:


    imadmin stop
    
  3. 将备份数据复制到 im-db-base 目录。

    确保保持备份数据的目录结构。

  4. 检验新恢复数据的权限和所有者。

    文件应由 Instant Messaging 系统用户所有。有关该用户的信息,参见创建 UNIX 系统用户和组。应如下设置权限:

    • 文件:600(表示仅限所有者的读和写权限)

    • 目录:700(表示仅限所有者的读、写和执行权限)

    有关更改权限和所有者的信息,参阅您的操作系统文档。

  5. 启动 Instant Messaging 服务器:

    imadmin start

第 10 章 使用 Instant Messaging XMPP/HTTP 网关

XMPP/HTTP 网关可让 Instant Messaging 访问不是基于 XMPP 的客户机,例如基于 HTML 的客户机,以及防火墙后的客户机(允许 HTTP 通信,但不允许 XMPP 通信)。网关代表 HTTP 客户机代理到 XMPP 服务器的 Instant Messaging 通信。

使用 Instant Messenger 资源文件将 XMPP/HTTP 网关部署为 Web 容器上的 webapp。

本章中的以下各节提供有关配置和维护 XMPP/HTTP 网关的信息:

Instant Messaging XMPP/HTTP 网关配置文件

XMPP/HTTP 网关使用以下文件进行配置:

配置 Instant Messaging XMPP/HTTP 网关

当您在安装后运行 configure 实用程序时,可以选择是否部署 XMPP/HTTP 网关。如果启用,则 configure 实用程序会为网关创建一个默认配置文件 (httpbind.conf)。您可以通过修改此文件中的值更改配置。有关 httpbind.conf 文件语法、文件位置以及此文件中配置参数列表的说明,参见附录 B,httpbind.conf 中的 Instant Messaging XMPP/HTTP 网关配置参数,或参阅本节中的说明。

此外,当您选择在初始配置过程中部署网关时,configure 实用程序会在 im-svr-base/work 目录中创建一个 .war 文件,然后在您指定的代码库目录中的 Web 或应用服务器上部署此文件。

您还可以通过修改 web.xml(使用 Web 容器上的客户机资源部署)中的值,来配置网关以使用非默认的配置文件。

在本节的说明中,假定网关配置文件为 httpbind.conf。如果您使用非默认配置文件,请以您的配置文件代替说明中的 httpbind.conf

每次更改 httpbind.conf 后,都需要重新启动 XMPP/HTTP 网关。

本节包含以下说明:

有关配置网关日志记录的说明,参见管理 XMPP/HTTP 网关的日志记录

Procedure启用或禁用 Instant Messaging XMPP/HTTP 网关

可通过运行 configure 实用程序,然后设置 iim.conf 中的参数来启用网关。可使用 Web 容器或应用服务器提供的工具稍后禁用网关。

  1. 启用网关:

    1. 运行 configure 实用程序。

    2. 当提示时选择部署网关。

      有关详细信息,参见第 1 章,安装后配置 Instant Messaging

    3. iim.conf 中,将 iim_agent.httpbind.enable 参数设为 true。

      例如:


      iim_agent.httpbind.enable=true
  2. 要禁用网关,请使用 Web 或应用服务器提供的工具禁用 webapp。

Procedure配置 XMPP/HTTP 网关处理的并发请求数

开始之前

请确保您熟悉 JEP 124 标准草案。有关详细信息,可从 http://www.jabber.org/jeps/jep-0124.html 获得。

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. httpbind.requests 参数设为单个客户机可向网关发送的最大并发请求数。

    默认值为 2。例如:


    httpbind.requests=2

    客户机可向网关发送的并发请求数。如果此参数的值小于客户机请求中 JEP 124 hold 属性的值,则此参数的值将被设为 hold+1。不要将此参数设为 1,因为这样会严重降低性能。有关 httpbind.hold 参数的详细信息,参见为 XMPP/HTTP 网关的客户机请求设置 JEP 124 hold 属性表 B–1

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure为 XMPP/HTTP 网关的客户机请求设置 JEP 124 hold 属性

开始之前

请确保您熟悉 JEP 124 标准草案。有关详细信息,可从 http://www.jabber.org/jeps/jep-0124.html 获得。

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. httpbind.hold 参数设为您想要网关允许客户机请求中 hold 属性的最大值。

    默认值为 5。例如:


    httpbind.hold=5

    如果客户机发送的 hold 值大于网关的 hold 值,则使用网关的 hold 值。

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure指定 XMPP/HTTP 网关允许的客户机非活动时间

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. httpbind.inactivity 参数设为您想要网关终止空闲连接所经过的时间(秒)。

    默认值为 180 秒。例如:


    httpbind.inactivity=180

    如果客户机在此时间段内没有轮询网关,则网关会终止该连接。

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure设置 XMPP/HTTP 网关的 内容类型 HTTP 头

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. 如果客户机在其初始请求中没有指定参数,则应该将 httpbind.content_type 参数设为您希望网关使用的内容类型。

    默认值为 text/xml; charset=utf-8。例如:


    httpbind.content_type=text/xml; charset=utf-8
  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure设置 XMPP/HTTP 网关的往返时间延迟

往返时间延迟是您想要允许在网关和客户机之间的往返时间超时之上增加的时间量(秒)。这有助于考虑到网络延迟。

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. 根据需要设置 httpbind.round_trip_delay 参数。

    将此值设置过高可能会降低性能。该值以秒为单位。默认值为 1 秒。例如:


    httpbind.round_trip_delay=1

    将此值设置过高可能会降低性能。更改此参数前请考虑您的一般网络延迟。

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure设置 XMPP/HTTP 网关将发送响应到客户机的默认时间

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. 根据需要设置 httpbind.wait_time 参数。

    保证客户机在您指定给此参数的等待时间内会收到来自 XMPP/HTTP 网关的响应。设置此参数时请考虑您的网络速度。不要将该值设置过低,以免 XMPP/HTTP 网关不能及时发送请求。

    该值以秒为单位。默认值为 120 秒。例如:


    httpbind.wait_time=120

    如果为客户机设置的值大于为网关设置的值,则会使用网关等待时间。

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure在 Instant Messaging 网关池中配置 XMPP/HTTP 网关

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. 将网关配置为带有 Instant Messaging 网关池部署的一部分:

    1. httpbind.pool.support 参数设为 true


      httpbind.pool.support=true
    2. httpbind.pool.nodeId 参数设为完整的网关 URL。

      该 URL 用作网关的 nodeId,此 nodeId 在服务器池内必须唯一。网关使用此 nodeId 来确定是否必须为收到的请求提供服务,或将请求转发到池中的其他网关。

  3. 要将网关配置为不在网关池中工作,请将 httpbind.pool.support 参数设置如下:


    httpbind.pool.support=false
  4. 保存并关闭 httpbind.conf

  5. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure为支持的 XMPP/HTTP 网关域配置键 ID 列表

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. httpbind.config 参数设为您想要网关使用的 ID 列表。

    对于每个域,您都需要为此参数指定一个单独的 ID。例如:


    httpbind.config=gwdomain-id
    

    其中,gwdomain-id 是您要使用的域标识符。

    例如:


    httpbind.config=siroe.com
  3. 对于您要指定的每个 gwdomain-id,请将以下参数添加到 httpbind.conf 文件中:


    gwdomain-id.domain=domain-name
    gwdomain-id.hosts=gateway-host
    gwdomain-id.componentjid=component-jid
    gwdomain-id.password=password
    

    其中:

    • gwdomain-id 是上一步骤中,在 httpbind.config 中指定的网关 ID。

    • domain-name 是标识的网关在其中运行的域。

    • gateway-host 是全限定域名 (FQDN) 以及支持此域的网关主机端口号列表,以逗号或空格分隔。

    • component-jid 是网关的组件 JID。

    • password 是标识的网关的密码。

    例如,如果 gwdomain-id 设为 siroe


    siroe.domain=siroe.com
    siroe.hosts=gateway.siroe.com:5222
    siroe.componentjid=http.gateway.siroe.com
    siroe.password=gatewaypassword

    关于这些关键参数的详细信息,参见httpbind.config 的网关域 ID 键参数

  4. 保存并关闭 httpbind.conf

  5. 使用 Web 或应用服务器提供的工具重新启动网关。

Procedure配置 Instant Messaging XMPP/HTTP 网关以使用非默认配置文件

  1. 在部署 Instant Messenger 资源文件的 Web 容器上,编辑 web.xml

    使用 Web 容器的工具编辑此文件。

  2. httpbind.config.file 参数的值更改为您想要网关使用的配置文件的位置。

使用 StartTLS 确保 XMPP/HTTP 网关和 Instant Messaging 服务器之间的通信安全

XMPP/HTTP 网关只支持使用 StartTLS 进行安全通信。如果多路复用器配置为使用传统的 SSL,则您需要配置网关,使其绕过多路复用器直接连接到服务器。如果 StartTLS 可用,则网关将始终尝试使用它进行通信。有关详细信息,参见第 12 章,使用 TLS 和传统 SSL 保证 Instant Messaging 的安全性

管理 XMPP/HTTP 网关的日志记录

您可以配置 XMPP/HTTP 网关的日志记录级别、完全启用或禁用日志记录以及更改网关日志文件或网关日志配置文件的位置,如以下各节所述:

有关 Instant Messaging 所支持的 log4j 格式的详细信息,参见Apache Logging Services 网站中的相关说明。

Procedure启用或禁用 XMPP/HTTP 网关的日志记录

您可以通过两种方式启用或禁用网关的日志记录:

在大多数情况下,您应该修改 httpbind_log4j.conf 文件本身中的配置,而保留将 httpbind.log4j.config 参数设为 httpbind_log4j.conf 文件的位置。以下过程说明如何修改 httpbind_log4j.conf 文件中的配置。

  1. 打开 httpbind_log4j.conf 文件。

    此文件的存储位置是您在 httpbind.conf 文件中指定作为 httpbind.log4j.config 参数的值。默认情况下,文件存储于默认 Instant Messaging 实例的以下目录中:


    im-cfg-base/httpbind_log4j.conf
  2. 要禁用网关的日志记录,请将 log4j.logger.gateway 参数设置如下:


    log4j.logger.gateway=OFF
    
  3. 要启用日志记录,请将 log4j.logger.gateway 参数设为所需的日志记录级别。

    例如:


    log4j.logger.gateway=ERROR
    

    有关您可以使用的有效日志记录级别列表,参见表 13–1

  4. 保存并关闭 httpbind_log4j.conf

Procedure更改 XMPP/HTTP 网关日志配置文件的位置

  1. 打开 httpbind.conf

    有关查找此文件的信息,参见httpbind.conf 文件位置

  2. httpbind.log4j.config 参数的值设为 XMPP/HTTP 网关日志配置文件的位置。

  3. 保存并关闭 httpbind.conf

  4. 使用 Web 或应用服务器提供的工具重新启动网关。

ProcedureLinux: 安装或升级后设置 XMPP/HTTP 网关日志文件的位置

在 Linux 中,安装和配置 XMPP/HTTP 网关后,您需要修改 httpbind_log4j.conf 中 XMPP/HTTP 网关默认日志文件的位置。

  1. 打开 httpbind_log4j.conf 文件。

    此文件的存储位置是您在 httpbind.conf 文件中指定作为 httpbind.log4j.config 参数的值。默认情况下,文件存储于默认 Instant Messaging 实例的以下目录中:


    im-cfg-base/httpbind_log4j.conf
  2. log4.appender.appender_ID.file 参数的值设为日志文件的存储位置。

Procedure更改 XMPP/HTTP 网关日志文件的位置

开始之前

确保您熟悉如 Apache Logging Services 网站中所述的 log4j 语法和一般的实现方法。

  1. 打开 httpbind_log4j.conf

    此文件的存储位置是您在 httpbind.conf 文件中指定作为 httpbind.log4j.config 参数的值。默认情况下,文件存储于默认 Instant Messaging 实例的以下目录中:


    im-cfg-base/httpbind_log4j.conf
  2. log4j.appender.appender-ID 参数的值设为您想要存储日志文件的位置。

  3. 保存并关闭 httpbind_log4j.conf

  4. 重新启动 Web 容器。

Procedure使用 XMPP/HTTP 网关的非默认日志文件位置

如果您选择使用非默认的日志文件位置,则您需要修改 httpbind_log4j.conf 中 XMPP/HTTP 网关默认日志文件的位置。

  1. 打开 httpbind_log4j.conf 文件。

    此文件的存储位置是您在 httpbind.conf 文件中指定作为 httpbind.log4j.config 参数的值。默认情况下,文件存储于默认 Instant Messaging 实例的以下目录中:


    im-cfg-base/httpbind_log4j.conf
  2. log4.appender.appender_ID.file 参数的值设为日志文件的存储位置。

Procedure设置 XMPP/HTTP 网关日志记录级别

开始之前

确保您熟悉如 Apache Logging Services 网站中所述的 log4j 语法和一般的实现。

  1. 打开 httpbind_log4j.conf

    此文件的存储位置是您在 httpbind.conf 文件中指定作为 httpbind.log4j.config 参数的值。默认情况下,文件存储于默认 Instant Messaging 实例的以下目录中:


    im-cfg-base/httpbind_log4j.conf
  2. log4j.logger.gateway 参数设为所需的日志记录级别。

    例如:


    log4j.logger.gateway=ERROR
    

    有关您可以使用的有效日志记录级别列表,参见表 13–1

XMPP/HTTP 网关 log4j 日志配置文件语法

有关 log4j 语法和一般实现的详细信息,参见Apache Logging Services 网站。网关日志配置文件语法如下。


log4j.logger.gateway=logging-level, Appender-ID
# DEFAULT TO RollingFileAppender
log4j.appender.Appender-ID=org.apache.log4j.RollingFileAppender
log4j.appender.Appender-ID.file=log-dir/httpbind.log
log4j.appender.Appender-ID.append=true|false
log4j.appender.Appender-ID.maxBackupIndex=7
log4j.appender.Appender-ID.maxFileSize=max-log-file-size
log4j.appender.Appender-ID.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender-ID.layout.ConversionPattern=log-entry-syntax

示例 10–1 XMPP/HTTP 网关日志配置文件 (httpbind_log4j.conf)


log4j.logger.gateway=ERROR, A1
# DEFAULT TO RollingFileAppender
log4j.appender.A1=org.apache.log4j.RollingFileAppender
# log4j.appender.A1.file=$(logdir)/gateway.log
log4j.appender.A1.file=/tmp/gatewaylog
log4j.appender.A1.append=true
log4j.appender.A1.maxBackupIndex=7
log4j.appender.A1.maxFileSize=5mb
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

第 11 章 管理 Instant Messaging 的 LDAP 访问配置

本章在以下各节中说明 Instant Messaging 如何使用 LDAP 进行带有和不带 Access Manager 的部署:

Instant Messaging 如何使用 LDAP 概述

Instant Messaging 的所有部署均需要目录服务器。在不带 Sun JavaTM System Access Manager 的部署中,Instant Messaging 服务器使用目录服务器来执行最终用户验证并搜索最终用户。

在带有 Sun Java System Portal Server 的部署中,Instant Messaging 服务器使用 Sun Java System Portal Server 所使用的目录。如果安装在 Access Manager 部署环境中,Instant Messaging 服务器会使用 Access Manager 所使用的目录来搜索最终用户,但不用于最终用户验证。在 Access Manager 部署中,Access Manager 执行该验证。

如果您使用 LDAP 目录来维护用户名称空间,则默认配置会对有关此目录使用的模式做出以下假设:

您可以通过编辑 iim.conf 文件更改这些默认设置。参见iim.conf 文件语法


注意 – 注意 –

某些用户属性可能包含保密信息。请确保设置您的目录访问控制以防止没有权限的用户进行未授权访问。参阅您的目录文档以获得更多信息。


匿名搜索目录

Instant Messaging 需要能够搜索目录才能正常工作。如果将目录配置为匿名用户可以搜索,则 Instant Messaging 就能够搜索目录。如果目录不能由匿名用户读取或搜索,则必须通过执行附加步骤,使用至少拥有此目录读取访问权限的用户 ID 的证书来配置 iim.conf。这些证书由下列各项组成:

Procedure使服务器可作为指定的最终用户执行目录搜索

  1. 确定 iim.conf 中以下参数的值:

    • iim_ldap.usergroupbinddn - 指定用来绑定至目录以进行搜索的识别名 (dn)。

    • iim_ldap.usergroupbindcred - 指定与识别名(dn) 一起使用的密码。

    例如:

    iim_ldap.usergroupbinddn="cn=iim server,o=i-zed.com"

    iim_ldap.usergroupbindcred=secret


    注 –

    您不必使用具有写入级别访问权限的管理员级证书,域树的读取权限已经足够。因此,如果有读取级别访问权限的 LDAP 用户,可使用其证书作为替代。这是一个更为安全的替代方法,因为它不会强制您散布管理员级的证书。


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

  2. 在带有 Sun Java System Access Manager 的部署中,如果匿名用户不能搜索目录:

    • iim_ldap.useidentityadmin 配置参数设置为 true

    • 您也可以删除或注释掉以下配置参数:

      • iim_ldap.usergroupbinddn

      • iim_ldap.usergroupbindcred

  3. 编辑 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

    如果 iim_ldap.usergroupbinddniim_ldap.usergroupbindcred 参数未出现在 iim.conf 中,您可以将其添加到文件内的任何位置。

配置 Instant Messaging 以使用 LDAP 动态组

在 Sun Java System Directory Server 和某些其他 LDAP 服务器中,动态组基于 DN 过滤最终用户并将它们包括在单个组中。动态组在 Directory Server 中由 groupOfUrls 对象类定义。

为使最终用户能够在搜索结果中查看动态组并将动态组添加到其联系人列表中,您需要将 groupOfUrls 对象包括在搜索结果中。

需要对 iim.conf 进行以下修改:

Procedure配置 Instant Messaging 以使用动态组

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

  2. 将以下三行添加到 iim.conf


    iim_ldap.usergroupbynamesearchfilter=(|(&(|
    (objectclass=groupofuniquenames)
    (objectclass=groupofurls)))
    (cn={0}))(&(objectclass=inetorgperson)
    (cn={0})))
    
    iim_ldap.groupbrowsefilter=(|
    (objectclass=groupofuniquenames)
    (objectclass=groupofurls))
    
    iim_ldap.groupclass=groupOfUniqueNames,groupOfURLs

    不要一行内包括换行。属性和对象类名称可以进行配置。默认情况下,memberOfUrls 属性被用作动态组的成员属性。如果您要使用 memberOfUrls 以外的属性名称,可将 iim_ldap.groupmemberurlattr 选项设置为您要使用的属性名称。

第 12 章 使用 TLS 和传统 SSL 保证 Instant Messaging 的安全性

Instant Messaging 支持通过 TLS(Transport Layer Security,传输层安全)和传统 SSL(Secure Sockets Layer,安全套接字层)实现安全通信。本章的以下各节提供了有关使用这些协议来设置 Instant Messaging 安全性的说明:

在 Instant Messaging 中使用 TLS 和传统 SSL 的概述

对于客户机到服务器和服务器到服务器的加密通信以及服务器间基于证书的验证,Instant Messaging 使用传输层安全 (Transport Layer Security, TLS) 1.0 协议的 startTLS 扩充。此外,对于 Instant Messenger 和多路复用器之间的加密通信,Instant Messaging 支持传统的 SSL 协议(版本 3.0)。在更高的版本中,将使用证书来验证客户机所连接的服务器的身份,但证书不会用于验证。

多路复用器与服务器之间的通信基于不安全的传输。将 TLS 用于客户机到服务器的通信时,多路复用器仅在客户机与服务器之间来回传送字节,并不会执行任何加密和解密操作。

TLS 与 SSL 完全兼容,并且包括所有必要的 SSL 功能。TLS 和 SSL 是 XMPP 和 HTTP 应用层下的协议层。


注意 – 注意 –

如果将多路复用器设置为仅使用传统 SSL,则 Instant Messenger 将仅使用 SSL 来连接到多路复用器,并且会忽略服务器返回的所有有关 TLS 可用性的信息。然而,如果选择将传统 SSL 用于多路复用器,应将所有 XMPP/HTTP 网关实例配置为直接与服务器而非多路复用器通信。网关不支持传统 SSL。基于传统 SSL 连接到多路复用器并随后请求 TLS 连接的第三方客户机则可执行此操作。

此外,多路复用器基于不安全的传输连接到服务器。如果要保证端对端(客户机通过多路复用器到服务器以及返回)通信的安全性,使用 TLS 代替传统 SSL。


要将 TLS 用于 Instant Messaging 服务器,必须使用 Java 1.5(最低版本)。

有关 XMPP 中的 TLS 和 StartTLS 的信息,参见 RFC 3920 Extensible Messaging and Presence Protocol: Core 中的 "Use of TLS"。有关证书、SSL 和 TLS 的概述,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Introduction to Certificates and SSL”。本小节中的各程序假定您要使用 Sun JavaTM System Application Server 来生成证书。如果要使用另一 Web 容器,需参阅该 Web 容器的相关文档,获取有关生成密钥库和证书的特定说明。

为 Instant Messaging 服务器设置 TLS

要为 Instant Messaging 服务器到服务器和客户机到服务器通信启用 TLS,需执行以下常规步骤:

  1. 使用 keytool 实用程序创建 Java 密钥库 (Java keystore, JKS) 和私钥。

    有关 keytool 实用程序的概述,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Tools for Managing Security”。有关使用 Sun Java System Application Server 生成 JKS 的说明,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Working with Certificates and SSL”

  2. 使用私钥生成 Instant Messaging 服务器的服务器证书。

    有关说明,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Generating a Certificate Using the keytool Utility”

  3. 获取由证书颁发机构 (Certificate Authority, CA) 签署的 Instant Messaging 服务器证书。

    有关说明,参见《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Signing a Digital Certificate Using the keytool Utility”。在适当的位置用 Instant Messaging 替换 Application Server。

  4. 重新启动 Instant Messaging 服务器。

    有关详细信息,参见启动 Instant Messaging 组件

  5. 获取 CA 的根证书。

    有关获取 CA 根证书的说明,请联系您的 CA。

  6. 将证书导入密钥库中。

    使用 keytool 实用程序将 CA 根证书和已签署的服务器证书导入密钥库中,如《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Using the keytool Utility”中所述。

  7. 通过在 iim.conf 中设置相应的参数来在服务器中激活 TLS。

    有关说明,参见在 Instant Messaging 服务器上激活 TLS

  8. 对于基于 TLS 的服务器到服务器通信,需对每台要基于 TLS 实现通信的服务器重复这些步骤。无需执行任何操作来配置 Instant Messenger 以使用 TLS。也无需针对 TLS 配置多路复用器,但是,如果打算使用 TLS,则不可将多路复用器设置为使用传统 SSL。

  9. 如果要在部署中使用 XMPP/HTTP 网关,则将网关配置为直接与 Instant Messaging 服务器而非多路复用器通信。

如果您正使用 Sun Java System Application Server,《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的“Working with Certificates and SSL”中有步骤 1 至 5 的说明。在 Instant Messaging 服务器上激活 TLS中描述了步骤 6。

在 Instant Messaging 服务器上激活 TLS

在服务器上激活 TLS 前,必须创建一个 JKS,获取和安装一个已签署的服务器证书,并信任 CA 的证书,如为 Instant Messaging 服务器设置 TLS中所述。要将 TLS 用于服务器到服务器和/或客户机到服务器的通信,在服务器上激活 TLS。

表 12–1 列出了 iim.conf 中用来在 Instant Messaging 服务器中启用 TLS 的参数。还包含这些参数的说明和默认值。

表 12–1 Instant Messaging 服务器 TLS 配置参数

参数 

默认值 

说明 

iim_server.sslkeystore

无 

包含服务器的 Java 密钥库 (Java keystore, JKS) 的相对路径和文件名。例如:


/im-cfg-base/server-keystore.jks

iim_server.keystorepasswordfile

sslpassword.conf

包含含有密钥库密码的文件的相对路径和名称。此文件包含下列行: 

Internal (Software) Token:password

其中 password 是保护密钥库的密码。

iim_server.requiressl

false

若为 true,则在建立初始流会话后,服务器将终止所有不请求 TLS 连接的连接。

iim_server.trust_all_cert

false

如果该值为 true,则服务器会信任所有证书(包括过期和自签署的证书),并且还会将证书信息添加到日志文件中。如果为 false,服务器将不会记录证书信息,并仅信任由 CA 签署的有效证书。

Procedure在 Instant Messaging 服务器中激活 TLS 通信

使用此程序配置 Instant Messaging 服务器以按照以下方式基于 TLS 实现安全通信:

开始之前

确保已创建 JKS,获取和安装了服务器证书,并将服务器配置为信任 CA 的证书,如为 Instant Messaging 服务器设置 TLS 中所述。

对于服务器到服务器的 TLS 通信,必须在要配置来使用 TLS 的每台服务器上完成此程序。

  1. iim.conf 中的以下参数添加值。

    如果参数尚未出现在 iim.conf 中,请进行添加。


    iim_server.sslkeystore=server-keystore.jks
    iim_server.keystorepasswordfile=sslpassword.conf
    

    服务器将使用其能够基于 TLS 实现通信的信息来回应任意客户机或另一 Instant Messaging 服务器的连接请求。然后提出请求的客户机或服务器将选择是否建立基于 TLS 的安全连接。

  2. 如果希望服务器将 TLS 用于来自所有客户机、远程和对等服务器的连接,在 iim.conf 中添加以下参数:


    iim_server.requiressl=true

    如果将此参数设置为 true,服务器会终止与不支持 TLS 的客户机或远程及对等服务器之间的连接。使用此参数来请求基于 TLS 的安全客户机到服务器通信。

    有关服务器到服务器通信的更多信息,参见第 8 章,多个 Instant Messaging 服务器的联合部署

  3. 如果要将 TLS 用于与特定远程或对等服务器之间的通信,将以下参数添加到 iim.conf


    iim_server.coserver1.requiressl=true

    为需要 TLS 的每个协同服务器设置此参数。

    如果将 iim_server.requiressl 设置为 true,服务器会要求与其通信的所有服务器均采用 TLS 连接。在这种情况下,无需为特定的协同服务器设置此参数。

  4. (可选的)如果希望服务器信任接收到的所有证书,并将证书信息添加到日志文件,将以下参数添加到 iim.conf


    iim_server.trust_all_cert=true

    注意 – 注意 –

    可能需要在上线前使用此功能来测试部署。然而,通常不应对已部署的系统执行此操作,因为这样会引起严重的安全风险。如果此值为 true,服务器会信任所有证书(包括过期和自签署的证书),并且还会将证书信息添加到日志文件中。如果为 false,服务器将不会记录证书信息,并仅信任由 CA 签署的有效证书。


  5. 使用 imadmin 刷新服务器配置。


    imadmin refresh server
    
  6. 验证 TLS 是否正常工作。

    可通过多种方式完成此操作,如通过执行调用 Instant Messenger 的安全版本中的步骤。


示例 12–1 iim.conf 中的 TLS 配置

以下是包含服务器到服务器和客户机到服务器的通信所需 TLS 配置的 iim.conf 文件的示例部分。本示例中参数的值可能与您的部署有所不同。


! Server to server communication port.
iim_server.port = "5269"
! Should the server listen on the server to server
! communication port
iim_server.useport = "True”
iim_server.coservers=coserver1
iim_server.coserver1.serverid=Iamcompany22
iim_server.coserver1.password=secretforcompany22
iim_server.coserver1.host=iim.i-zed.com:5269
iim_server.serverid=Iami-zed
iim_server.password=secret4i-zed
iim_server.trust_all_cert=true
iim_server.sslkeystore=/var/im/server_keystore.jks
iim_server.keystorepasswordfile=/var/im/sslpassword.conf

为多路复用器和 Instant Messenger 设置传统 SSL

如果要使用不支持 TLS 的 Instant Messaging 客户机,仍可使用 SSL 代替 TLS 实现客户机到多路复用器的通信。如果将多路复用器配置为使用 SSL,则无法将 TLS 用于客户机到服务器的通信。多路复用器与服务器之间的所有通信都会以明文格式在不安全的传输中进行。

如果在多路复用器上建立传统 SSL,并且要使用 XMPP/HTTP 网关,则必须配置网关以直接与服务器而非多路复用器通信。网关不支持传统 SSL。

在多路复用器和 Instant Messenger 之间启用 SSL 需执行以下步骤:

  1. 向 CA 请求用于 Instant Messaging 多路复用器的 SSL 证书

  2. 安装证书

  3. 在多路复用器和 Instant Messenger 之间启用传统 SSL

  4. 在 Instant Messaging 服务器上激活 TLS

  5. 调用 Instant Messenger 的安全版本

向 CA 请求用于 Instant Messaging 多路复用器的 SSL 证书

要在多路复用器中启用 SSL,需请求一个证书。

Procedure请求用于 Instant Messaging 多路复用器的证书

本小节假定您要将 Sun Java System Web Server 或 Sun Java System Application Server 用作 Web 容器来请求证书。

多路复用器使用 NSS 来实现证书管理,因此可使用 NSS 实用程序来创建、管理和使用证书以及证书数据库。

  1. 在 Web 浏览器中,键入以下 URL 来启动 Web 容器的管理服务器:


    http://hostname.domain-name:administration-port
    

    出现一个窗口,提示您输入用户名和密码。

  2. 键入安装 Web Server 和 Application Server 期间指定的管理用户名和密码。

    出现“管理服务器”页面。

  3. 创建一个单独的 Web Server 或 Application Server 实例。

    有关安装多个 Application Server 实例的更多信息,参见《Sun Java System Application Server Enterprise Edition 8.2 Installation Guide》。有关安装多个 Web Server 实例的信息,参见《Sun Java Communications Suite 5 Installation Guide》

  4. 创建信任数据库以存储公钥和私钥,被称为密钥对文件。

    密钥对文件用于 SSL 加密。

    有关创建信任数据库的信息,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的第 9  章 “Configuring Security”(适用于 Application Server)和《Sun Java System Web Server 7.0 管理员指南》中的《Sun Java System Web Server 7.0 Administrator’s Guide》中的第 6  章 “Certificates and Keys”(适用于 Web Server)。

  5. 从 CA 处请求证书。

    有关请求证书的更多信息,参见《Sun Java System Application Server Enterprise Edition 8.2 管理指南》中的《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》中的第 9  章 “Configuring Security”(适用于 Application Server)和《Sun Java System Web Server 7.0 管理员指南》中的《Sun Java System Web Server 7.0 Administrator’s Guide》中的第 6  章 “Certificates and Keys”(适用于 Web Server)。

安装证书

从证书颁发机构处接收到已签署的服务器证书后,需安装证书并创建数据库以实现安全通信。

Procedure为 Instant Messaging 多路复用器安装证书

  1. 在 Web 浏览器中,键入以下 URL 启动管理服务器:


    http://hostname.domain-name:administration-port
    

    出现一个窗口,提示您输入用户名和密码。

  2. 键入安装 Web Server 或 Application Server 期间指定的管理用户名和密码。

    出现“管理服务器”页面。

  3. 安装服务器证书。

    有关安装证书的更多信息,参见http://docs.sun.com 上的 Web Server 或 Application Server 产品文档

  4. 转至 Web Server 或 Application Server 的 /alias 目录。

  5. 将数据库文件从 /alias 目录复制到 Instant Messaging 服务器的 im-cfg-base 目录。

    例如,在 Solaris 中:


    cp https-serverid-hostname-cert8.db /etc/opt/SUNWiim/default/config/cert8.db
    

    cp https-serverid-hostname-key3.db /etc/opt/SUNWiim/default/config/key3.db
    

    cp secmod.db /etc/opt/SUNWiim/default/config/secmod.db
    

    在 Linux 中:


    cp https-serverid-hostname-cert8.db /etc/opt/sun/im/default/config/cert8.db
    

    cp https-serverid-hostname-key3.db /etc/opt/sun/im/default/config/key3.db
    

    cp secmod.db /etc/opt/sun/im/default/config/secmod.db
    

    注 –

    需允许多路复用器所使用的系统用户对 cert7.db key3.dbsecmod.db 文件拥有读取权限。此外,如果创建了多个 Instant Messaging 实例,则 /default 目录的名称将有所不同,具体取决于实例。


    有关 im-cfg-base 的默认位置,参见表 3–1

  6. 转至多路复用器主机上的 im-cfg-base

    有关查找 im-cfg-base 的信息,参见Instant Messaging 服务器目录结构

  7. 使用所选的文本编辑器创建名为 sslpassword.conf 的文件。

  8. sslpassword.conf 中输入以下行:


    Internal (Software) Token:password
    

    其中 password 为创建信任数据库时指定的密码。

  9. 保存并关闭 sslpassword.conf

  10. 确保所有 Instant Messenger 最终用户都具有 sslpassword.conf 的拥有权和读取权限。

  11. 重新启动多路复用器。

  12. 验证 SSL 是否正常工作。

    可通过多种方式完成此操作,如通过执行调用 Instant Messenger 的安全版本中的步骤。

  13. 以管理员身份登录 Web Server 或 Application Server。

  14. 删除请求证书时创建的服务器实例。

在多路复用器和 Instant Messenger 之间启用传统 SSL

可为客户机到多路复用器的通信启用 SSL,具体方法为修改 iim.conf 中的参数,然后使用 Instant Messenger 客户机的安全版本来连接到多路复用器。

表 12–2 列出了 iim.conf 中用于在 Instant Messenger 和多路复用器之间启用 SSL 的参数。还列出了这些参数的说明和默认值。

表 12–2 Instant Messaging 多路复用器 SSL 参数

参数 

默认值 

说明 

iim_mux.usessl

off

如果此值设置为 on,则多路复用器在交换应用数据之前,要求它所接受的每一连接均进行 SSL 信号交换。

iim_mux.secconfigdir

Solaris:/etc/opt/SUNWiim/default/config

Linux:/etc/opt/sun/im/default/ config

此目录包含密钥和证书数据库。通常包含安全模块数据库。此外,如果创建了多个 Instant Messaging 实例,则 /default 目录的名称将有所不同,具体取决于实例。有关更多信息,参见在单个 Instant Messaging 安装中创建多个实例

iim_mux.keydbprefix

(空字符串) 

此值包含密钥数据库文件名的前缀。密钥数据库文件名必须始终以 key3.db 结尾。

例如,如果密钥数据库包含前缀(例如 This-Database-key3.db ),则此参数的值为 This-Database

iim_mux.certdbprefix

(空字符串) 

此值包含证书数据库文件名的前缀。证书数据库文件名必须始终以 cert7.db 结尾。

例如,如果证书数据库包含前缀(如Secret-stuff-cert7.db),则此参数的值为 Secret-stuff

iim_mux.secmodfile

secmod.db

此值包含安全模块文件的名称。 

iim_mux.certnickname

Multiplexor-Cert

此值包含在安装证书时输入的证书名称。 

证书名称区分大小写。 

iim_mux.keystorepasswordfile

sslpassword.conf

此值包含具有密钥数据库密码的文件的相对路径和名称。此文件包含下列行: 

Internal (Software) Token:password

其中 password 是保护密钥数据库的密码。

Procedure在 Instant Messenger 和多路复用器之间启用 SSL

  1. 打开 iim.conf

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

  2. 表 12–2 中的值添加到 iim.conf 中的多路复用器配置参数。


示例 12–2 iim.conf 中传统 SSL 多路复用器配置

下面是一个包含多路复用器配置参数的 iim.conf 示例:


! IIM multiplexor configuration
! =============================
!
! Multiplexor specific options

! IP address and listening port for the multiplexor.
! WARNING: If this value is changed, the port value of ’-server’
! argument in the client’s im.html and im.jnlp files should 
! also be changed to match this.
iim_mux.listenport = "siroe.com:5222"

! The IM server and port the multiplexor talks to.
iim_mux.serverport = "siroe.com:45222"

! Number of instances of the multiplexor.
iim_mux.numinstances = "1"

! Maximum number of threads per instance
iim_mux.maxthreads = "10"

! Maximum number of concurrent connections per multiplexor process
iim_mux.maxsessions = "1000"

                         
iim_mux.usessl = "on"
iim_mux.secconfigdir = "/etc/opt/SUNWiim/default/config"
iim_mux.keydbprefix = "This-Database"
iim_mux.certdbprefix = "Secret-stuff"
iim_mux.secmodfile = "secmod.db"
iim_mux.certnickname = "Multiplexor_Cert"
iim_mux.keystorepasswordfile = "sslpassword.conf"

调用 Instant Messenger 的安全版本

Instant Messenger 自动支持 TLS。如果已如在 Instant Messaging 服务器上激活 TLS 中所述,将服务器配置为使用 TLS,则当 Instant Messenger 连接到服务器时,服务器将与支持 TLS 会话客户机进行通信。然后 Instant Messenger 可请求将连接更改为使用 TLS。

可通过从 Web 浏览器访问 imssl.htmlimssl.jnlp 来调用 Instant Messenger 的传统 SSL 版本。这些文件位于资源目录下,资源目录是存储所有 Instant Messenger 资源的基目录。

也可将指向这些 applet 描述符文件的链接添加到 index.html 中。

一旦为多路复用器配置了传统 SSL 或为服务器配置了 TLS,就可验证 Instant Messenger 客户机已实现了安全连接。

Procedure验证安全的 Instant Messenger 连接

  1. 登录到 Instant Messenger。

    如果要使用传统 SSL,从 Web 浏览器访问 imssl.htmlimssl.jnlp。如果要使用 TLS,则正常访问客户机。有关信息,参见调用 Instant Messenger

    如果 TLS 可用且未将多路复用器设置为使用传统 SSL,Instant Messenger 将始终使用 TLS。

  2. 在 Instant Messenger 主窗口中,确保锁状图标可见。

    Instant Messenger 正在使用安全的传输(SSL 或 TLS)时,锁状图标将显示在主窗口的右下角。

第 13 章 管理 Instant Messaging 的日志记录

Instant Messaging 会创建日志文件,用于记录事件、各种软件组件的相关状态、系统错误以及服务器、多路复用器、“日历”代理、监视程序和 Instant Messenger 的其他方面。通过查看日志文件,可以从多个方面对服务器操作进行监视。本节在以下主题中对日志记录进行了说明:

有关 XMPP/HTTP 网关日志记录的信息,参见管理 XMPP/HTTP 网关的日志记录。此外,您可以根据需要收集 Instant Messenger 的日志记录数据。有关更多信息,参见管理 Instant Messenger 的日志记录

Instant Messaging 日志记录概述

Instant Messaging 提供两种方式生成日志文件:使用 log4j,或不使用 log4j 而通过指定 iim.conf 中的参数。Log4j 样式的日志记录可用于所有服务器实例,包括重定向服务器、“日历”代理、监视程序和 XMPP/HTTP 网关,但不能用于多路复用器。

有关 XMPP/HTTP 网关日志记录的信息,参见管理 XMPP/HTTP 网关的日志记录。有关设置 Instant Messenger 日志记录的信息,参见管理 Instant Messenger 的日志记录


注 –

在将来的版本中,基于 iim.conf 参数的日志记录机制可能会过时。尽可能使用 log4j。


您可以配置 Instant Messaging 服务器、多路复用器、“日历”代理、监视程序和 XMPP/HTTP 网关日志记录的级别。此外,使用 log4j,您可以配置 Instant Messaging 仅为 XMPP 流量生成一个单独的日志文件。

如果您没有使用 log4j 样式的日志记录,则作为定期系统维护的一部分,您需要定期查看和修剪日志文件以免占用过多磁盘空间。服务器不执行此操作。

关于 log4j 的更多信息,参见Apache 日志记录服务网站

Instant Messaging 日志文件位置

当您安装完 Instant Messaging 后运行 configure 实用程序时,可指定日志文件的位置。通常,日志文件存储于 im-runtime-base/log。有关查找 im-runtime-base 的信息,参见Instant Messaging 服务器目录结构

如果您在部署中使用 log4j 生成日志文件,则记录程序也会使用在配置过程中指定的目录作为存储 log4j 日志的基目录。

Instant Messaging 组件日志记录级别

维护错误日志文件的级别或优先级定义了日志文件的详细(冗长)程度。优先级较高表示详细信息较少,因为在日志文件中将只记录高优先级(高严重性)事件。相反,较低的优先级意味着会有较多详细信息,因为在日志文件中将记录较多事件。

不论您使用的是 log4j 还是基于参数的日志记录,均可单独设置每个组件的日志记录级别。

表 13–1 说明组件的日志记录级别。这些日志记录级别是 UNIX syslog 工具所定义级别的一个子集。

表 13–1 Instant Messaging 组件的日志记录级别

级别 

说明 

FATAL

此优先级会在日志文件中记录最少的日志记录详细信息。只要发生严重问题或危急状况,就会向日志文件中添加一条日志记录。如果出现 FATAL 问题,则应用程序可能会停止运行。 

ERROR

只要发生可恢复的软件错误情形或检测到网络故障,就会向日志文件添加一条日志记录。例如,服务器未能与客户机或另一服务器连接。 

WARNING

只要检测到用户错误,就会向日志文件添加一条日志记录。例如,服务器无法解释客户机发送的通信内容。 

INFO

只要进行重要操作,就会向日志文件添加一条日志记录。例如,最终用户成功登录或注销。 

DEBUG

在日志文件中记录任务。此信息仅可用于调试目的。在每个过程或任务中,各步骤的每个事件都被写入日志文件,以帮助最终用户在调试应用程序时确定发生的问题。 

当您选择了特定的日志记录级别后,将记录与该级别相对应的事件,以及所有优先级更高、详细度更低的级别的事件。

INFO 是服务器的默认级别。ERROR 是多路复用器、“日历”代理和监视程序日志文件的默认级别。


注 –

如果您不使用 log4j,并且指定 DEBUG 作为日志记录级别,则日志文件将会占用更多磁盘空间。应监视并整理日志文件,以防止其占用过多磁盘空间。


使用 Log4j 管理 Instant Messaging 日志记录

当您安装 Instant Messaging 时,log4j 配置文件的模板文件 (log4j.conf.template) 会安装到 im-svr-base/lib 目录中。当安装后运行 configure 实用程序时,该模板用于在 im-cfg-base 目录中创建 log4j 配置文件 (log4j.conf)。此配置文件用于确定存储 log4j 生成的日志文件的位置、用于各种组件的日志记录级别、输出语法以及确定生成什么日志文件。

本节中的以下各部分说明使用 log4j 记录程序生成 Instant Messaging 的日志文件:

log4j 记录程序使用 Instant Messaging 组件日志记录级别中所述日志记录级别。

有关 log4j 的更多信息以及有关日志文件配置方面的说明(例如大小、备份数等),参见Apache 日志记录服务网站

Instant Messaging Log4j 配置文件 (log4j.conf) 位置

您可以更改 log4j 配置文件 (log4j.conf ) 的位置,方法是修改 iim.conf 中的 iim.log4j.config 参数。如果您没有指定此参数的值,记录程序将在 im-cfg-base 中查找。如果记录程序在该目录中没有找到 log4j 配置文件,它会使用 iim.conf 中的日志记录参数来生成非 log4j 样式的日志。

有关查找 im-cfg-base 的信息,参见Instant Messaging 服务器目录结构

Instant Messaging Log4j 日志文件语法

配置实用程序基于 log4j 配置文件模板 (log4j.conf.template) 的内容生成 log4j 配置文件 (log4j.conf)。示例 13–1 所示为 log4j 模板。 在此模板中:


示例 13–1 Log4j 模板文件


log4j.logger.xmppd=INFO, A1
# DEFAULT TO RollingFileAppender
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.file=${logdir}/xmppd.log
log4j.appender.A1.append=true
log4j.appender.A1.maxBackupIndex=7
log4j.appender.A1.maxFileSize=5mb
# More example appenders..
# Straight to console..
# log4j.appender.A1=org.apache.log4j.ConsoleAppender
# log4j.appender.A1.ImmediateFlush=true
# Rollover at midnight..
# log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
# log4j.appender.A1.DatePattern='.'yyyy-MM-dd
# log4j.appender.A1.file=${logdir}/xmppd.log
# log4j.appender.A1.ImmediateFlush=true
# log4j.appender.A1.append=true
# Send to SMTP..
# log4j.appender.A1=org.apache.log4j.SMTPAppender

# PATTERN LAYOUT AND OPTIONS
# DEFAULT TO PatternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# For full dates..
log4j.appender.A1.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n
# IM traditional output format..
#log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %c [%t] %m%n
# More example layouts
# XMLLayout for chainsaw consumption
# log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout
# TTCCLayout for NDC information

# log4j.appender.A1.layout=org.apache.log4j.xml.TTCCLayout
# log4j.appender.A1.layout.DateFormat=ISO8601
# log4j.appender.A1.layout.TimeZoneID=GMT-8:00
# log4j.appender.A1.layout.CategoryPrefixing=false
# log4j.appender.A1.layout.ThreadPrinting=false
# log4j.appender.A1.layout.ContextPrinting=false

# Now we list logger/appender/layout for the other default loggers, but
# only the defaults..
log4j.logger.iim_wd=ERROR, A2
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.file=${logdir}/iim_wd.log
log4j.appender.A2.append=true
log4j.appender.A2.maxBackupIndex=7
log4j.appender.A2.maxFileSize=5mb
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

# For separate xmpp traffic log, disabled by default.
log4j.logger.xmppd.xfer=DEBUG, A3
log4j.appender.A3=org.apache.log4j.varia.NullAppender
# Select next block instead of previous line to enable separate transfer log
# log4j.appender.A3=org.apache.log4j.RollingFileAppender
# log4j.appender.A3.file=${logdir}/xfer.log
# log4j.appender.A3.append=true
# log4j.appender.A3.maxBackupIndex=7
# log4j.appender.A3.maxFileSize=5mb
# log4j.appender.A3.layout=org.apache.log4j.PatternLayout
# # Note, simpler default output than above 3 loggers:
# log4j.appender.A3.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.agent-calendar=ERROR, A4
log4j.appender.A4=org.apache.log4j.RollingFileAppender
log4j.appender.A4.file=${logdir}/agent-calendar.log
log4j.appender.A4.append=true
log4j.appender.A4.maxBackupIndex=7
log4j.appender.A4.maxFileSize=5mb
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.net.outer_planes.jso.BasicStream=OFF, A5
log4j.appender.A5=org.apache.log4j.RollingFileAppender
log4j.appender.A5.file=${logdir}/jso.log
log4j.appender.A5.append=true
log4j.appender.A5.maxBackupIndex=7
log4j.appender.A5.maxFileSize=5mb
log4j.appender.A5.layout=org.apache.log4j.PatternLayout
log4j.appender.A5.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

log4j.logger.genredirect=INFO, A6
log4j.appender.A6=org.apache.log4j.RollingFileAppender
log4j.appender.A6.file=${logdir}/genredirect.log
log4j.appender.A6.append=true
log4j.appender.A6.maxBackupIndex=7
log4j.appender.A6.maxFileSize=5mb
log4j.appender.A6.layout=org.apache.log4j.PatternLayout
log4j.appender.A6.layout.ConversionPattern=[%d{DATE}] %-5p %c [%t] %m%n

Instant Messaging 组件的 Log4j 日志级别

log4j 记录程序使用与 Instant Messaging 组件日志记录级别中所述的基于 iim.conf 参数的日志记录机制相同的日志记录级别。

Procedure指定 Log4j 配置文件 (Log4j.conf) 的位置

  1. 打开 iim.conf

    有关查找此文件的信息,参见iim.conf 文件位置

  2. iim.log4j.config 参数设置为您想要记录程序在其中查找 log4j.conf 的路径。

    例如,在 Solaris 中:


    iim.log4j.config=/etc/opt/SUNWiim/default/config/log4j.conf
    

    在 Linux 中:


    iim.log4j.config=/etc/opt/sun/im/default/config/log4j.conf
    
  3. 保存并关闭 iim.conf

  4. 刷新服务器。


    imadmin refresh
    

Procedure启用或禁用 Instant Messaging 组件的 Log4j 日志记录

默认情况下,log4j 日志记录用于所有要生成日志记录信息的组件。

  1. 要禁用 log4j 日志记录,可在 log4j.conflog4j.conf.template 中将该组件的日志记录级别设为 OFF

    有关更多信息,参见设置 Instant Messaging 的 Log4j 日志级别

  2. 要启用 log4j 日志记录,可在 log4j.conflog4j.conf.template 中将该组件的日志记录级别设为 OFF 以外的任何日志记录级别。

Procedure设置 Instant Messaging 的 Log4j 日志级别

您可以通过修改模板或日志配置文件来设置日志级别。不过,如果您只修改配置文件,下次运行 configure 时将覆盖所有修改。要避免如此,您应同时修改配置文件和模板。

  1. 打开 log4j.conf.template

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


    im-svr-base/lib
  2. 对每个组件,指定您想要使用的日志记录级别。

    例如,设置服务器的日志级别:


    log4j.logger.xmppd=log-level
    

    其中,log-levelFATALERRORWARNINGINFODEBUG 之一。

    有关这些日志记录级别的详细信息,参见表 13–1

  3. 保存并关闭 log4j.conf.template

  4. 对配置文件 log4j.conf 重复该过程。

Procedure指定 Instant Messaging 组件的最大 Log4j 日志文件大小

您可以通过修改模板或日志配置文件来设置日志级别。不过,如果您只修改配置文件,下次运行 configure 时将覆盖所有修改。要避免如此,您应同时修改配置文件和模板。

  1. 打开 log4j.conf.template

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


    im-svr-base/lib
  2. 对每个组件,指定组件日志文件的最大大小。

    例如,设置服务器日志文件的大小:


    log4j.appender.A1.maxFileSize=max-logfile-size
    

    其中,A1 是服务器的默认 appender ID,max-logfile-size 以 MB 为单位,例如 5MB

  3. 对配置文件 log4j.conf 重复该过程。

使用 iim.conf 参数配置 Instant Messaging 组件的日志记录

如果您没有使用 log4j 来生成日志文件,您需要对想要 Instant Messaging 生成日志记录信息的每个组件设置特定的配置参数。此方法称为基于参数的 Instant Messaging 日志记录。您可以为所有服务器实例(包括重定向服务器、多路复用器、日历代理和监视程序)使用基于参数的日志记录。


注 –

在将来的版本中,这一基于 iim.conf 参数的日志记录机制可能会过时。尽可能使用 log4j。


表 13–2 提供日志文件的名称以及 iim.conf 中用于设置每个 Instant Messaging 组件日志文件的日志记录级别的配置参数。

表 13–2 Instant Messaging 组件的日志文件名称和日志记录级别配置参数

组件 

日志文件名称 

日志记录级别配置参数 

服务器 

xmppd.log

iim.log.iim_server.severity

多路复用器 

mux.log

iim.log.iim_mux.severity

日历代理 

agent-calendar.log

iim.log.agent-calendar.severity

监视程序 

iim_wd.log

iim.log.iim_wd.severity

这些配置参数可以具有以下值:

有关记录每个日志记录级别的详细信息,参见Instant Messaging 组件日志记录级别

此外,Sun JavaTM System Access Manager 部署中的日志记录配置由 com.iplanet.services.debug.level 属性确定。您可以在 Sun Java System Access Manager 主机上的 AMConfig.properties 文件中设置此属性。默认情况下,此文件安装在以下位置:

AM-svr-base/lib/AMConfig.properties

其中,AM-svr-baseAccess Manager 的安装目录。

此属性可能包含下列值:

默认情况下,Sun Java System Portal Server 桌面日志文件 (desktop.debug ) 和归档日志文件 (IMArchiveSearch.logIMArchiveSubmit.log) 存储于以下位置:

Procedure使用 iim.conf 参数设置 Instant Messaging 组件的日志级别

    修改 iim.conf 中的日志记录参数。

    有关日志文件和您要为每个组件设置的相关参数的列表,参见表 13–2

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。有关监视程序的更多信息,参见管理监视程序进程。有关“日历”代理的更多信息,参见第 16 章,使用日历弹出提示

管理 Instant Messenger 的日志记录

默认情况下,不记录 Instant Messenger 数据。在支持呼叫中可能会要求收集客户机数据。在此情况下,需要先启用日志记录,才能查看客户机日志数据。

根据需要创建 Instant Messenger 日志,并存储在用户主目录中 (usr_home/.sunmsgr/messenger.log )。

设置 Instant Messenger 的日志记录

要设置 Instant Messenger 的日志记录,您需要:

  1. 确定您要收集的数据类型。

  2. 修改 im.jnlp 以包括 logconfig 参数。

  3. 根据您要收集的数据类型指定 logconfig 参数的类型。

  4. 重新部署资源文件。

Procedure启用 Instant Messenger 的日志记录

  1. 制作 im.jnlp 的备份。

  2. 在文本编辑器中打开 im.jnlp Instant Messenger 资源文件。

  3. 搜索下面的行:


    <application-desc main-class="com.iplanet.im.client.iIM">
  4. 将下列参数添加到该部分末尾:


    <argument>logconfig=type</argument>
    

    其中,typeALLAPIXMPPTRAFFICCLIENT 之一。有关详细信息,参见Instant Messenger 日志文件内容选项

  5. 保存并关闭 im.jnlp 文件。

  6. 如果您使用的是 Sun Java System Application Server 或 Sun Java System Web Server,则需要如重新部署资源文件中所述重新部署资源文件。

  7. 重新启动 Instant Messenger。

  8. 查找日志文件。

    默认情况下,日志文件存储为 usr_home/.sunmsgr/messenger.log

接下来的操作

当 Instant Messenger 故障排除完成后,您应该将 im.jnlp 的备份副本复制回来。然后,如重新部署资源文件中所述重新部署资源文件。

查找 Instant Messenger 日志文件 (messenger.log )

默认情况下,Instant Messenger 日志文件存储为 messenger.log,位于以下用户主目录下:


/usr_home/.sunmsgr/messenger.log

Instant Messenger 日志文件内容选项

您可以通过指定 im.jnlplogconfig 参数的值来确定想要在 messenger.log 中记录哪些活动。表 13–3 说明 logconfig 的配置参数。有关设置 logconfig 参数和生成 Instant Messenger 日志的说明,参见启用 Instant Messenger 的日志记录

表 13–3 messenger.log 的 Instant Messenger 日志记录选项

logconfig

messenger.log 包含...

ALL

有关 API 的信息、客户机和服务器之间的所有流量以及 Instant Messenger 客户机应用程序本身的调试信息。 

API

仅 API 信息。 

XMPPTRAFFIC

仅客户机到服务器的通信。 

CLIENT

仅客户机应用程序 (Instant Messenger) 详细信息。 

第 14 章 管理 Instant Messaging 最终用户

Instant Messaging 不提供批量用户置备工具。需要使用目录批量置备工具置备多个 Instant Messaging 最终用户。默认情况下,Instant Messaging 不会提供添加、修改或删除 Instant Messaging 最终用户的特定命令。但是,可以自定义 Instant Messenger 以允许用户将自己添加到目录中。

和在仅 LDAP 部署中一样,您不能阻止最终用户使用 Instant Messenger。在仅 LDAP 部署中,阻止最终用户使用 Instant Messaging 的唯一方法是从目录中删除他们或在目录中禁用他们的用户帐户。请牢记这样做也将阻止用户绑定到目录。在使用 Sun JavaTM System Access Manager 策略属性的部署中,可阻止最终用户仅访问 Instant Messenger。此外,如果您使用 Access Manager 部署 Instant Messaging,应使用随 Access Manager 提供的置备工具来代替允许用户自己注册。

管理员可以使用 Instant Messaging 管理员访问控制机制来管理 Instant Messaging 最终用户。有关 Instant Messaging 管理员访问控制的更多信息,参见保密性、安全性和站点策略概述,然后使用 Access Manager 置备 Instant Messaging 最终用户。有关更多信息,参见《Sun Java Communications Suite 5 Deployment Planning Guide》


注意 – 注意 –

如果您通过编辑 sysWatch.acl 文件来拒绝最终用户设置对其他最终用户的观察的权限,则 Instant Messenger 的主窗口不会对这些最终用户显示。这样就可有效地阻止最终用户使其无法发送即时消息。但是,最终用户仍然能够查看警报和新闻频道。


本章包含以下部分:

禁用最终用户访问 Instant Messenger

如果通过 Access Manager 使用 Instant Messaging,则可以按照本小节所述的方式拒绝用户访问 Instant Messenger 服务。

Procedure禁用 Instant Messaging 最终用户

  1. 打开 iim.conf

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

  2. 按如下所示修改以下值:


    iim_ldap.useidentityadmin="true"
    iim_server.usesso=1该参数的值也可以是 0
    iim.policy.modules="identity"
    iim.userprops.store="ldap"
  3. 保存并关闭 iim.conf

  4. 刷新 Instant Messaging 服务器。


    imadmin refresh server
    

    有关更多信息,参见刷新组件配置。如果正在高可用性环境中使用 Instant Messaging,请勿使用 imadmin,而应使用 Sun Cluster 工具来刷新服务器。

  5. 使用 Access Manager 控制台 (amconsole) 删除要禁用访问用户的 Instant Messaging 服务。

注册新的 Instant Messaging 用户

可自定义 Instant Messenger 以允许新的用户配置。当用户注册后,Instant Messaging 服务器将使用注册时提供的信息执行 ldapadd 操作,以在目录中创建用户条目。


注 –

如果通过 Sun Java System Access Manager 使用 Instant Messaging,则不应允许用户使用该方法进行注册。作为替代,您应该使用随 Access Manager 提供的置备工具。


要允许新用户注册,您需要将服务器配置为允许注册,然后通过运行 configure 实用程序向 im.jnlp.templateim.html.template 文件添加参数来自定义 Instant Messenger 资源,最后重新部署资源文件(如果需要)。

本节说明:

有关自定义资源文件的更多信息,参见第 15 章,管理 Instant Messenger

配置 Instant Messaging Server 以允许新用户注册

为了配置 Instant Messaging 服务器来允许新用户注册,需要将配置参数添加到 iim.conf 中。表 14–1 列出了需要添加的参数和每个参数的简要描述。

表 14–1 Instant Messaging Server 新用户注册配置参数

参数 

说明 

iim.register.enable

如果为 TRUE,则服务器允许新的 Instant Messaging 最终用户使用 Instant Messenger 注册自己(将自己添加到目录中)。

iim_ldap.register.basedn

如果启用了自注册,则该参数的值为 LDAP 目录中存储个人条目的位置 DN。例如:

"ou=people,dc=siroe,dc=com"

iim_ldap.register.domain

要添加新用户的域。例如,directory.siroe.com

Procedure配置 Instant Messaging Server 以允许新用户注册

  1. 打开 iim.conf

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

  2. 添加表 14–1 中所介绍的配置参数及其相应的值。

  3. 保存并关闭 iim.conf

  4. 使用 imadmin 命令刷新服务器配置。

    imadmin refresh server

自定义 Instant Messenger 以允许新用户注册

当自定义资源文件以允许新用户注册时,“登录”对话框中会出现一个新按钮。用户单击此按钮可以访问“新用户注册”对话框。通过该对话框,用户可以进行注册。当用户注册后,他们的信息会添加到 LDAP 目录中。

Procedure自定义 Instant Messenger 以允许新用户注册

  1. 在文本编辑器中打开 im.jnlp.template 文件。

    默认情况下该文件存储在 im-svr-base/html

  2. 搜索下面的行:


    <application-desc main-class="com.iplanet.im.client.iIM">
    
  3. 将下列参数添加到该部分末尾:


    <argument>register=true</argument>
    
  4. 保存并关闭 im.jnlp.template

  5. 在文本编辑器中打开 im.html.template 文件。

    默认情况下该文件存储在 im-svr-base/html

  6. 将注册参数添加到文件:


    <PARAM NAME="register" VALUE="true">
    
  7. 将以下参数添加到 EMBED 标记:


    register=true
    
  8. 保存并关闭 im.html.template

  9. 运行配置实用程序,提示选择您要配置的组件时,仅选择“Messenger 资源”组件。

    有关说明,参见安装或升级后配置 Instant Messaging

  10. 如果正在使用 Sun Java System Application Server 或 Sun Java System Web Server,则重新部署资源文件。

    有关说明,参见重新部署资源文件

  11. 启动 Instant Messenger。

    “登录”对话框中将出现“我是新用户”按钮。

注册为新的 Instant Messaging 用户

当将新用户注册参数添加到 im.jnlpim.html 文件中,且重新部署资源文件后,用户就可以注册自己了。

Procedure注册为新的 Instant Messaging 用户

  1. 在 Web 浏览器中,转到 Instant Messaging 主页。

  2. 单击“开始”或单击“使用 Java 插件”。

    出现“登录”对话框,显示“我是新用户”按钮。

  3. 单击“我是新用户”。

    出现“新用户注册”对话框。

  4. 在提供的字段中输入信息,然后单击“确定”。

    输入的信息将存储在目录中。

在 LDAP 中存储 Instant Messaging 用户属性

在没有 Sun Java System Access Manager 的部署中,可选择将用户属性存储到 LDAP 中而不是文件(默认值)中。您需要运行 imadmin assign_services 命令来为目录中的用户条目添加所需的对象类。Instant Messaging 使用这些对象类将用户属性存储到用户条目中。


注意 – 注意 –

一些用户属性可能包含保密信息。请确保您设置了目录访问控制,以防止无权限用户的未授权访问。有关更多信息,参阅您的目录文档。


Procedure在 LDAP 中存储 Instant Messaging 用户属性

  1. iim.conf 中,确保 iim.policy.modules 参数具有 iim_ldap 的值。

    有关 iim.conf 的信息,参见iim.conf 文件语法

  2. iim.conf 中,确保 iim.userprops.store 参数具有 ldap 的值。

  3. 在命令行中,运行带有 assign_services 选项的 imadmin


    imadmin assign_services
    

    imadmin 检查 iim.conf 中的 iim.policy.modules 参数的值。

  4. 输入要 imadmin 用来绑定到目录的绑定 DN 和密码。

    绑定 DN 应该有足够的证书来修改目录模式,例如目录管理器 DN。

  5. 输入存储用户条目的基 DN。

    接下来,imadminsunIMUsersunPresenceUser 对象类添加到所指定组织的用户条目中。

将 Instant Messaging 和在线状态服务指定给最终用户

在具有 Sun Java System Access Manager 的部署中,可使用 imadmin assign_services 命令将 Instant Messaging 和在线状态服务指定给最终用户。或者,可使用 Access Manager 控制台。

Procedure将 Instant Messaging 和在线状态服务指定给最终用户

  1. iim.conf 中,确保 iim.policy.modules 参数具有 identity 的值。

    有关 iim.conf 的信息,参见iim.conf 文件语法

  2. 在命令行中,运行带有 assign_services 选项的 imadmin


    imadmin assign_services
    

    imadmin 检查 iim.confiim.policy.modules 参数的值。

  3. 输入要存储用户条目的组织的基 DN。

    这是包含由 Access Manager 管理的用户条目的组织。

    接下来,imadmin 将 Instant Messaging 和在线状态服务指定给所指定组织中的用户。

第 15 章 管理 Instant Messenger

本章中的以下各节说明如何自定义和管理 Instant Messenger:

配置 Instant Messenger

有两种方式可以调用和运行 Instant Messenger:

使用 Java Web Start - 在此配置中,Instant Messenger 作为应用程序从 Java Web Start 启动。一旦 Instant Messenger 启动,则不再需要浏览器。

使用 Java 插件 - 在此配置中,Instant Messenger 作为 Java applet 运行。要保持 Instant Messenger 会话处于活动状态,启动 applet 的浏览器窗口必须保持打开状态,且不能用于定位其他任何 URL。此外,Java 插件不允许桌面集成,因此“设置”对话框中的“桌面集成设置”选项将不可用。

有关如何配置启用 Instant Messenger 的 Java 软件的更多信息,参见第 2 章,设置和启动 Instant Messenger

调用 Instant Messenger

您可以从几个位置调用 Instant Messenger:

以下各节说明如何调用 Instant Messenger:

Procedure使用直接 URL 调用 Instant Messenger

    在您的 Web 浏览器中输入以下 URL 来调用 Instant Messenger:


    http://webserver:webserverport/path/filename
    

    在此 URL 中,

    webserver

    指定您安装 Instant Messenger 资源的 Web 容器的名称。

    webserverport

    (可选)指定 Web 容器端口。默认值为 80

    path

    (可选)指定安装客户机文件的目录。如果在安装时选择默认值,则存储客户机文件时无需指定子目录。

    filename

    指定要使用的 Instant Messenger 文件:

    index.html - 此文件随产品提供。该文件包含指向 im.jnlpim.html 的链接,分别用于启动 Java Web Start 和 Java 插件版的 Instant Messenger。

    im.jnlp - 仅启动 Java Web Start 版 Instant Messenger 的 .jnlp 文件。

    im.html - 仅启动 Java 插件版 Instant Messenger 的 Web 页。

Procedure通过命令行调用 Instant Messenger(仅 Solaris)

    在命令行键入命令:

    javaws_cmd URL

    有关构造 URL 的信息,参见使用直接 URL 调用 Instant Messenger

Procedure使用桌面快捷方式调用 Instant Messenger

    创建并使用桌面快捷方式来调用 Instant Messenger

    • 使用 Java Web Start 创建快捷方式。

    • 手动创建快捷方式,然后按如下所示设置目标值:

      javaws_cmd jnlp-URL

      其中,jnlp-URL 是指向 im.jnlp 文件的 URL。

更改代码库

代码库是 Instant Messenger 用来访问资源的 URL,包括 Instant Messaging 客户机初始下载的起始页面。该 URL 在安装后配置过程中定义,此时将通过 configure 实用程序部署资源文件。如果更改用于访问 Instant Messenger 资源(包括 Web 容器端口号)的 URL 中的任何部分,则需要更新代码库。

如果在已经部署资源文件后想要更改代码库,则需要进行以下操作:

Procedure要更改资源模板中的代码库

    在带有新 URL 的 im-svr-base/html 目录中,编辑每个模板文件。

    模板文件命名为 *.template。有关模板文件的完整列表,参见Instant Messenger 资源文件

更改 Web 容器端口

如果更改用于访问 Instant Messenger 资源(包括 Web 容器端口号)的 URL 中的任何部分,则需要更新代码库。有关说明,参见更改代码库

自定义 Instant Messenger

Instant Messenger 可以自定义。可以自定义 HTML 和 JNLP 文件以适应组织的特殊需要。如果想要自定义资源文件以用于部署,您应该运行 configure 实用程序(如果安装后尚未这样做),自定义文件,然后重新部署资源文件。您需要先运行 configure 实用程序,因为它创建某些您可以自定义的文件。(有关重新部署的说明,参见重新部署资源文件。)

可通过以下方式自定义 Instant Messenger 以满足您的要求:

本节说明您可以修改以自定义 Instant Messenger 的 Instant Messaging 服务器文件。所有您可以自定义的文件均位于资源目录 im-svr-base/html 目录中。有关默认目录位置的信息,参见表 3–1

Instant Messenger 资源文件

Instant Messenger 资源文件位于称为资源目录或 im-svr-base/html 的目录内。

表 15–1 包含资源目录 (im-svr-base/html) 中 Instant Messenger 文件的列表。它还包含这些文件的说明和自定义信息。在资源目录内,/locale 子目录通常在目录路径中以 lang 表示,但在具体情况下用语言缩写来表示,例如 en_USjpfr_FR

表 15–1 im-svr-base/html 中的 Instant Messenger 资源文件

文件 

说明 

是否可以自定义? 

lang/im.html

启动 Java 插件版 Instant Messenger 的初始页面。 

可以 

im.html.template

im.html 的模板版本。

不可以, 

此文件供安装程序用来生成 im.html 文件。

imdesktop.jar

客户机 .jar 文件,由 im.htmlim.jnlp 文件下载。

不可以 

lang/im.jnlp

用于启动 Java Web Start 版 Instant Messenger 的 .jnlp 文件。

可以 

im.jnlp.template

im.jnlp 的模板版本。

不可以 

imjni.jar

客户机 .jar 文件,由 im.htmlim.jnlp 下载。

不可以 

messenger.jar

主要客户机 .jar 文件,由 im.htmlim.jnlp 下载。

不可以 

icalendar.jar

用于处理日历提示的 icalendar 分析程序。

不可以 

imnet.jar

客户机 .jar 文件,由 im.htmlim.jnlp 下载。

不可以 

lang/imbrand.jar

此文件包含可自定义的属性、样式表、图像、背景和音频文件。 

可以 

lang/imssl.html

启动 Java 插件版 Instant Messenger 的初始页面。它用于在客户机和多路复用器之间运行传统 SSL。不要在客户机和服务器之间通过 TLS 进行的安全通信中使用此文件。

可以 

imssl.html.template

imssl.html 的模板版本。

不可以 

lang/imssl.jnlp

此文件启动 Java Web Start 版的 Instant Messenger。此文件用于在客户机和多路复用器之间运行 SSL。 

可以 

imssl.jnlp.template

imssl.jnlp 的模板版本。

不可以 

jnlpLaunch.jsp

如果最终用户已登录到 Sun JavaTM System Access Manager,此文件可用于允许单点登录以及使用 Java Web Start 启动 Instant Messenger。

可以 

pluginLaunch.jsp

如果最终用户已登录到 Sun Java System Access Manager,此文件可用于允许单点登录和使用 Java 插件启动 Instant Messenger。 

可以 

index.html

LDAP 部署的初始页面。它包含到 im.htmlim.jnlp 的链接,以及到 windows.htmsolaris.htmquickref.htm 的文档链接。您可以根据站点的要求自定义此页。

可以 

index.html.template

index.html 的模板版本。

不可以 

lang/imhelp/SunONE.jpg

quickref.htmsolaris.htmwindows.htm 使用的图像。

可以替换,但不能修改。 

quickref.html

solaris.html

windows.html

位于 lang/imhelp/,这些文件提供有关 Instant Messenger 入门的文档。

可以 

lang/imhelp

“Instant Messenger 联机帮助”目录。 

不可以 

imwebex.jar

 

 

msgrinstall.jar

 

 

自定义 index.htmlim.html 文件

如果您在不带 Sun Java System Access Manager 的部署中使用 Instant Messenger,则可以修改 index.htmlim.html 文件的 static 部分,以生成一个完全自定义的用户界面。这些 HTML 文件包含说明如何格式化和处理文本的文本和标记。标记由指定标题格式、缩进、字体大小和字体样式的一组标签实现。

以下是一些可以修改的页面元素:

可从 index.html 启动 Instant Messenger applet 和 Java Web Start 应用程序。如果您运行 Instant Messenger applet,请修改 im.html 文件。im.html 文件被 index.html 调用,自身可以调用 Instant Messenger applet。im.html 文件在运行 configure 实用程序时生成,并包含一个指向多路复用器的 applet 参数。


注 –

参数“<PARAM NAME="server" VALUE="servername"> ”在 im.html 文件中表示 Instant Messaging 多路复用器及其端口。如果您更改了 iim_mux.listenport 参数的默认值,则需要将 servername 的值更改为 host.domain :port


使用 Sun Java System Access Manager SSO 启动 Instant Messenger

要使用带 Sun Java System Access Manager 的单点登录 (SSO) 启动 Instant Messenger 客户机,可使用 IMLaunch.jsp。该文件位于资源目录中。

Sun Java System Access Manager 和 Instant Messenger 必须配置为使用相同的 Web 容器启用 SSO。

要启动 Instant Messenger,可在 Web 浏览器中输入以下内容:


codebase/IMLaunch.jsp?server=multiplexor-hostname:muliplexor-port


codebase/IMLaunch.jsp?server=www.example.com:5222

其中:

codebase 是用于下载 Instant Messenger 资源的代码库。例如,http://www.example.com

multiplexor-hostname 是多路复用器的主机名。例如,http://www.company22.com

muliplexor-port 是多路复用器侦听收到的客户机请求所使用的端口号。例如,5222

IMLaunch.jsp 用于通过 Java Web Start 或 Java 插件启动 Instant Messenger。

自定义应用程序 (Java Web Start)

如果使用 Java Web Start 运行 Instant Messenger,则可通过修改 im.jnlpimres.jnlpimres.jar 文件来自定义用户界面。以下是可以对这些文件所做的修改:


示例 15–1 im.jnlp 文件样例


<?xml version="1.0" encoding="utf-8"?>
<!-- Instant Messenger -->
<jnlp
  spec="1.0+"
  codebase="http://im.i-zed.com:80/im"
  href="en/im.jnlp">
  <information>
    <title>Instant Messaging</title>
    <vendor>I-Zed.com</vendor>
    <homepage href="http://www.I-zed.com/"/>
    <description>I-Zed’s Sun Java System Instant Messenger</description>
    <description kind="short">Instant Messenger</description>
    <icon href="CompanyLogo.gif"/>
    <offline-allowed/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.3+">
      <resources>
        <jar href="en/imres.jar"/>
        <jar href="en/imbrand.jar"/>
      </resources>
    </j2se>
    <jar href="messenger.jar"/>
    <jar href="imdesktop.jar"/>
    <jar href="imnet.jar"/>
    <jar href="icalendar.jar"/>
    <nativelib href="imjni.jar"/>
  </resources>
  <application-desc main-class="com.iplanet.im.client.iIM">
    <argument>server=im.i-zed.com:45222</argument>
    <argument>help_codebase=http://im.i-zed.com:80/im/en</argument>
  </application-desc>
</jnlp>


注 –

im.jnlp 文件中,参数 <argument> servername</argument> 表示 Instant Messaging 多路复用器主机和端口。如果您更改了 iim_mux.listenport 参数,则您需要将 servername 的值更改为 host.domain :port


imbrand.jar 的内容

本节中的表列出了 imbrand.jar 文件中的文件并尽可能地提供了每个文件的说明。imbrand.jar 文件还包含您可用于重建 Instant Messenger 的图像和音频文件。本节包含以下表格:

表 15–2 配置文件

文件 

说明 

brand.properties

 

chat-styles.css

 

bgstyles.properties

背景配置文件,用于扩展背景设置 

表 15–3 表情图标

文件名 

说明 

emo_alarm.png

以图形表示报警情绪 

emo_angel.png

以图形表示天使般的情绪 

emo_angry.png

以图形表示愤怒情绪 

emo_balloons.png

一束气球的图示 

emo_beermug.png

一杯啤酒的图示 

emo_cake.png

一块生日蛋糕的图示 

emo_calendar.png

一份日历的图示 

emo_canworms.png

一罐蠕虫的图示 

emo_clown.png

小丑头形的图示 

emo_cool.png

以图形表示酷的情绪。 

emo_dead.png

以图形表示死亡 

emo_devil.png

以图形表示邪恶情绪 

emo_dont-tell.png

以图形表示秘密请求 

emo_embarrassed.png

以图形表示尴尬情绪 

emo_exclamation.png

一个感叹号的图示 

emo_flower.png

一朵花的图示 

emo_ghost.png

一个鬼的图示 

emo_goldstar.png

一颗金星的图示 

emo_grin.png

以图形表示咧嘴笑 

emo_kiss.png

以图形表示亲吻 

emo_laughing.png

以图形表示欢笑情绪 

emo_lifepreserver.png

一个救生设备的图示 

emo_lightning.png

雷暴云和闪电的图示 

emo_lovestruck.png

表示爱慕情绪的表情图标 

emo_martini.png

一个马提尼酒杯的图示 

emo_money.png

几堆硬币的图示 

emo_musicnote.png

一个音符的图示 

emo_nerd.png

傻笑的图示 

emo_nottalking.png

以图形表示转过去的面孔 

emo_phone.png

一部电话机的图示 

emo_present.png

一件带包装礼物的图示 

emo_psychoknife.png

一把刀的图示 

emo_rathole.png

一个老鼠洞的图示 

emo_sad.png

以图形表示悲伤情绪 

emo_sick.png

以图形表示生病 

emo_sleep.png

以图形表示睡眠 

emo_smiley.png

以图形表示微笑 

emo_straightfaced.png

一个板起面孔之人的图示 

emo_sunshining.png

太阳的图示 

emo_surprised.png

以图形表示惊奇 

emo_tongue-out.png

一个吐舌头的图示 

emo_violin.png

一把小提琴的图示 

emo_whatever.png

以图形表示漠不关心或轻视 

表 15–4 应用程序图标 – Windows

文件名 

说明 

im_app_icon_16.png

Windows 标题栏图标 

im_app_icon_24.png

Windows 标题栏图标 

tray_icon.ico

Windows 系统托盘图标 

表 15–5 应用程序图标 – 所有平台

文件名 

说明 

logo_login_footer.png

在“登录”对话框底部显示的徽标 

logo_register.png

在“注册”对话框中显示的徽标 

logo_sun.png

在“登录”对话框中显示的 Sun 徽标 

表 15–6 工具栏图标

文件名 

说明 

tb_addcontacts.png

“添加联系人”按钮的图形 

tb_alert.png

“发送警报”按钮的图形 

tb_chat.png

“与用户聊天”按钮的图形 

tb_conf.png

“添加会议”按钮的图形 

表 15–7 联系人列表图标

文件名 

说明 

cl_folder_closed.png

以图形表示一个关闭的文件夹 

cl_folder_open.png

以图形表示一个打开的文件夹 

表 15–8 在线状态图标 - 联系人列表

文件名 

说明 

cl_activeconf.png

用于在“联系人列表”中显示活动会议的图标 

cl_away.png

用于在“联系人列表”中显示离开状态的图标 

cl_dnd.png

 

cl_idle.png

用于在“联系人列表”中显示空闲状态的图标 

cl_inactiveconf.png

用于在“联系人列表”中显示非活动会议的图标 

cl_offline.png

用于在“联系人列表”中显示脱机状态的图标 

cl_online.png

用于在“联系人列表”中显示联机状态的图标 

cl_pending.png

用于在“联系人列表”中显示未决状态的图标 

表 15–9 在线状态图标 - 状态栏

文件名 

说明 

sb_away.png

用于在“状态栏”中显示离开状态的图标 

sb_dnd.png

 

sb_idle.png

用于在“状态栏”中显示空闲状态的图标 

sb_offline.png

用于在“状态栏”中显示脱机状态的图标 

sb_online.png

用于在“状态栏”中显示联机状态的图标 

表 15–10 调色板的背景和背景色标

bgplt_tex_blue.gif

bgplt_tex_brown.gif

bgplt_tex_bubble_blue.gif

bgplt_tex_bubble_brown.gif

bgplt_tex_bubble_green.gif

bgplt_tex_bubble_grey.gif

bgplt_tex_bubble_orange.gif

bgplt_tex_bubble_purple.gif

bgplt_tex_bubble_ruby.gif

bgplt_tex_crackle_blue.gif

bgplt_tex_crackle_green1.gif

bgplt_tex_crackle_grey.gif

bgplt_tex_crackle_olive.gif

bgplt_tex_crackle_orange.gif

bgplt_tex_crackle_purple.gif

bgplt_tex_crackle_ruby.gif

bgplt_tex_gradation_blue.gif

bgplt_tex_gradation_brown.gif

bgplt_tex_gradation_green.gif

bgplt_tex_gradation_grey.gif

bgplt_tex_gradation_orange.gif

bgplt_tex_gradation_purple.gif

bgplt_tex_gradation_ruby.gif

bgplt_tex_green.gif

bgplt_tex_orange.gif

bgplt_tex_pink.gif

bgplt_tex_purple.gif

bgplt_tex_weave_blue.gif

bgplt_tex_weave_brown.gif

bgplt_tex_weave_green.gif

bgplt_tex_weave_grey.gif

bgplt_tex_weave_orange.gif

bgplt_tex_weave_purple.gif

bgplt_tex_weave_ruby.gif

bgplt_tex_white.gif

bg_tex_bubble_blue.gif

bg_tex_bubble_brown.gif

bg_tex_bubble_green.gif

bg_tex_bubble_grey.gif

bg_tex_bubble_orange.gif

bg_tex_bubble_purple.gif

bg_tex_bubble_ruby.gif

bg_tex_crackle_blue.gif

bg_tex_crackle_green1.gif

bg_tex_crackle_grey.gif

bg_tex_crackle_olive.gif

bg_tex_crackle_orange.gif

bg_tex_crackle_purple.gif

bg_tex_crackle_ruby.gif

bg_tex_gradation_blue.gif

bg_tex_gradation_brown.gif

bg_tex_gradation_green.gif

bg_tex_gradation_grey.gif

bg_tex_gradation_orange.gif

bg_tex_gradation_purple.gif

bg_tex_gradation_ruby.gif

bg_tex_weave_blue.gif

bg_tex_weave_brown.gif

bg_tex_weave_green.gif

bg_tex_weave_grey.gif

bg_tex_weave_orange.gif

bg_tex_weave_purple.gif

bg_tex_weave_ruby.gif

表 15–11 声音

文件名 

说明 

alert.wav

警报声音 

alerttpc.wav

警报声音 

away.wav

将状态改为离开时所用的声音 

receive.wav

收到消息时所用的声音 

send.wav

发送消息时所用的声音 

soundoff.wav

关闭声音时所用的声音 

soundon.wav

打开声音时所用的声音 

重建 Instant Messenger

imbrand.jar 文件包含控制 Instant Messenger 外观的所有图像和属性。您可以通过修改 imbrand.jar 中的图像和属性来自定义 Instant Messenger 的外观。

Procedure重建 Instant Messenger

  1. imbrand.jar 文件复制到一个工作目录中。

    例如:


    cp im-svr-base/html/lang/imbrand.jar working-directory
    
  2. 转到该工作目录。


    cd working-directory 
    
  3. 提取 imbrand.jar 文件。


    jar xf imbrand.jar
    

    此命令可创建复制资源文件的目录树。当您修改 imbrand.jar 文件中的个别文件时,必须保持此目录结构。

    或者,可提取包括在 imbrand.jar 中的单个文件,并将其置于指定的目录结构中。例如,要只提取 brand.properties,使用以下命令:


    jar xf imbrand.jar com/sun/im/desktop/brand/brand.properties
    
  4. 用修改后的 .gif.wav.properties 文件更新 imbrand.jar

    您可以更新 imbrand.jar 中的所有文件,方法如下:

    jar cf imbrand.jar .

    要用单个修改过的文件更新 imbrand.jar,使用以下命令:


    jar uf imbrand.jar com/sun/im/desktop/brand/filename
    

    其中,filenameimbrand.jar 中所包括文件的名称,例如,brand.properties

  5. imbrand.jar 复制到资源目录。

    例如:


    cp imbrand.jar im-svr-base/html/lang/ .
    

    注 –

    如果您的部署中支持多语言环境,请对每个支持的语言环境执行该过程以重建 Instant Messenger。


自定义用户名和组名显示方式

您可以通过更改用于显示联系人姓名的属性来自定义 Instant Messenger 如何显示联系人和组的名称。默认情况下,Instant Messenger 使用属性 cn 表示用户的显示名称。在您的部署中,您可能喜欢使用 uid 或某些其他属性来代替 cn

联系人姓名显示为。例如,Frank SmithMary Jones 等。如果两个最终用户具有相同的名和姓,就无法知道应添加哪一个最终用户到联系人列表中。您可以自定义 Instant Messenger 在用户的搜索结果中显示更多信息,并在“联系人”工具提示中显示附加信息以帮助区分联系人。例如,当鼠标放在联系人上时,显示该联系人的电话号码。

Procedure更改用于显示用户名的属性

  1. 打开 iim.conf

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

  2. 指定显示用户名要使用的属性,以 iim_ldap.userdisplay 的值的形式进行指定。

    例如,要使用 nickname 属性,则设置 iim_ldap.userdisplay 属性如下:

    iim_ldap.userdisplay=nickname

  3. 保存并关闭该文件。

Procedure更改用于显示组名的属性

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

  2. 指定显示用户名要使用的属性,以 iim_ldap.groupdisplay 的值的形式进行指定。

    例如,要使用 uid 属性,则设置 iim_ldap.groupdisplay 属性如下:

    iim_ldap.groupdisplay=uid

    保存并关闭该文件。

Procedure自定义搜索结果中的用户名显示发式

  1. imbrand.jar 提取文件。

    有关 imbrand.jar 的默认位置,参见表 15–1

  2. 转到下列目录:

    com/sun/im/client/

  3. 打开 brand.properties

  4. dialogs.searchresults.format 属性添加到该文件。

  5. 按以下格式添加您想要包括在搜索结果中的属性:

    ${attr:attribute-name }

    其中,attribute-name 是 LDAP 属性的名称。

    例如,要包括 title 属性,可添加以下行:

    dialogs.searchresults.format=(${attr:title})

  6. 保存更改并关闭文件。

  7. 重新打包 imbrand.jar

  8. 添加用户属性到 iim.conf

    指定该属性作为 iim_ldap.userattributes 参数的值。使用逗号分隔多个属性,例如:

    iim_ldap.userattributes=title,department,telephonenumber

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

Procedure自定义工具提示内容

  1. imbrand.jar 提取文件。

    有关 imbrand.jar 的默认位置,参见表 15–1

  2. 转到下列目录:

    com/sun/im/client/

  3. 打开 brand.properties

  4. 添加 contact.tooltip.format.html 属性到该文件。

  5. 指定您想要在工具提示中显示为 contact.tooltip.format.html 的值的属性。

    例如,如果您想要显示联系人的电话号码和电子邮件地址,则输入:

    contact.tooltip.format.html=mailto: ${attr:mail} tel: ${attr:telephonenumber}

    有关自定义 imbrand.jar 文件内容的更多信息,参见自定义应用程序 (Java Web Start)

  6. 保存您的更改并关闭文件。

  7. 重新打包 imbrand.jar

修改客户机用户搜索联系人的方式

默认情况下,commonnamecn LDAP 属性用作用户的搜索属性。您可以配置 Instant Messaging 以允许用户使用附加属性进行搜索。此外,如果您的目录已建立索引,允许使用通配符,则可以配置 Instant Messaging 服务器在搜索联系人姓名时允许使用通配符。

Procedure允许用户使用自定义属性进行搜索

  1. 打开 iim.conf

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

  2. 修改 iim_ldap.usergroupbynamesearchfilter 属性。

    此参数指定搜索用户或组时使用的 LDAP 搜索字符串。以标准 LDAP 过滤器语法提供属性值。可对其进行修改以便可进行更复杂的搜索。有关修改搜索字符串的更多信息,参见 Directory Server 文档。

  3. 保存并关闭该文件。

Procedure允许在搜索中使用通配符

  1. 打开 iim.conf

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

  2. iim_ldap.allowwildcardinuid 参数设置为 True

    此参数将决定在进行搜索时,是否应该对用户 ID 启用通配符。大多数目录安装都为“用户 ID”建立索引以只进行精确搜索,故默认值为 False

  3. 确保为“用户 ID”建立索引以用于目录中的子字符串搜索。

    iim_ldap.allowwildcardinuid 参数设置为 True 可能会影响性能,除非为“用户 ID”建立索引以用于目录中的子字符串搜索。有关建立索引的说明,参见目录服务器文档。

管理会议室和新闻频道

管理员可以为最终用户创建会议室和新闻频道。但具有适当权限的最终用户也可进行上述操作。有关添加策略以给予最终用户创建会议室和新闻频道访问权限的更多信息,参见第 17 章,管理 Instant Messaging 和在线状态策略 。默认情况下,创建会议室或新闻频道的最终用户拥有“管理”访问权限,可以管理会议室或新闻频道。

可以通过在 Instant Messenger 中执行下列任务管理会议室和新闻频道。有关执行这些任务的更多信息,参见联机帮助。

修改 Instant Messenger 代理设置

Instant Messaging 消息可包含嵌入的 URL。例如,http://stocks.yahoo.com?id=sunw。如果您使用代理服务器,则需要修改 Java Web Start 配置中的 Instant Messenger 代理设置,以解析这类嵌入的 URL。

如果您的组织有防火墙而您需要通过代理服务器才能将客户机主机连接到 Internet,或者如果 Java Web Start 未配置正确的代理设置,则很可能发生这种情况。

Java Web Start 可通过查询系统或默认的浏览器来自动配置代理设置。不过,如果代理设置使用 JavaScript 文件进行配置,则 Java Web Start 无法自动配置这些设置。

Procedure使用 Java Web Start 手动设置单个 Instant Messenger 客户机的代理设置

完成此过程会在用户的 messenger.properties 文件中保存代理首选项。如果您还配置了 im.jnlp 文件以使用代理,而该代理与用户首选项中的不同,则使用用户的首选项。

  1. 调用 Java Web Start。

  2. 从“文件”菜单中选择“首选项”。

  3. 在“首选项”对话框中选择“手动”选项。

  4. 输入下列详细信息:

    HTTP 代理。输入代理服务器的名称或 IP 地址。

    HTTP 端口。输入代理服务器的端口号。

    无代理主机。输入可以跳过代理服务器直接连接的任何域名。使用逗号分隔多个主机名。

  5. 单击“确定”保存代理设置。

Procedure配置 im.jnlp 中所有 Instant Messaging 客户机连接的代理设置

如果您在 im.jnlp 中设置的代理与用户在线状态文件 (/usr_home/.sunmsgr/messenger.properties ) 中的不同,则使用用户的在线状态。

  1. 在文本编辑器中打开 im.jnlp 资源文件。

  2. 通过添加以下参数指定代理服务器:


    <argument>proxy=proxy-host:proxy-port</argument>

    其中,proxy-host 是代理服务器的全限定域名,proxy-port 是代理服务器侦听收到的请求所使用的端口号。例如, myproxy.siroe.com:8080

  3. 通过添加以下参数指定代理类型:


    <argument>proxy_type=type
    

    其中,type 可为 httphttpssocks 之一。

控制公开的 Messenger 功能集

您可以通过配置 applet 描述符文件中的 Instant Messaging applet 参数来控制公开的 Instant Messenger 功能集。

表 15–12 所示为 applet 描述符文件中的 Instant Messenger applet 参数。还包含这些参数的说明和默认值。

表 15–12 Instant Messenger Applet 参数

参数 

默认值 

说明 

server

127.0.0.1

Instant Messaging 服务器主机和端口。 

debug

FALSE

如果此参数设为 true,则 applet 会记录 java 控制台上执行的所有任务。 

uid

 

此参数用于 SSO。 

token

 

此参数包含 SSO 令牌并用于自动登录。 

secure

FALSE

表示 Instant Messenger 运行于 SRA 模式下。它显示安全指示符。 

usessl

FALSE

指示 Instant Messenger 连接到多路复用器时使用传统 SSL。 

allow_alert_only

FALSE

指示 Instant Messenger 让最终用户不显示联系人列表和新闻频道。 

此参数以 CHATPOPUP 风格使用。

allow_attachments

TRUE

允许文件附件和传送。 

enable_moderator

TRUE

如果设为 true,则启用有主持人主持的会议的功能。 

messenger_bean

 

此参数包含要使用的 messenger bean 的列表。您可以输入多个工厂类名称,以逗号分隔。 

domain

null 

此参数用于多个域的 Sun Java System Access Manager 部署。此参数的值应为此最终用户所在组织的逻辑域名。 

gateway_url

null 

此参数包含门户 SRA 的网关组件的 URL。

存储在最终用户系统中的 Instant Messenger 数据

Instant Messenger 在最终用户的系统中缓存限量的信息用于自动登录。这些信息位于:

home-directory/.sunmsgr

home-directory 是最终用户的主目录。最终用户的主目录可从 Java 系统属性中的 user.home 参数获取。

表 15–13 显示包含缓存数据的目录和文件。还包含这些文件和目录的说明。

表 15–13 缓存数据目录和文件

文件/目录名称 

类型 

说明 

.sunmsgr/messenger.properties

文件 

包含自动登录属性的文件 

.sunmsgr/user-domain

目录 

包含特定 {登录名, 域名} 组合专有数据的目录。 

home-directory/.sunmsgr/ user-domain/messenger.properties

文件 

此文件包含特定 user-domain 专有的自动登录选项。未使用此文件。

home-directory/.sunmsgr/user-domain /messages/

目录 

此目录包含缓存消息。未使用此目录。 

表 15–14 显示 Instant Messaging 的自动登录属性。还包含这些属性的说明和默认值。

表 15–14 自动登录属性

参数 

默认值 

说明 

client.password.encoded

false 

决定是否对用户密码进行编码(以用于 SSO)。如果此参数的值为 true,则编码密码将作为 net.password 参数的值存储。

net.nms

127.0.0.1

Instant Messaging 服务器主机名和端口。 

net.nmsn

(其中结尾的 n 是用来区别条目的数字)

 

辅助服务器的主机名和端口号。 

net.user

 

默认用户 ID。 

net.password

 

启用自动登录的已编码用户密码。 

重新部署资源文件

如果您使用的是 Sun Java System Application Server 或 Sun Java System Web Server,并且在因为站点更改或自定义而运行 configure 实用程序后对资源文件进行了更改,则需要将这些文件重新部署到 Web 容器中。您可能还需要在升级 Instant Messaging 后重新部署资源文件。

Procedure重新部署资源文件到 Sun Java System Application Server 或 Sun Java System Web Server

  1. 运行 iwadmin 命令。

    im-svr-base/html/iwadmin

    其中,im-svr-base 是 Instant Messaging 的安装目录。

    运行 iwadmin 以更新 Instant Messenger .jar 文件。不过,iwadmin 不会更新或重新初始化 Instant Messenger 下载页面。

    有关附加信息,参见 Web 容器的文档。另请参见 iwadmin man 页面以获得附加配置选项。

  2. (可选的)升级后,如果您想要重新初始化 Instant Messenger 下载页面,可再次运行 configure 实用程序。

    重新初始化下载页面会覆盖所有自定义内容。如果您选择不重新初始化下载页面,请明确下载页面上的产品版本和 Instant Messenger .jar 文件中的产品版本可能会不同。

    有关更多信息,参见第 1 章,安装后配置 Instant Messaging

第 16 章 使用日历弹出提示

Instant Messaging 与 Sun JavaTM System Calendar Server 集成在一起,为 Instant Messenger 用户提供日历事件和任务的自动弹出提示。

本部分包括以下主题:

弹出提示概述

本节中的以下主题包含关于“日历”弹出提示的信息:

弹出提示操作

对于用户日历中即将发生的事件和任务,用户可收到相应的 Instant Messenger 弹出提示。要启用这些弹出提示,必须具备以下条件:

启用弹出后,当事件或任务来临时,“事件通知系统”中设置的报警会导致“日历服务器”发送一封电子邮件通知,并让 Instant Messaging 显示一个弹出提示。

弹出提示体系结构流程

如果已配置,Instant Messaging 弹出提示会遵循以下体系结构流程:

  1. Instant Messaging JMS 订户在“事件通知服务”(ENS) 中订阅“日历”服务器事件和通知。

  2. “日历”服务器向 ENS 发布 text/xmltext/calendar 格式的事件或任务通知。

  3. Instant Messaging JMS 订户收到日历事件或任务通知,然后生成 text/calendar 格式的消息。

  4. 如果最终用户处于联机状态,则 Instant Messaging 服务器将向日历所有者发送此消息。

  5. 如果有可用的收件人,则 Instant Messenger 会基于此消息在最终用户的桌面上生成一个 HTML 弹出提示。

    如果没有收件人,则 Instant Messaging 服务器会丢弃此消息。

iim.conf 日历弹出配置参数

当您安装 Instant Messaging 时,“日历”代理使用的几个配置参数会默认添加到 iim.conf 中。您还可以在运行 configure 实用程序时启用“日历”代理并提供相关的配置信息。不过,您可能想要手动配置弹出,例如,当您自定义了 Instant Messenger 的资源文件时。如果您重新运行 configure,则您将需要重新部署资源文件。如果您选择手动配置“日历”弹出的 Instant Messaging 服务器而不是运行 configure 实用程序,则需要提供这些参数的值。有关 configure 实用程序的信息,参见第 1 章,安装后配置 Instant Messaging

表 16–1 列出配置 Instant Messaging 服务器和“日历”代理以便使用“日历”弹出时将会用到的配置参数。

表 16–1 配置日历弹出的 iim.conf 参数

iim.conf 中的参数或部分

说明和相应的值 

JMS 用户部分

jms.consumers

报警名称。 

将此值设置为: 

cal_reminder

jms.consumer.cal_reminder.destination

报警的目的地。 

它必须与 ics.conf 文件中 caldb.serveralarms.url 配置参数的值相同。例如,

enp:///ics/customalarm

jms.consumer.cal_reminder.provider

提供者名称。 

设置为 ens

它必须与“JMS 提供者”部分中的 jms.providers 参数中的名称相同。

jms.consumer.cal_reminder.type

要设置的报警类型。将此值设置为: 

topic

jms.consumer.cal_reminder.param

报警参数。按以下形式设置此值,包括引号: 

"eventtype=calendar.alarm"

jms.consumer.cal_reminder.factory

针对新的日历提示消息而自行注册的侦听器。 

将此值设置为: 

com.iplanet.im.server.JMSCalendarMessageListener

在一行中输入该值。 

JMS 提供者部分

jms.providers

提供者名称。 

将值设置为 ens

它必须与“JMS 用户部分”列出的 jms.consumer.cal_reminder.provider 参数的值相同。

jms.provider.ens.broker

ENS 的主机名和 ENS 侦听收到的请求所使用的端口号。 

设置为 ics.conf 文件中的参数 service.ens.port 指定的端口。默认值为 57997。

例如: 

jms.provider.ens.broker=cal.example.com:57997

jms.provider.ens.factory

用于创建主题连接对象的工厂类。 

将此值设置为: 

com.iplanet.ens.jms.EnsTopicConnFactory

Instant Messaging 一般参数

iim_agent.enable

启用 Instant Messaging 的代理。默认情况下,此参数设置为 False

按以下形式设置此值,包括引号: 

iim_agent.enable="true"

iim_agent.agent-calendar.enable

加载可启用“日历”代理的组件。 

按以下形式设置此值,包括引号: 

iim_agent.agent-calendar.enable="true"

agent-calendar.jid

“日历”代理的 JID。

按以下形式设置此值: 

agent-calendar.jid=calimbot.server.domain

agent-calendar.password

将此参数设置为您想要“日历”代理用于连接到 Instant Messaging 服务器的密码。 

按以下形式设置此值: 

agent-calendar.password=password

iim_server.components

按以下形式设置此值: 

iim_server.components=agent-calendar

配置 Instant Messaging 弹出

本节包括以下配置说明:

Procedure使用 configure 实用程序配置日历弹出的 Instant Messaging 服务器

  1. 运行 configure

    有关 configure 实用程序的更多信息,参见完成配置核对表

  2. 在“日历代理配置”屏幕上,选择“启用日历代理”复选框。

  3. 输入“通知服务器”主机名和端口号。

    使用与“日历服务器”上 ics.conf 文件中的 service.ens.port 参数指定的端口号相同的端口号。

    您提供的值将被合并,并存储为 iim.conf 中的 jms.provider.ens.broker 参数的值。例如,如果您输入主机名 localhost 和端口号 57997,则 jms.provider.ens.broker 参数将设置如下:


    jms.provider.ens.broker=localhost:57997
  4. 输入“日历警告 URL”。

    此 URL 是报警的目的地。例如:


    enp:///ics/customalarm

    使用与“日历服务器”上 ics.conf 文件中的 caldb.serveralarms.url 参数指定的 URL 相同的 URL。

    您提供的值存储为 iim.confjms.consumer.cal_reminder.destination 参数的值。

  5. 单击“下一步”继续配置。

    有关 configure 实用程序的更多信息,参见第 1 章,安装后配置 Instant Messaging

Procedure手动配置日历弹出的 Instant Messaging 服务器

开始之前

收集表 16–1 中的信息。

  1. 表 16–1 中所示,编辑 iim.conf 文件中的一个或多个参数。

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

    所显示的参数值假定您需要事件和任务的弹出提示。如果 iim.conf 中没有这些参数,则添加它们。

  2. 使用 imadmin 启动“日历”代理。


    imadmin start agent-calendar
    

    imadmin 命令行实用程序位于以下目录:

    im-svr-base/sbin

    其中,im-svr-base 是 Instant Messaging 的安装目录。

Procedure配置弹出的日历服务器

  1. 以有权更改此配置的管理员身份登录到“日历”服务器主机。

  2. 转至 cal-svr-base/SUNWics5/cal/config 目录。

    其中,cal-svr-base 是“日历服务器”的安装目录。

  3. 通过复制和重命名旧的 ics.conf 文件将其保存。

  4. 确认下表中所示的参数拥有所示的值。如果没有,则您需要修改它们。

    参数 

    说明和默认值 

    caldb.serveralarms

    使日历报警排成队列。默认值为 "1"(启用)。

    caldb.serveralarms.contenttype

    报警内容的输出格式。默认值为 "text/xml"

    caldb.serveralarms.dispatch

    使日历报警得以分发。默认值为 "yes"

    caldb.serveralarms.dispatchtype

    要分发的服务器报警类型。默认值为 "ens"

    caldb.serveralarms.url

    这是检索报警内容的报警 URL。默认值为 "enp:///ics/customalarm"

  5. 保存 ics.conf 文件。

  6. 重新启动“日历”服务器。

    cal-svr-base /SUNWics5/cal/sbin/start-cal

    其中,cal-svr-base 是 Sun Java System Calendar Server 的安装目录。

Procedure配置日历弹出的 Instant Messenger

  1. 在 Instant Messenger 主窗口中,选择“工具”->“设置”。

  2. 在“设置”窗口中,单击“警报”选项卡。

  3. 选中“显示日历提醒”选项。

  4. 单击“确定”。

    现在,用户可以在其联机时通过 Instant Messenger 接收“日历”弹出。

在服务器池中配置日历弹出

要在服务器池部署中将“日历”弹出配置为起作用,您只需在该池中配置一个服务器的“日历”代理即可。弹出将发送到该池中每个配置过的“日历”代理。

管理日历代理

“日历”代理是一个 Instant Messaging 组件,它为“日历”和 Instant Messaging 用户提供弹出功能。此外,使用 Instant Messaging 提供的工具,可启动、停止、重新启动“日历”代理或检查其状态,并可通过日志文件监视其活动。有关管理“日历”代理组件的信息,参见停止、启动、刷新和检查 Instant Messaging 组件。另请参见第 13 章,管理 Instant Messaging 的日志记录以获得关于“日历”代理日志的信息。本节说明启用和禁用 Instant Messaging 代理。

Procedure启用和禁用 Instant Messaging 代理

  1. 打开 iim.conf

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

  2. iim_agent.enable 参数设为 true

    iim_agent.enable="true"

  3. 保存并关闭 iim.conf

  4. 刷新服务器。


    imadmin refresh server
    

第 17 章 管理 Instant Messaging 和在线状态策略

Instant Messaging 提供了各种功能,如聊天、开会、轮询、在线状态访问等。策略说明一组可与这些功能关联的访问控制权限。反过来,又可以根据组织需要将最终用户和组分配给各策略。

本章说明如何定义和使用策略来管理最终用户和管理员对 Instant Messaging 服务器功能和权限拥有的访问权限:

保密性、安全性和站点策略概述

Instant Messaging 提供对 Instant Messaging 功能的控制访问和保留最终用户保密性的功能。

站点策略

站点策略指定最终用户对 Instant Messaging 中特定功能的访问。站点策略指定以下功能:

Instant Messaging 管理员拥有所有 Instant Messaging 功能的访问权限。管理员对所有会议室和新闻频道拥有 MANAGE 访问权限,可以查看任何最终用户的在线状态信息,并且可以查看和修改任何最终用户的“联系人列表”和“Instant Messenger 设置”等属性。站点策略设置不影响管理员的权限。

默认情况下,最终用户有权访问其他最终用户的在线状态、发送警报给最终用户和保存属性到服务器上。大多数部署中的默认值都一样。当 Instant Messaging 专用于弹出功能时,需要更改这些默认值。

当 Instant Messaging 专用于弹出功能时,最终用户不能访问在线状态信息、聊天和新闻功能。


注 –

虽然某些权限可以设置为全局适用,但管理员也可以定义这些权限的例外情况。例如,管理员可以拒绝某些用于选择最终用户、角色或组的默认权限。


会议室和新闻频道访问控制

最终用户对会议室和新闻频道可以具有下列访问权限:

拥有 MANAGE 权限的最终用户可以为所有其他最终用户设置默认的权限级别。这些最终用户还可以定义例外规则,对特定最终用户或组授予不同于默认访问级别权限的访问级别。


注 –

设置 WRITE 权限,同时授予最终用户 READ 权限。


用户保密性

最终用户可以指定是否允许其他最终用户查看其在线状态。默认情况下,所有最终用户均可访问其他最终用户的在线状态信息。最终用户也可以设置例外情况,拒绝特定最终用户和组访问此信息。

如果最终用户拒绝其他最终用户访问其在线状态,则该最终用户在其他最终用户联系人列表中的可用性状态将显示为脱机。无法发送警报或聊天邀请到在线状态为脱机的最终用户。

可使用 Instant Messenger 中的“用户设置”窗口配置用户保密性。有关配置用户保密性的更多信息,参见Instant Messenger 联机帮助

最终用户和管理员权限的控制方法

使用 Instant Messaging 服务器的不同站点在启用和限制最终用户对 Instant Messaging 服务的访问类型方面具有不同的需要。控制最终用户和管理员 Instant Messaging 服务器功能及权限的过程称为策略管理。策略管理有两种方法:通过访问控制文件或通过 Sun JavaTM System Access Manager。

如果您的部署未包括 Sun Java System Access Manager,则您必须使用访问控制文件方法来管理策略。如果您将 Sun Java System Access Manager 与 Instant Messaging 服务器一起使用,并且已经安装 Instant Messaging 和在线状态服务组件,则您可以使用任一策略管理方法。使用 Sun Java System Access Manager 管理策略是一种更为全面的方法。此方法的优点之一是可以将所有最终用户信息保存在目录中。

设置策略管理方法

在选择管理策略所用方法时,还必须选择这些方法的保存位置。通过编辑 iim.conf 文件和将 iim.policy.modules 参数设为identity(用于 Access Manager 方法)或 iim_ldap(用于访问控制文件方法,即默认方法),可选择管理策略的方法。

您可以按照以下步骤设置策略管理方法。

Procedure设置策略管理方法

  1. 打开 iim.conf

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

  2. 通过将 iim.policy.modules 参数设置为以下值之一进行编辑:

    • iim_ldap(默认值,访问控制文件方法)

    • identity(Access Manager 方法)

    如果您选择 identity,则可以运行 imadmin assign_services,将 Instant Messaging 和在线状态服务分配给现有用户。

  3. 编辑 iim.userprops.store 参数并将其设置为下列某个值:

    • ldap (在 LDAP 中存储用户属性。)

      如果您选择 ldap,则可以运行 imadmin assign_services,将存储用户属性的所需对象类添加到目录中的用户条目。

    • file(默认值,在文件中存储用户属性。)

  4. 保存并关闭 iim.conf

  5. 刷新配置。

策略配置参数

表 17–1 列出并说明 iim.conf 中可用的参数,它们与可在 Instant Messaging 部署中运行的 Sun Java System Access Manager 增加的角色相关。

表 17–1 iim.conf 中与 Access Manager 相关的参数

参数名称 

用途 

值 

iim.policy.modules

表示 Sun Java System Access Manager 还是目录用于策略存储。 

iim_ldap(默认值)

identity

iim.userprops.store

表示用户属性位于用户属性文件中还是存储在 LDAP 中。仅当安装了在线状态和 Instant Messaging 服务的服务定义时才有意义。 

file(如果您运行 configure 实用程序时没有选择将 Access Manager 用于策略,此即为默认值。)

ldap(如果您运行 configure实用程序时选择将 Access Manager 用于策略,此即为默认值。)

使用访问控制文件的管理策略

通过编辑访问控制文件,可以控制下列最终用户权限:

默认情况下,最终用户具有访问其他最终用户在线状态、向其他最终用户发送警报和将属性保存在服务器上的权限。对于大多数部署来说,不需要更改默认值。

虽然某些权限可以设置为全局适用,但管理员也可以定义这些权限的例外情况。例如,管理员可以拒绝某些用于选择最终用户或组的默认权限。

此外,如果您通过部署中的访问控制文件强制执行策略,则同一个服务器池中,位于各个服务器中的这些文件必须相同。

表 17–2 列出 Instant Messaging 的全局访问控制文件以及这些文件提供给最终用户的权限。

表 17–2 访问控制文件

ACL 文件 

权限 

sysSaveUserSettings.acl

定义可以和不可以更改自己首选项的用户。没有此权限的用户无法进行添加联系人、创建会议等操作。 

sysTopicsAdd.acl

定义可以和不可以创建新闻频道的用户。 

sysRoomsAdd.acl

定义可以和不可以创建会议室的用户。 

sysSendAlerts.acl

定义可以和不可以发送警报的用户。禁用 sysSendAlerts 时会同时禁用轮询。

sysWatch.acl

定义可以和不可以查看其他最终用户所做更改的用户。为没有此权限(仅允许“会议和新闻频道订阅和非订阅”)的最终用户显示 Instant Messenger 窗口。 

sysAdmin.acl

仅为管理员保留。此文件为所有最终用户设置所有 Instant Messaging 功能的管理权限。此权限将覆盖所有其他权限,并可供管理员创建和管理所有会议室和新闻频道,以及访问最终用户在线状态信息、设置和属性。 

Procedure更改访问控制文件中的最终用户权限

  1. 更改为 im-cfg-base/acls 目录。

    有关查找 im-cfg-base 的信息,参见Instant Messaging 服务器目录结构

  2. 编辑适当的访问控制文件。

    例如:


    vi sysTopicsAdd.acl
    

    有关访问控制文件列表,参见表 17–2

  3. 保存更改。

  4. 最终用户需要刷新 Instant Messenger 窗口才能查看更改。

在服务器池中使用访问控制文件

如果您通过部署中的访问控制文件强制执行策略,则同一个服务器池中,位于各个服务器中的这些文件的内容必须相同。要确保这一点,请从其中一个服务器中将文件复制到池中的其他各节点。有关查找这些文件的信息,参见访问控制文件位置

访问控制文件位置

访问控制文件的位置是 im-cfg-base/acls。其中,im-cfg-base 是配置目录。关于配置目录默认位置的信息,参见Instant Messaging 服务器目录结构

访问控制文件格式

访问控制文件包含一系列定义权限的条目。所有条目都以下列标记开始:

标记后跟有冒号 (:)。如果是默认标记,后面跟有 truefalse

最终用户和组标记后跟有最终用户或组名称。

通过将多个最终用户 (u) 和组 (g) 串联,可以指定多个最终用户和组。

d: 标记必须是访问控制文件中的最后一个条目。服务器将忽略 d: 标记之后的所有条目。如果 d: 标记为 true,则文件中的所有其他条目均为冗余,并且会被忽略。不能将访问控制文件中的 d: 标记设置为 true,同时选择性地禁用最终用户的此权限。如果默认值设置为 false,则只有在文件中指定的最终用户和组拥有该权限。

以下是 ACL 文件中用于新安装的默认 d: 标记条目:


注意 – 注意 –

在未来的产品版本中,所有访问控制文件的格式可能会发生更改,并且有一些可能不再出现。



注 –

禁用 sysSendAlerts 时会同时禁用轮询。



示例 17–1 sysTopicsAdd.acl 文件

在以下示例中,sysTopicsAdd.acl 文件的 d: 标记条目为 false。因此,d: 条目前的最终用户和组(即 user1user2sales 组)具有“添加”和“删除”新闻频道的权限。


# Example sysTopicsAdd.acl file
u:user1
u:user2
g:cn=sales,ou=groups,o=siroe
d:False

使用 Sun Java System Access Manager 管理策略

Sun Java System Access Manager 中的 Instant Messaging 和在线状态服务提供了另一种控制最终用户和管理员权限的方式。每种服务具有三种属性类型:动态、用户和策略。策略属性是用于设置权限的属性类型。

将规则添加到在 Access Manager 中创建的策略后,策略属性将成为规则的一部分,从而可允许或拒绝管理员和最终用户参予各种 Instant Messaging 功能,如接收其他用户的轮询消息。

当 Instant Messaging 服务器与 Sun Java System Access Manager 一起安装时,会创建几个示例策略和角色。有关策略和角色的详细信息,参见 Sun Java System Access Manager Getting Started Guide Sun Java System Access Manager 管理指南

您可以创建新策略,并根据需要将这些策略分配给角色、组、组织或最终用户,以与您的站点的需求相匹配。

将 Instant Messaging 服务或在线状态服务分配给最终用户后,会同时应用动态属性和用户属性。动态属性可分配给 Access Manager 配置的角色或组织。

将角色分配给最终用户或在组织中创建了最终用户时,动态属性将成为最终用户的特征。用户属性会直接分配给每位最终用户,它们并非继承自角色或组织,并且每位最终用户的属性均有所不同。最终用户登录后,将依据分配给他们的角色和策略应用方式,取得适用他们的所有属性。

将在线状态服务和 Instant Messaging 服务分配给最终用户后,动态、用户或策略属性将与这些最终用户相关联。

Instant Messaging 服务属性

表 17–3 列出每项服务的策略、动态和用户属性。

表 17–3 Instant Messaging 的 Access Manager 属性

服务 

策略属性 

动态属性 

用户属性 

sunIM 

sunIMAllowChat

sunIMAllowChatInvite

sunIMAllowForumAccess

sunIMAllowForumManage

sunIMAllowForumModerate

sunIMAllowAlertsAccess

sunIMAllowAlertsSend

sunIMAllowNewsAccess

sunIMAllowNewsManage

sunIMAllowFileTransfer

sunIMAllowContactListManage

sunIMAllowUserSettings

sunIMAllowPollingAccess

sunIMAllowPollingSend

sunIMProperties

sunIMRoster

sunIMConferenceRoster

sunIMNewsRoster

sunIMPrivateSettings

sunIMUserProperties

sunIMUserRoster

sunIMUserConferenceRoster

sunIMUserNewsRoster

sunIMUserPrivateSettings

sunPresence 

sunPresenceAllowAccess

sunPresenceAllowPublish

sunPresenceAllowManage

sunPresenceDevices

sunPresencePrivacy

sunPresenceEntityDevices

sunPresenceUserPrivacy

对于上表中的每个属性,Access Manager 管理控制台中均显示相应的标签。表 17–4 列出并说明策略属性,而表 17–5 列出并说明动态和用户属性。

表 17–4 Instant Messaging 的 Access Manager 策略属性

策略属性 

管理控制台标签 

属性说明 

sunIMAllowChat

聊天的能力 

最终用户可以应邀加入聊天室并使用一般聊天功能 

sunIMAllowChatInvite

邀请其他人聊天的能力 

最终用户可以邀请其他用户聊天 

sunIMAllowForumAccess

加入会议室的能力 

Instant Messenger 中显示有一个会议选项卡,允许最终用户加入会议室 

sunIMAllowForumManage

管理会议室的能力 

最终用户可以创建、删除和管理会议室 

sunIMAllowForumModerate

主持会议室的能力 

最终用户可以成为会议主持人 

sunIMAllowAlertsAccess

接收警报的能力 

最终用户可以接收其他用户的警报 

sunIMAllowAlertsSend

发送警报的能力 

最终用户可以向其他用户发送警报 

sunIMAllowNewsAccess

阅读新闻的能力 

Instant Messenger 中显示有一个“新闻”按钮,最终用户可用它列出新闻频道以便接收和发送新闻消息 

sunIMAllowNewsManage

管理新闻频道的能力 

最终用户可以管理新闻频道,并可为新闻频道创建、删除和分配权限 

sunIMAllowFileTransfer

交换文件的能力 

最终用户可以为警报、聊天和新闻消息添加附件 

sunIMAllowContactListManage

管理联系人列表的能力 

最终用户可以管理自己的联系人列表;可以向列表添加用户或组,也可从中删除用户或组;可以重新命名联系人列表中的文件夹 

sunIMAllowUserSettings

管理 Messenger 的能力 

Instant Messenger 中显示有一个“设置”按钮,最终用户可用它更改自己的 Instant Messenger 设置 

sunIMAllowPollingAccess

接收轮询的能力 

最终用户可以接收其他用户发送的轮询消息,并可回应轮询 

sunIMAllowPollingSend

发送轮询的能力 

Instant Messenger 中显示有一个“轮询”按钮,最终用户可用它向其他人发送轮询消息并接收响应 

sunPresenceAllowAccess

访问他人在线状态的能力 

最终用户可以查看其他用户的在线状态。联系人列表除显示联系人之外,还通过更改状态图标反映联系人的在线状态变化 

sunPresenceAllowPublish

发布在线状态的能力 

最终用户可以通过单击选择他们的状态(联机、脱机、忙等),以便其他用户查看 

sunPresenceAllowManage

管理在线状态访问的能力 

Instant Messenger 设置中显示有一个“访问”选项卡,最终用户可用它设置自己的默认在线状态访问、允许在线状态或拒绝在线状态列表 

直接修改属性

最终用户可以登录到 Access Manager 管理控制台,并查看 Instant Messaging 和在线状态服务属性中的属性值。最终用户可以更改已定义为可修改的属性。默认情况下,Instant Messaging 服务中的属性均不可修改,也不建议允许最终用户更改它们。但是,从系统管理的观点来看,直接处理属性非常有用。

例如,由于角色不会影响某些系统属性(如设置会议订阅),因此系统管理员可能需要通过从其他最终用户(如从会议登记表)那里复制属性值来修改这些属性的值,或者直接对其进行修改。这些属性在表 17–5 中列出。

最终用户可通过 Sun Java System Access Manager 管理控制台设置用户属性。动态属性由管理员设置。设置的动态属性值将覆盖对应的用户属性值或与之合并。

对应的动态属性和用户属性特性将影响冲突与补充信息的解决方式。例如,两个来源(动态和用户)的会议订阅会互相补充;因此,订阅将合并。两种属性不会互相覆盖。

表 17–5 Instant Messaging 的 Access Manager 用户和动态属性

管理控制台标签 

用户属性 

动态属性 

属性说明 

冲突解决方案 

Messenger 设置 

sunIMUserProperties

sunIMProperties

包含 Instant Messenger 的所有属性,且对应于基于文件的用户属性存储器中的 user.properties 文件

合并。除非特定的属性具有来自用户和动态属性的值,否则动态属性会进行覆盖。 

订阅 

sunIMUserRoster

sunIMRoster

包含订阅信息(用户联系人列表登记表) 

合并。如果用户和动态属性中均存在 Jabber 标识符,则将采用来自用户属性的昵称,组将会是来自用户和动态属性的所有组的集合,订阅值将会是来自用户和动态值的最大值。 

会议订阅 

sunIMUserConferenceRoster

sunIMConferenceRoster

包含会议室订阅信息 

合并。合并动态和用户订阅,并删除重复的内容。 

新闻频道订阅 

sunIMUserNewsRoster

sunIMNewsRoster

包含新闻频道订阅信息 

合并。合并动态和用户订阅,并删除重复的内容。 

在线状态代理 

sunPresenceEntityDevices

sunPresenceDevices

本版本中未使用(供将来使用) 

使用的是动态信息。 

保密性 

sunPresenceUserPrivacy

sunPresencePrivacy

对应于 Instant Messenger 中的保密性设置 

合并。如果有冲突,则使用动态值。 

Instant Messenger 首选项 

sunIMUserPrivateSettings

sunIMPrivateSettings

此处存储 Messenger 设置中未存储的保密性首选项 

合并。 

预定义的 Instant Messaging 和在线状态策略

表 17–6 列出并说明安装 Instant Messaging 服务组件时 Sun Java System Access Manager 中所创建的七个策略和角色示例。您可以根据要为每个用户提供的访问控制,将最终用户添加到不同角色中。

典型站点可能会将“IM 正规用户”角色(接收默认的 Instant Messaging 和在线状态访问的角色)分配给仅使用 Instant Messenger 但没有管理 Instant Messaging 策略责任的最终用户。同一个站点可能会将“IM 管理员”角色(与管理 Instant Messaging 和在线状态服务的能力相关的角色)分配给拥有管理 Instant Messaging 策略完全责任的特定最终用户。表 17–7 列出策略属性中的默认权限分配。如果未选中规则中的操作,则值允许拒绝将与策略无关,也不会影响该属性。

表 17–6 Sun Java System Access Manager 的默认策略和角色

策略 

应用策略的角色 

应用策略的服务 

策略说明 

默认的 Instant Messaging 和在线状态访问 

IM 正规用户 

sunIM、sunPresence 

正规 Instant Messaging 最终用户应具有的默认访问权限。 

管理 Instant Messaging 和在线状态服务的能力 

IM 管理员 

sunIM、sunPresence 

Instant Messaging 管理员拥有的访问权限,即对所有 Instant Messaging 功能的访问权限。 

管理 Instant Messaging 新闻频道的能力 

IM 新闻管理员 

sunIM 

最终用户可通过创建、删除等操作管理新闻频道。 

管理 Instant Messaging 会议室的能力 

IM 会议室管理员 

sunIM 

最终用户可通过创建、删除等操作管理会议室。 

更改自己的 Instant Messaging 用户设置的能力 

IM 允许用户设置角色 

sunIM 

最终用户可通过修改 Instant Messenger 的“设置”对话框中的值来编辑设置。 

发送 Instant Messaging 警报的能力 

IM 允许发送警报角色 

sunIM 

最终用户可在 Instant Messenger 中发送警报。 

查看其他 Instant Messaging 最终用户更改的能力 

IM 允许查看更改角色 

sunIM 

最终用户可以访问其他 Instant Messaging 最终用户的在线状态。 

表 17–7 默认策略分配
 

策略 

属性 

默认访问 

可管理 Instant Messaging 和在线状态服务 

可管理新闻频道 

可管理会议室 

可更改自身的最终用户设置 

可发送警报 

可查看其他用户变化 

sunIMAllowChat

允许 

允许 

         

sunIMAllowChatInvite

允许 

允许 

         

sunIMAllowForumAccess

允许 

允许 

 

允许 

     

sunIMAllowForum Manage

拒绝 

允许 

 

允许 

     

sunIMAllowForum Moderate

拒绝 

允许 

 

允许 

     

sunIMAllowAlertsAccess

允许 

允许 

     

允许 

 

sunIMAllowAlertsSend

允许 

允许 

     

允许 

 

sunIMAllowNewsAccess

允许 

允许 

允许 

       

sunIMAllowNewsManage

拒绝 

允许 

允许 

       

sunIMAllowFileTransfer

允许 

允许 

         

sunIMAllowContactList Manage

允许 

允许 

         

sunIMAllowUserSettings

允许 

允许 

   

允许 

   

sunIMAllowPollingAccess

允许 

允许 

         

sunIMAllowPollingSend

允许 

允许 

         

sunPresenceAllowManage

允许 

允许 

         

sunPresenceAllowAccess

允许 

允许 

       

允许 

sunPresenceAllowPublish

允许 

允许 

         

创建新的 Instant Messaging 策略

您可以创建新策略以满足站点的特殊需要。

Procedure创建新策略

  1. 登录到 Access Manager 管理控制台,即 http://hostname :port/amconsole

    例如:

    http://imserver.company22.example.com:80/amconsole

  2. 选择“身份管理”选项卡。

  3. 在导航窗格(方框左下角)的“查看”下拉列表中选择“策略”。

  4. 单击“新建”。

    数据窗格(方框右下角)中会显示“新建策略”页。

  5. 在“策略类型”中选择“常规”。

  6. 在“名称”字段中输入策略说明。

    例如:


    执行 IM 任务的能力。
    
  7. 单击“创建”。

    Access Manager 管理控制台会在导航窗格的策略列表中显示新策略的名称,并打开新策略的“编辑”页。

  8. 在“编辑”页中,从“查看”下拉列表中选择“规则”。

    “编辑”页内会显示“规则名称服务资源”面板。

  9. 单击“添加”。

    显示“添加规则”页。

  10. 选择适用的“服务”。

    您可以选择 Instant Messaging 服务或在线状态服务。

    每种服务均可让您允许或拒绝最终用户执行特定操作。例如,“聊天能力”是 Instant Messaging 服务专用的操作,而“访问他人在线状态的能力”是在线状态服务专用的操作。

  11. 在“规则名称”字段中输入规则的说明。

    例如:


    Rule 1
    
  12. 输入相应的“资源名称”。

    输入:

    适用于 Instant Messaging 服务的 IMResource

    适用于在线状态服务的 PresenceResource

  13. 选择要应用的操作。

  14. 选择各个操作的值。

    您可以选择“允许”或“拒绝”。

  15. 单击“创建”。

    建议的规则会显示在该策略保存的规则列表中。

  16. 单击“保存”。

    建议的规则会变成一个保存的规则。

  17. 如果要为该策略应用任何附加规则,请重复步骤 9 至 16。

将策略分配给角色、组、组织或用户

您可以将策略分配给角色、组、组织或用户。其中包括默认策略或安装 Instant Messaging 后创建的策略。

Procedure分配策略

  1. 登录到 Access Manager 管理控制台,即 http://hostname :port/amconsole

    例如:

    http://imserver.company22.example.com:80/amconsole

  2. 选择“身份管理”选项卡。

  3. 在导航窗格(方框左下角)的“查看”下拉列表中选择“策略”。

  4. 单击您想要分配的策略名称旁边的箭头。

    数据窗格(方框右下角)中会显示该策略的“编辑”页。

  5. 在“编辑”页中,从“查看”下拉列表中选择“主题”。

  6. 单击“添加”。

    显示“添加主题”页,其中会列出可能的主题类型:

    • Access Manager 角色

    • LDAP 组

    • LDAP 角色

    • LDAP 用户

    • 组织

  7. 选择与该策略相匹配的主题类型。

    例如“组织”。

  8. 单击“下一步”。

  9. 在“名称”字段中,输入主题的说明。

  10. (可选的)选中“独占”复选框。

    默认设置没有选中“独占”复选框,这意味着策略会应用于该主题的所有成员。

    选中“独占”复选框,将策略应用到非该主题的成员。

  11. 在“可用”字段中,搜索您要添加到主题的条目。

    1. 为要搜索的条目输入搜索条件。

      默认搜索条件为 *,可显示该主题类型的所有主题。

    2. 单击“搜索”。

    3. 在“可用”文本框中突出显示打算添加到“选定”文本框中的条目。

    4. 单击适用的“添加”或“全部添加”。

    5. 重复步骤 a 至 d,直到将所有想要的名称添加到“选定”文本框。

  12. 单击“创建”。

    建议的主题会显示在该策略建议的主题列表中。

  13. 单击“保存”。

    建议的主题会变成一个保存的主题。

  14. 如果要为该策略添加任何附加主题,请重复步骤 6 至 13。

使用 Access Manager 创建新的子组织

使用 Sun Java System Access Manager 创建子组织这一能力,可用于在 Instant Messaging 服务器内创建组织性独立的人员。每个子组织可以映射到一个不同的 DNS 域。一个子组织中的最终用户与另一个子组织中的最终用户完全隔离。以下过程说明创建一个新的 Instant Messaging 子组织的最少步骤。

Procedure创建新的子组织

  1. 登录到 Access Manager 管理控制台,即 http://hostname :port/amconsole

    例如:

    http://imserver.company22.example.com:80/amconsole

  2. 选择“身份管理”选项卡。

  3. 创建新组织:

    1. 在导航窗格(方框左下角)的“查看”下拉列表中选择“组织”。

    2. 单击“新建”。

      数据窗格(方框右下角)中会显示“新建组织”页。

    3. 输入一个子组织名称。

      例如:


      sub1
      
    4. 输入一个域名。

      例如:


      sub1.company22.example.com
      
    5. 单击“创建”。

  4. 为新创建的子组织注册服务:

    1. 在导航窗格中单击新的子组织的名称。

      例如,单击 sub1。请确保单击名称,而不是右边的属性箭头。

    2. 在导航窗格的“查看”下拉列表中选择“服务”。

    3. 单击“注册”。

      数据窗格中会显示“注册服务”页。

    4. 在“验证”标题下选择下列服务:

      • 核心

      • LDAP

    5. 在“Instant Messaging 配置”标题下选择以下服务:

      • Instant Messaging 服务

      • 在线状态服务

    6. 单击“注册”。

      导航窗格中会显示为此子组织新选择的服务。

  5. 为新选择的服务创建服务模板:

    1. 在导航窗格中,单击服务的属性箭头(从“核心”服务开始)。

      创建服务模板页显示在数据窗格中。

    2. 在数据窗格中,单击“创建”。

      页面会显示您选择显示的服务的模板选项列表。

      即使您不想修改模板选项,也应该针对每项服务单击“创建”。

    3. 按下列所述修改每项服务的服务模板选项:

      • 核心: 通常无需修改任何选项。

      • LDAP:将新子组织的前缀添加到开始用户搜索的 DN 字段。

        添加前缀后,最终的 DN 应为以下格式:

        o=sub1,dc=company22,dc=example,dc=com

        超级用户绑定密码超级用户绑定密码(确认)字段中输入 LDAP 密码。

      • Instant Messaging 服务: 通常无需修改任何选项。

    4. 单击“保存”。

    5. 重复步骤 a 至 d,直到为各个服务创建服务模板。

将角色分配给新子组织中的最终用户

在子组织中创建新的最终用户后,需要为他们分配角色。可从父组织继承角色。

Procedure将角色分配给新子组织中的最终用户

  1. 登录到 Access Manager 管理控制台,即 http://hostname :port/amconsole

    例如:

    http://imserver.company22.example.com:80/amconsole

  2. 选择“身份管理”选项卡。

  3. 在导航窗格(方框左下角)的“查看”下拉列表中选择“角色”。

  4. 单击您想要分配的角色右边的属性箭头。

    数据窗格(方框右下角)中会显示该角色的页面。

  5. 在数据窗格的“查看”下拉列表中选择“用户”。

  6. 单击“添加”。

    显示“添加用户”页。

  7. 输入用于标识用户的匹配模式。

    例如,在 UserId 字段中输入星号 * 将列出所有用户。

  8. 单击“过滤器”。

    显示“选择用户”页。

  9. 在“选择用户”页中,选中“显示父级路径”复选框并单击“刷新”。

    显示父级路径。

  10. 选择要分配给此角色的用户。

  11. 单击“提交”。

第 18 章 管理 Instant Messaging 的归档

本章中的以下各节说明如何配置和管理 Instant Messaging 的电子邮件、门户和自定义归档。

归档概述

您可以通过以下方式归档即时消息:

您可以配置 Instant Messaging 以同时使用一种或多种归档方法。

启用和禁用 Instant Messaging 的归档

不论您选择使用门户、电子邮件、自定义归档还是任何归档的组合,您都要以本节所述的方式启用 Instant Messaging 中的归档功能。如本节中所述的方式禁用所有归档。

Procedure启用 Instant Messaging 归档

启用 Instant Messaging 的归档后,您需要为想要使用的归档类型启用归档提供者,如以下各节所述:

  1. 打开 iim.conf

    有关信息,参见iim.conf 文件语法

  2. 添加以下行到 iim.conf(如果它尚未存在)。


    iim_server.msg_archive = true
    
  3. 保存并关闭 iim.conf

  4. 刷新服务器。


    imadmin refresh server
    

Procedure禁用 Instant Messaging 归档

此过程将禁用所有的 Instant Messaging 归档。如果只想禁用您已经配置的电子邮件归档、门户归档或自定义归档,参见以下各节之一:

  1. 打开 iim.conf

    有关信息,参见iim.conf 文件语法

  2. iim_server.msg_archive 参数设置为 false


    iim_server.msg_archive = false
    
  3. 保存并关闭 iim.conf

  4. 刷新服务器。


    imadmin refresh server
    

管理 Instant Messaging 电子邮件归档

您可以使用 Instant Messaging 来归档与最终用户和管理员有关的轮询、聊天、会议、新闻频道以及警报内容和电子邮件。您可以使用任何电子邮件客户机搜索和管理归档的内容。本节中的以下各部分说明 Instant Messaging 电子邮件归档:

Instant Messaging 服务器将缓存归档的记录,直到它们作为电子邮件发送。如果您启用了电子邮件归档,则该服务器的内存要求会增加。有关性能调节的信息,参见《Sun Java Communications Suite 5 Deployment Planning Guide》

启用和禁用 Instant Messaging 电子邮件归档提供者

您可以通过修改 iim.conf 中的参数值来启用或禁用归档提供者。

Procedure启用 Instant Messaging 电子邮件归档

开始之前

确保您已经如启用 Instant Messaging 归档中所述启用了 Instant Messaging 的归档。

  1. 打开 iim.conf

    有关更多信息,参见iim.conf 文件语法

  2. 添加以下行到 iim.conf(如果它尚未存在)。


    iim_server.msg_archive.provider = com.iplanet.im.server.EmailIMArchive
    

    iim_server.msg_archive.provider 参数包含一个逗号分隔的归档提供者列表。例如,如果除电子邮件归档之外,您还想要启用门户归档,则应输入如下参数和值:


    iim_server.msg_archive.provider = com.iplanet.im.server.IMPSArchive, \
    com.iplanet.im.server.EmailIMArchive
    
  3. 保存并关闭 iim.conf

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


    imadmin refresh
    

Procedure禁用 Instant Messaging 电子邮件归档提供者

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得更多信息。

  2. iim_server.msg_archive.provider 参数中删除 com.iplanet.im.server.EmailIMArchive 值。

  3. 保存并关闭 iim.conf

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


    imadmin refresh
    

配置电子邮件归档设置

您可以配置哪个管理员将接收到包含归档即时消息的电子邮件。您可以配置一个单独的管理员列表,以接收轮询、新闻、会议、警报或聊天会话。您还可以配置 Instant Messaging 使用扩展的 RFC 822 标题。这样可以允许邮件客户机基于标题内容过滤消息。


注 –

如果您在修改电子邮件归档的这些参数后运行 configure,则所有您输入的值将被覆盖。


表 18–1 说明您用于定义哪个管理员将接收电子邮件归档以及是否使用扩展的 RFC 822 标题和该标题内容的配置参数。

表 18–1 电子邮件归档配置参数

参数 

默认值 

说明 

iim_arch.admin.email

空字符串 

逗号分隔的管理员电子邮件地址列表。 

iim_arch.alert.admin.email

无 

逗号分隔的管理员电子邮件地址列表,所有归档警报消息都将发送至此。此参数覆盖警报消息的 iim_arch.admin.email

iim_arch.chat.admin.email

无 

逗号分隔的管理员电子邮件地址列表,所有归档聊天消息都将发送至此。此参数覆盖聊天消息的 iim_arch.admin.email

iim_arch.conference.admin.email

无 

逗号分隔的管理员电子邮件地址列表,所有归档会议消息都将发送至此。此参数覆盖会议消息的 iim_arch.admin.email

iim_arch.poll.admin.email

无 

逗号分隔的管理员电子邮件地址列表,所有归档轮询消息都将发送至此。此参数覆盖轮询消息的 iim_arch.admin.email

iim_arch.news.admin.email

无 

逗号分隔的管理员电子邮件地址列表,所有归档新闻消息都将发送至此。此参数覆盖新闻消息的 iim_arch.admin.email

iim_arch.email.archiveheader.name

无 

扩展的 RFC 822 标题的名称。 

iim_arch.email.archiveheader.value

all 

对应于 iim_arch.email.archiveheader.name 的标题名称的值。

Procedure配置 Instant Messaging 电子邮件归档的管理员收件人和 RFC 822 标题格式

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得更多信息。

  2. 添加表 18–1 中的参数及相应值到 iim.conf

  3. 刷新服务器。


    imadmin refresh
    

电子邮件标题格式

以下各节说明包含各类归档 Instant Messaging 内容的电子邮件消息的 RFC 822 标题内容:

用于一对一聊天的 RFC 822 电子邮件归档标题字段

发件人:

聊天会话发起者。

收件人:

收件人以及 iim.conf 中配置的任何管理员。有关更多信息,参见表 18–1

抄送:

聊天会话发起者。

主题:

第一条长度超过 50 个字符的有用消息。

日期:

归档提供者创建电子邮件消息的日期。

回复至:

未使用。

X-XMPP-消息-ID

电子邮件归档提供者基于消息线程生成。

用于私人会议的 RFC 822 电子邮件归档标题字段

发件人:

聊天会话发起者。

收件人:

其他参与者以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

聊天会话发起者。

主题:

如果会议设置了主题,则使用会议主题。如果没有设置主题,则使用第一条长度超过 50 个字符的有用消息。

日期:

归档提供者电子邮件消息的创建日期。

回复至:

未使用。

X-XMPP-消息-ID

电子邮件归档提供者基于会议 ID 生成。

用于公共会议的 RFC 822 电子邮件归档标题字段

发件人:

归档数据中的第一个发件人。

收件人:

关联的邮件列表、拥有会议室明确访问权限的用户以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

未使用。

主题:

[会议名称] 主题。

日期:

归档提供者创建电子邮件消息的日期。

回复至:

未使用。

X-XMPP-消息-ID

电子邮件归档提供者基于会议 ID 生成。

用于轮询问题及回复的 RFC 822 电子邮件归档标题字段

发件人:

轮询发件人。

收件人:

轮询发件人以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

未使用。

主题:

轮询问题。

日期:

归档提供者电子邮件消息的创建日期。

回复至:

未使用。

X-XMPP-消息-ID

由电子邮件归档提供者生成。

仅用于轮询回复的 RFC 822 电子邮件归档标题字段

发件人:

轮询发件人。

收件人:

轮询收件人以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

轮询发件人。

主题:

轮询问题。

日期:

归档提供者电子邮件消息的创建日期。

回复至:

未使用。

X-XMPP-消息-ID

由电子邮件归档提供者生成。

用于警报的 RFC 822 电子邮件归档标题字段

发件人:

警报发件人。

收件人:

警报收件人以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

未使用。

主题:

警报主题。

日期:

归档提供者电子邮件消息的创建日期。

回复至:

未使用。

X-XMPP-消息-ID

由电子邮件归档提供者生成。

用于新闻频道发布的 RFC 822 电子邮件归档标题字段

发件人:

新闻频道发布的发件人。

收件人:

与新闻频道相关联的邮件列表以及 iim.conf 中配置的任何管理员。参见表 18–1 以获得更多信息。

抄送:

未使用。

主题:

新闻频道发布的主题。

日期:

归档提供者电子邮件消息的创建日期。

回复至:

未使用。

X-XMPP-消息-ID

电子邮件归档提供者基于新闻频道 ID 生成。

管理 Instant Messaging 门户归档

以下主题说明使用 Instant Messaging 门户归档:

Instant Messaging 门户归档概述

Instant Messaging 门户归档提供者的功能包括以下各项:

为便于归档,所有即时消息都分为以下类别:

聊天 - 私人会议室中的所有消息。

会议 - 公共会议室中的所有消息。

警报 - 所有警报消息。

轮询 - 所有轮询消息。

新闻 - 新闻频道中发布的所有消息。

Instant Messaging 门户归档包含以下组件:

归档和检索组件 - “Portal Server 搜索”组件,也称为“归档和检索”组件,用于存储归档的“即时消息”。Instant Messaging 归档数据被创建索引并可存储于“Portal Server 搜索”数据库中。您还可以指定归档数据的类别。例如,您可以将警报消息存储于“警报”类别中。将数据存储在单独的类别中,有助于简化搜索操作和启用快速检索归档的数据。

Instant Messaging 归档搜索或显示 Servlet - 当最终用户搜索特定的文档匹配条件时,“Portal Server 搜索”将获取匹配此条件的页面。这些页面可以是远程 Web 页面或 Instant Messaging 归档数据(也称为 Instant Messaging 资源描述符)。

Instant Messaging 归档提供者 - 归档即时消息时,Instant Messaging 服务器始终会调用此组件。“Instant Messaging 归档提供者”根据 Instant Messaging 服务器提供的数据生成与“资源描述符 (RD)”兼容的“摘要对象交换格式 (SOIF)”。“归档提供者”使用“Portal Server 搜索 API”将这些“资源描述符”发送到“Portal Server 搜索”数据库,并为要提交到“Portal Server 搜索”数据库的记录维护缓冲,以降低性能损失。

图 18–1 展示了 Instant Messaging 门户归档组件。

图 18–1 Instant Messaging 门户归档组件

本图所示为 Instant Messaging 门户归档组件和数据流。

启用和禁用门户归档提供者

您可通过修改 iim.conf 中的参数来启用 Instant Messaging 归档提供者或您自定义的归档提供者。

Procedure启用 Instant Messaging 门户归档提供者

开始之前

确保您已经如启用 Instant Messaging 归档中所述启用了 Instant Messaging 的归档。

  1. 打开 iim.conf

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

  2. iim.conf 中添加一行,用于您想要启用的归档提供者类型。

    对于自定义的归档提供者,请添加:


    iim_server.msg_archive.provider = provider-name
    

    要使用基于 Portal Server 搜索的归档提供者,可将 provider- name 替换为以下内容:


    com.iplanet.im.server.IMPSArchive
    

    iim_server.msg_archive.provider 参数包含一个逗号分隔的归档提供者列表。例如,如果除电子邮件归档之外,您还想要启用门户归档,则应输入如下参数和值:


    iim_server.msg_archive.provider = com.iplanet.im.server.IMPSArchive, \
    com.iplanet.im.server.EmailIMArchive
    
  3. 如果您运行的是 Sun JavaTM System Portal Server 7 2006Q1 或更高版本,请提供以下参数的值:


    iim_arch.portal.search="Portal Server 搜索 URL"

    其中,Portal Server 搜索 URL 是 Portal Server 的“搜索 URL”。例如:


    iim_arch.portal.search="http://portal.siroe.com:8080/search1/search"
  4. 保存并关闭 iim.conf

  5. 刷新 Instant Messaging 服务器配置。


    imadmin refresh
    
  6. 以 amadmin 身份登录到 psconsole

    有关说明,请参阅 Portal Server 文档。

  7. 选择“管理频道和容器”。

  8. 选择托管搜索功能的门户和组织。

  9. 从 DP XML 树视图中选择“IMChannel”。

  10. 输入搜索服务器 URL 作为“searchServer”的值。

    例如:


    http://portal.siroe.com:8080/search1/search
    
  11. 保存属性。

Procedure禁用门户归档提供者

  1. 打开 iim.conf

    有关更多信息,参见iim.conf 文件语法

  2. iim_server.msg_archive.provider 参数中删除 com.iplanet.im.server.IMPSIMArchive 值。

  3. 保存并关闭 iim.conf

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


    imadmin refresh
    

配置 Instant Messaging 门户归档提供者

“Instant Messaging 归档提供者”将归档的消息存储为“Portal Server 搜索”数据库中的资源描述符 (RD)。归档提供者使用“Portal Server 搜索”模式的以下字段:

标题 - 此字段包含“会议”类别中公共会议室的名称、“聊天”类别中聊天会话参与者的名称、警报和新闻类别中“警报”消息的主题和“新闻频道”的名称。标题字段将包含轮询类别的“发件人轮询”,其中,发件人 表示轮询发件人的显示名称。

关键字 - 对于会议和聊天类别,此字段包含会议室所有参与者的列表。对于公共会议室,它还包含会议室的名称。对于“警报”类别,它包含发件人和收件人的显示名称。对于“新闻”类别,它包含频道的名称。对于“轮询”类别,它包含发件人和收件人的列表。对于所有类别,除了上述值以外,此字段还包含一个唯一的类别 ID。

表 18–2 显示归档提供者中每个类别的唯一 ID 及说明。

表 18–2 归档提供者类别的唯一 ID 和说明

类别 

唯一 ID 

会议 

聊天 

RoomName-StartTime

其中: 

RoomName - 公共或私人会议室的名称

StartTime - RD 的创建时间戳

警报 

Alert-messageID

其中: 

messageID - 要归档的消息的消息 ID。当 RD 只包含一条消息时,消息 ID 有重要级别。例如“新闻”消息和“警报”消息。

轮询 

Poll-pollID

新闻 

TopicName-messageID

ReadACL - 对于“会议”和“新闻”类别,此字段的值取自各自会议室和新闻频道的访问控制文件。对于“聊天”类别,此字段包含参与者的 DN。对于“警报”类别,此字段包含发件人的 DN 和收件人的 DN。对于“轮询”类别,归档会提供新的访问控制文件。

对 RD 的搜索访问由 ReadACL 字段中的值控制。如果启用了文档级安全,则最终用户仅当 ReadACL 字段中有最终用户的 DN 时才能访问搜索结果。

说明 - 此字段包含不带 HTML 格式的归档消息。

全文本 - 此字段包含 HTML 格式的归档消息。

分类 - 此字段包含归档消息的类别。

Procedure配置归档提供者

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

  2. 根据需要添加或编辑归档提供者配置参数。

    有关您可以修改的参数的列表,参见表 A–8

  3. 保存并关闭 iim.conf

  4. 刷新 Instant Messaging 服务器。

Procedure将归档消息存储在非默认数据库中

使用此过程可配置 Instant Messaging 在非默认的数据库中存储归档消息。

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

  2. 对于默认的归档提供者,请添加:


    iim_arch.portal.search.database = database-name
    

    其中,database-name 是非默认数据库的名称。

  3. 保存并关闭 iim.conf

  4. 修改 Portal Server 搜索频道。

    更改 Portal Server 搜索频道以添加在其他数据库中搜索数据的选项。有关更多信息,参见 Sun Java System Portal Server 桌面自定义指南

  5. 转至 IMProvider 目录。

    例如:


    cd /etc/opt/SUNWps/desktop/default_locale/IMProvider/
    

    其中,locale 是您的部署中使用的语言环境。例如,default_jaen_US。另外,如果创建多个 Instant Messaging 实例,/default 目录的名称会因实例不同而各异。

  6. 创建 IMArchiveDisplay.jsp 文件的备份。

  7. 打开 IMArchiveDisplay.jsp 文件。

  8. 搜索 IMArchiveDisplay.jsp 文件,找到以下两行代码:


    <search:setQuery query = "<%= scope %>"/>
     <search:setRDMType rdmType = "rd-request"/>
  9. 在上一步骤中所示的两行代码之间,添加下列代码行:


    <search:setDatabase database = "database-name"/>
    

    添加新代码行之后,该代码段应如下所示:


    <search:setQuery query = "<%= scope %>"/>
     <search:setDatabase database = "database-name"/>
    <search:setRDMType rdmType = "rd-request"/>
                            

    其中,database-name 是非默认数据库的名称。

  10. 以实际的服务器主机名替换虚拟的搜索服务器。

  11. 保存并关闭 IMArchiveDisplay.jsp

管理 Portal Server 搜索数据库中的归档数据


注 –

这些说明是特定于 Solaris 的。


Instant Messaging 数据以资源描述符 (RD) 的形式归档于“Portal Server 搜索”数据库中。“Portal Server 搜索”数据库中的单个条目称为资源描述符 (RD)。一个 RD 是特定的一组关于单个资源的信息。每个 RD 的字段由“Portal Server 搜索”数据库模式确定。

要管理归档的数据,您需要管理“Portal Server 搜索”数据库中的资源描述符 (RD)。本节说明某些经常执行的“Portal Server 搜索”数据库维护任务。

有关管理“Portal Server 搜索”数据库中数据的更多信息,参见 Sun Java System Portal Server 管理指南

rdmgr 命令

rdmgr 命令是用于处理“搜索”服务的主要命令。它为管理员提供两种子命令:一种用于处理资源描述符 (RD),而另一种用于数据库维护。rdmgr 命令通常在具有搜索功能的 Portal Server 实例目录中运行。

Procedure调用 rdmgr 命令

  1. 转至 https-servername 目录。


    cd /var/opt/SUNWps/https-servername
    

    其中,servername 是 Portal Server 的名称

  2. 在命令行键入命令:


    run-cs-cli portal-svr-base/SUNWps/bin/rdmgr options
    

    其中,portal-svr-base 是 Portal Server 的安装目录。

    有关 rdmgr 命令的更多信息,参见 Sun Java System Portal Server 管理指南中的“命令行实用程序”。

搜索资源描述符

运行带有参数值 -Qrdmgr 命令会生成用于完善搜索操作的资源描述符 (RD) 列表。

例如:

删除资源描述符

以下是从“Portal Server 搜索”数据库删除资源描述符 (RD) 的示例:

要删除所有包含文本 testing 的资源描述符 (RD),键入:


run-cs-cli portal-svr-base/SUNWps/bin/rdmgr -d -Q testing

要删除所有来自类别 Archive:Chat:January 的资源描述符 (RD),键入以下命令。将该命令作为一行输入:


run-cs-cli portal-svr-base/SUNWps/bin/rdmgr
-d -Q "classification=Archive:Chat:January"

更改归档数据的显示

归档的数据使用 IMArchiveDisplay.jsp 文件部署。默认情况下,IMArchiveDisplay.jsp 文件安装在文件夹 /etc/opt/SUNWps/desktop/default/IMProvider 中。您可以修改该文件,以更改归档数据的样式和资源字符串。

例如,您可以按以下步骤所述替换最终用户加入房间时显示的默认系统消息。

同样,其他按键的资源字符串和按键信息的显示样式也可以修改。

如果在“Portal Server 搜索”的默认模式中更改了“标题”和“全部文本”的属性名称,这些更改也应该反映在 IMArchiveDisplay.jsp 文件中。

Procedure修改默认系统消息

  1. 编辑 IMArchiveDisplay.jsp

  2. IMArchiveDisplay.jsp 中搜索以下代码行:


    ....
    ht.put("has_joined_the_room","<span class='user'> {0} </span>
    <span class='headervalue'> has joined the room.</span>");
    ....
  3. 以所需的文本替换 headervalue

    例如:


    ....
    ht.put("has_joined_the_room","<span class='user'> {0} </span>
    <span class='headervalue'> has entered the room.</span>");
    ....

归档提供者的部署方案样例

此部署方案样例说明如何统一归档相关的 Instant Messaging 数据。


示例 18–1 统一归档相关的 Instant Messaging 数据

为每种类型的数据创建单独的类别。例如,在存储了全部归档的 Instant Messaging 数据的“归档”类别中,创建名为“聊天”的子类别来存储聊天消息。也可以创建根据时间归档数据的子类别。例如,要归档 2002 年 12 月的聊天数据,子类别将为:

Archive:Chat:2002:12


Procedure基于时间归档所有 Instant Messaging 聊天数据

  1. 转至 im-cfg-base 目录。

    有关查找 im-cfg-base 的信息,参见Instant Messaging 服务器目录结构

  2. 打开 iim.conf

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

  3. iim_arch.chat.categoryname 添加以下值:

    iim_arch.chat.categoryname = Archive:Chat:%Y:%M

    归档提供者自动为 %Y 分配当前的年份,并为 %M 分配当前的月份。这些值取自系统日期和时间。

Procedure归档和备份 2005 年 12 月的 Instant Messaging 聊天数据到子类别

  1. 键入以下命令:


    rdmgr -Q "classification=Archive:Chat:2005:12" > archive.soif
    
  2. archive.soif 文件复制到您的备份系统。

Procedure从 Portal Server 搜索数据库删除 2005 年 12 月的 Instant Messaging 聊天数据

    在命令行键入以下命令:


    rdmgr -d "classification=Archive:Chat:2005:12"
    

使用自定义的归档提供者

除了门户和电子邮件归档以外,您可以选择使用自定义的归档提供者。

Procedure启用自定义的归档提供者

开始之前

确保您已经如启用 Instant Messaging 归档中所述启用了 Instant Messaging 的归档。

  1. 打开 iim.conf

    参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。

  2. iim.conf 中添加一行,用于您想要启用的归档提供者类型。

    对于自定义的归档提供者,请添加:


    iim_server.msg_archive.provider = provider-name
    

    要使用基于 Portal Server 搜索的归档提供者,可将 provider- name 替换为以下内容:


    com.iplanet.im.server.IMPSArchive
    

    iim_server.msg_archive.provider 参数包含一个逗号分隔的归档提供者列表。例如,如果您想要除电子邮件归档之外还启用门户归档,则参数及其值应输入如下:


    iim_server.msg_archive.provider = com.iplanet.im.server.IMPSArchive, \
    com.iplanet.im.server.EmailIMArchive
    
  3. 保存并关闭 iim.conf

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


    imadmin refresh
    

Procedure禁用自定义的归档提供者

  1. 打开 iim.conf

    有关更多信息,参见iim.conf 文件语法

  2. iim_server.msg_archive.provider 参数中仅删除自定义归档提供者的值。

  3. 保存并关闭 iim.conf

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


    imadmin refresh
    

第 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 的日志记录