Sun Java logo    上一页     目录     索引     下一页    

Sun logo
Sun Java System Instant Messaging 7 2005Q1 管理指南 

第 7 章
管理 Instant Messaging 归档

本章说明如何管理和配置 Instant Messaging 归档。

本章包含以下部分:


Instant Messaging 归档概述

Instant Messaging 归档捕获即时消息并将这些消息归档到“Portal Server 搜索”数据库中。它使最终用户可以使用 Portal Server 桌面的“搜索”页来查询和检索这些归档的消息。

Instant Messaging 归档包含下列组件:

归档和检索组件“Portal Server 搜索”组件(也称为“归档和检索”组件),用于存储归档的“即时消息”。Instant Messaging 归档数据将编入索引,可以分配给各个类别并存储到“Portal Server 搜索”数据库中。例如,警报消息可以存储到“警报”类别下。


将数据存储在单独的类别中,有助于简化搜索操作和快速检索归档的数据。


Instant Messaging 归档搜索或显示 Servlet当最终用户搜索符合特定标准的文档时,“Portal Server 搜索”会获取符合此标准的页面。这些页面可能是远程 Web 页,或者是 Instant Messaging 归档数据,也称为 Instant Messaging 资源描述符。

当最终用户单击 Instant Messaging 资源描述符的 URL 以查看归档数据时,就会调用“Instant Messaging Archive 搜索或显示 servlet”。“Instant Messaging 归档搜索 servlet”从“Portal Server 搜索”数据库检索信息,生成包含 Instant Messaging 归档数据的文本或 HTML 响应。

Instant Messaging 归档提供者只要“即时消息”要归档,Instant Messaging 服务器就会调用此组件。“Instant Messaging 归档提供者”根据 Instant Messaging 服务器提供的数据生成与“资源描述符 (RD)”兼容的“摘要对象交换格式 (SOIF)”。它使用“Portal Server 搜索”API 发送这些“资源描述符”到“Portal Server 搜索”数据库。它还维护一个要提交给“Portal Server 搜索”数据库的记录的缓冲区,以降低性能干扰。

Instant Messenger 归档控制Instant Messaging 数据可以自动归档,而无需最终用户的任何介入。要控制归档功能,最终用户必须启用“Instant Messenger 归档控制”组件。此组件允许最终用户设置默认归档选项(如“归档所有会议”),并基于每项事务更改默认值。例如,最终用户可以选择不归档会议内容。

图 7-1 说明 Instant Messaging 归档组件。

图 7-1  Instant Messaging 归档组件

此图所示为 Sun Java System Instant Messaging 归档组件和数据流。


归档即时消息

为便于归档,所有即时消息都分为以下类别:

聊天。私人会议室中的所有消息。

会议。公共会议室中的所有消息。

警报。此类别包含所有警报消息。

轮询。此类别包含所有轮询消息。

新闻。此类别包含所有发布在新闻频道中的消息。

以下是 Instant Messaging 归档提供者的功能:


启用归档提供者

  在 Instant Messaging 中启用归档提供者
  1. 转到 config 目录。例如,在 Solaris 上:
  2. cd /etc/opt/SUNWiim/default/config

  3. 打开 iim.conf 文件。
  4. 例如:

    vi iim.conf

  5. 将以下行添加到 iim.conf 文件:
  6. 对于默认的归档提供者,请添加:

    iim_server.msg_archive = true

    对于自定义的归档提供者,请添加:

    iim_server.msg_archive.provider = provider_name

    要使用基于“Portal Server 搜索”的归档,请将 provider_ name 替换为:

    com.iplanet.im.server.IMPSArchive

  7. 保存文件。
  8. 刷新 Instant Messaging 服务器配置。要进行刷新,请键入:
  9. imadmin refresh

Instant Messaging 服务器提供可用于编写自定义归档提供者的 API 和 SPI。有关 Instant Messaging API 的更多信息,参见 Instant Messaging API


配置归档提供者

归档提供者在“Portal Server 搜索”数据库中将归档的消息存储为资源描述符 (RD)。归档提供者使用“Portal Server 搜索”模式的下列字段:

标题此字段包含“会议”类别中公共会议室的名称、“聊天”类别中聊天会话参与者的名称、警报和新闻类别中“警报”消息的主题和“新闻频道”的名称。标题字段包含轮询类别的“来自发送者的轮询”,其中发送者代表轮询发送者的显示名称。

关键字对于会议和聊天类别,此字段包含会议室所有参与者的列表。对于公共会议室,它包含会议室的名称。对于“警报”类别,它包含发送者和收件人的显示名称。对于“新闻”类别,它包含频道的名称。对于“轮询”类别,它包含发送者和收件人的列表。对于所有类别,除了上述值以外,此字段还包含类别的唯一 ID。

表 7-1 显示归档提供者中每个类别的唯一 ID 及说明。

表 7-1  每个类别的唯一 ID 及其说明

类别

唯一 ID

会议

聊天

RoomName-StartTime

其中:

RoomName - 公共或私人会议室的名称

StartTime - RD 创建的时间标记

警报   

Alert-messageID

其中:

messageID - 要归档的消息的消息 Id。消息 Id 在 RD 仅包含一则消息时非常重要。例如“新闻”消息和“警报”消息。

轮询

Poll-pollID

新闻

TopicName-messageID

ReadACL。对于“会议”和“新闻”类别,此字段的值取自各自会议室和新闻频道的访问控制文件。对于“聊天”类别,此字段包含参与者的 DN。对于“警报”类别,此字段包含发送者的 DN 和接收者的 DN。对于“轮询”类别,归档者将会提供新的访问控制文件。

搜索 RD 会受到 ReadACL 字段中的值控制。如果启用了文档级安全性,则仅当 ReadACL 字段具有最终用户的 DN 时,该最终用户才能访问搜索结果。如果为聊天消息启用了 Instant Messenger 归档控制,则添加到 ReadACL 字段的最终用户 DN 取决于最终用户的选择。

说明此字段包含未 HTML 格式化的归档消息。

全部文本此字段包含已经 HTML 格式化的归档消息。

分类此字段包含归档消息的类别。

归档提供者配置参数

表 7-2 列出并说明可以添加到 iim.conf 文件的归档提供者配置参数:

表 7-2  iim.conf 的可用归档提供者参数

参数

默认值

说明

iim_arch.title.attr

Title

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 Title 字段。

iim_arch.keyword.attr

Keyword

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 Keyword 字段。

iim_arch.readacl.attr

ReadACL

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 ReadACL 字段。

iim_arch.description.attr

Description

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 Description 字段。

iim_arch.fulltext.attr

Full-Text

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 Full-Text 字段。

iim_arch.category.attr

Category

此参数包含字段的名称,该字段等同于“Portal Server 搜索”的默认模式中的 Category 字段。

iim_arch.readacl.admin

此参数包含管理员的 DN。多个值应以 ";" 分隔

iim_arch.readacl.adminonly

false

此参数包含 truefalse

true - 只有参数 iim_arch.readacl.admin 指定的管理员 DN 才会添加到 ReadACL 字段,从而改写 ReadACL 字段的默认行为。

false - 除默认行为外,还会向 ReadACL 字段添加由参数 iim_arch.readacl.admin 所指定的管理员 DN。

iim_arch.categories

all

此参数包含可以归档的消息类型列表。

可能的值如下:

poll

alert

chat

conference

news

可以指定多个值,中间用逗号 (",") 分隔。

iim_arch.categoryname

如果没有为任何类别指定类别名称,则此参数的值用作类别名称。

iim_arch.alert.categoryname

此参数包含含有归档警报消息的类别名称。

注意:不要求将警报消息归为专用的类别。

iim_arch.poll.categoryname

此参数包含含有归档轮询消息的类别名称。

注意:不要求将轮询消息归为专用的类别。

iim_arch.conference.categoryname

此参数包含含有归档会议消息的类别名称。

注意:不要求将会议消息归为专用的类别。

iim_arch.chat.categoryname

Name

此参数包含含有归档聊天消息的类别名称。

注意:不要求将聊天消息归为专用的类别。

iim_arch.news.categoryname

此参数包含含有归档新闻消息的类别名称。

注意:不要求将新闻消息归为专用的类别。

iim_arch.conference.quiettime

5

此参数包含会议室(公共和私人)内两则连续消息之间的最长静默时间,这段时间过后归档消息的 RD 过期并且新 RD 被创建。值以分钟为单位。

iim_arch.poll.maxwaittime

15

此参数包含轮询数据在服务器中缓冲的最长时间。值以分钟为单位。

iim_arch.ignoreexplicitdeny

true

此参数包含 truefalse

true - 对于轮询和会议类别,明确拒绝访问的数据将不会归档。每当这些消息未归档时,就会将此信息记录到 xmppd.log 文件中。

false - 对于轮询和会议类别,明确拒绝访问的数据将不会归档,并且该消息会添加到“Portal Server 搜索”数据库中。

注意:如果不明确拒绝访问会议室或新闻频道,则默认访问等级为 READ、WRITE 或 MANAGE。有些最终用户也可能会被授予 NONE 访问权限。

iim_arch.portal.search

此参数的值应为“Portal Server 搜索”servlet 的 URL。例如:http://www.example.com/portal/search

如果此参数不存在,则归档提供者会根据系统中的 AMConfig.properties 文件确定“Portal Server 搜索”URL 的值。

iim_arch.portal.admindn

此参数的值应为管理员用户的 dn。例如:uid=amadmin,ou=People,o=internet

仅在“Portal 搜索服务器”中启用“文档级安全性”时才需要此参数。

iim_arch.portal.adminpassword

此参数的值应为 iim_arch.portal.admindn 参数所指定的管理员用户的密码。

仅在“Portal 搜索服务器”中启用“文档级安全性”时才需要此参数。

iim_arch.portal.search.database

此参数的值应为 Instant Messaging 服务器用来存储归档消息的数据库的名称。如果没有定义此参数,则所有消息都会存储在“Sun Java System Portal Server 搜索”的默认数据库中。

将归档消息存储在非默认 Portal Server 搜索数据库中

  将归档消息存储在非默认数据库中
  1. 修改 iim.conf 文件。
    1. 转到 config 目录。例如,在 Solaris 上:
    2. cd /etc/opt/SUNWiim/default/config

    3. 使用您选择的编辑器打开 iim.conf 文件。
    4. 例如,您可以键入:

      vi iim.conf

    5. 对于默认的归档提供者,请添加:
    6. iim_arch.portal.search.database = database-name

      其中 database-name 是非默认数据库的名称。

    7. 保存文件。
  2. 修改 Portal Server 搜索频道。
  3. 更改 Portal Server 搜索频道,以添加在其他数据库中搜索数据的选项。有关更多信息,参见 Sun Java System Portal Server Desktop Customization Guide。

  4. 修改 IMArchiveDisplay.jsp 文件:
    1. 转到下列目录:
    2. /etc/opt/SUNWps/desktop/default_zh/IMProvider/

    3. 创建 IMArchiveDisplay.jsp 文件的备份。
    4. 用选择的编辑器编辑 IMArchiveDisplay.jsp 文件。例如,您可以键入:
    5. vi IMArchiveDisplay.jsp

    6. 搜索 IMArchiveDisplay.jsp 文件,找到下列两行代码:
    7. 代码示例 7-1  编辑之前搜索 IMArchiveDisplay.jsp 文件中的代码

      <search:setQuery query = "<%= scope %>"/>

      <search:setRDMType rdmType = "rd-request"/>

    8. 代码示例 7-1 所示的两行代码之间,添加下列代码行:
    9. <search:setDatabase database = "database-name"/>

      添加新代码行之后,该代码段应如代码示例 7-2 所示:

      代码示例 7-2  编辑之后搜索 IMArchiveDisplay.jsp 文件中的代码

      <search:setQuery query = "<%= scope %>"/>

      <search:setDatabase database = "database-name"/>

      <search:setRDMType rdmType = "rd-request"/>

      其中 database-name 是非默认数据库的名称。


管理 Portal Server 搜索数据库中的归档数据


以下说明专门针对 Solaris。


Instant Messaging 数据在“Portal Server 搜索”数据库中以“资源描述符 (RD)”的形式归档。“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 实例目录中运行。

  调用 rdmgr 命令
  1. 转到下列目录:
  2. cd /var/opt/SUNWps/https-servername/

  3. 在命令行键入命令:
  4. run-cs-cli portal-server-install-dir/SUNWps/bin/rdmgr args

    其中 portal-server-install-dir 是安装 Portal Server 的目录。

有关 rdmgr 命令的更多信息,参见 Sun Java System Portal Server 管理指南中的“命令行实用程序”。

搜索资源描述符

运行带有参数值 -Qrdmgr 命令将会生成用于完善搜索操作的资源描述符 (RD) 列表。

例如:

删除资源描述符

以下是从“Portal Server 搜索”数据库删除资源描述符 (RD) 的示例:

要删除所有包含文本 testing 的资源描述符 (RD),请键入:

run-cs-cli portal-server-install-dir/SUNWps/bin/rdmgr -d -Q testing

要从类别 Archive:Chat:January 删除所有资源描述符 (RD),请键入:

run-cs-cli portal-server-install-dir/SUNWps/bin/rdmgr -d -Q "classification=Archive:Chat:January"


启用 Instant Messenger 归档控制

Instant Messenger 归档控制组件可让最终用户控制归档的即时消息。使用该组件,最终用户可以通过单击 Instant Messenger 主窗口中的“归档”按钮,搜索存储在“Portal Server 搜索”数据库中的归档即时消息。它还使最终用户能够设置默认归档选项,如 Instant Messenger 的“归档”选项卡中的“归档所有会议”。Instant Messenger 归档控制功能由两个可选的 Instant Messenger 模块提供。

在 applet 描述符文件中设置 archive_control applet 参数即可启用 Instant Messenger 归档控制组件。

Instant Messaging LDAP 部署中需要更改的 applet 描述符文件如下:

对 JNLP 文件和 jnlpLaunch.jsp 文件所做的更改:

如果使用 Java Web Start 启动 Instant Messenger,请执行下列步骤在 Instant Messenger 中启用 Instant Messenger 归档控制功能。

  1. 转到 Instant Messenger 文档根目录查找 im.jnlpimssl.jnlp 文件
  2. jnlpLaunch.jsp 文件可在以下位置找到:

    /etc/opt/SUNWps/desktop/default_zh/IMProvider

  3. 编辑 jnlp jsp 文件,然后添加或编辑下面一行:
  4. <argument>archive_control=true</argument>

对 html applet 页和 pluginLaunch.jsp 文件所做的更改:

如果使用 Java Plug-in 启动 Instant Messenger,请执行下列步骤在 Instant Messenger 中启用 Instant Messenger 归档控制功能。

  1. 转到 messenger 文档根目录查找 im.jnlpimssl.jnlp 文件
  2. jnlpLaunch.jsp 文件可在以下位置找到:

    /etc/opt/SUNWps/desktop/default_zh/IMProvider

  3. 编辑 jnlp jsp 文件,然后添加或编辑下列行:

    <PARAM NAME="archive_control" VALUE="true" />

    <EMBED archive_control=true;/>


  4. 如果 iim_server.msg_archive.auto 的值在 Instant Messaging Server 的 iim.conf 文件中设置为 true,则不能启用“Instant Messenger 归档控制”,因为最终用户的 messenger 设置不会起任何作用。



更改归档数据的显示

归档的数据使用 IMArchiveDisplay.jsp 文件部署。默认情况下,IMArchiveDisplay.jsp 文件安装在文件夹 /etc/opt/SUNWps/desktop/default_zh/IMProvider 中。可以修改该文件,以更改归档数据的样式和资源字符串。

例如,要将最终用户加入会议室时显示的默认系统消息从 "joe has joined the room" 替换为 "joe has entered the room;",请执行下列步骤:

  1. 用选择的编辑器编辑 IMArchiveDisplay.jsp 文件。例如,您可以键入:
  2. vi IMArchiveDisplay.jsp

  3. 用文件 IMArchiveDisplay.jsp 中的代码示例 7-4 替换代码示例 7-3 中的代码行:
  4. 代码示例 7-3  修改默认系统消息。

    ....

    ht.put("has_joined_the_room","<span class='user'> {0} </span>

    <span class='headervalue'> has joined the room.</span>");

    ....

    代码示例 7-4  替换默认系统消息之后。

    ....

    ht.put("has_joined_the_room","<span class='user'> {0} </span>

    <span class='headervalue'> has entered the room.</span>");

    ....

同样,其他按键的资源字符串和按键信息的显示样式也可以修改。

如果在“Portal Server 搜索”的默认模式中修改了“标题”和“全部文本”的属性名称,这些更改也应该反映在 IMArchiveDisplay.jsp 文件中。


归档提供者的部署方案样例

此部署方案样例说明如何统一归档相关的 Instant Messaging 数据。

  统一归档相关的 Instant Messaging 数据

为每种类型的数据创建单独的类别。例如,在存储了全部归档 Instant Messaging 数据的“归档”类别中,创建子类别“聊天”来存储聊天消息。也可以创建根据时间归档数据的子类别。例如,要归档 2002 年 12 月的聊天数据,则子类别为:

Archive:Chat:2002:12

    基于时间归档所有聊天数据
  1. 转到 config 目录。例如,在 Solaris 上,键入:
  2. cd /etc/opt/SUNWiim/default/config

  3. 编辑 iim.conf 文件。例如:
  4. vi iim.conf

  5. 添加参数 iim_arch.chat.categoryname 的下列值:
  6. iim_arch.chat.categoryname = Archive:Chat:%Y:%M

    归档提供者会自动指定当前年份 %Y 和当前月份 %M,这些值取自系统日期和时间。

  将 2002 年 12 月份的聊天数据归档和备份到子类别
  1. 键入以下命令:
  2. rdmgr -Q "classification=Archive:Chat:2002:12" > archive.soif

  3. .soif 文件存储到您的备份系统。
  从“Portal Server 搜索”数据库中删除 2002 年 12 月份的已归档聊天数据


上一页     目录     索引     下一页    


文件号码 819-1489。 版权所有 2005 Sun Microsystems, Inc. 保留所有权利。