以下主题说明使用 Instant Messaging 门户归档:
Instant Messaging 门户归档提供者的功能包括以下各项:
它捕获所有通过服务器的 Instant Messaging 通信量。
归档的数据可以存储于“Portal Server 搜索”中单独的类别下。将数据存储为单独的类别有助于简化搜索和检索归档的数据。可使用 Portal Server 桌面执行搜索。
“Portal Server 搜索”的安全功能可用于提供访问控制列表。归档提供者的安全功能可以只允许一组管理用户访问归档的数据。
可使用“Portal Server 搜索”数据库管理工具来管理数据。
为便于归档,所有即时消息都分为以下类别:
聊天 - 私人会议室中的所有消息。
会议 - 公共会议室中的所有消息。
警报 - 所有警报消息。
轮询 - 所有轮询消息。
新闻 - 新闻频道中发布的所有消息。
Instant Messaging 门户归档包含以下组件:
归档和检索组件 - “Portal Server 搜索”组件,也称为“归档和检索”组件,用于存储归档的“即时消息”。Instant Messaging 归档数据被创建索引并可存储于“Portal Server 搜索”数据库中。您还可以指定归档数据的类别。例如,您可以将警报消息存储于“警报”类别中。将数据存储在单独的类别中,有助于简化搜索操作和启用快速检索归档的数据。
Instant Messaging 归档搜索或显示 Servlet - 当最终用户搜索特定的文档匹配条件时,“Portal Server 搜索”将获取匹配此条件的页面。这些页面可以是远程 Web 页面或 Instant Messaging 归档数据(也称为 Instant Messaging 资源描述符)。
对于远程 Web 页面,URL 与条件相符的页面会列在“搜索结果列表”中。当用户单击“搜索结果列表”中一个 Web 页面的 URL时,浏览器会从远程 Web 容器获取此页面。
对于 Instant Messaging 资源描述符,归档数据存储在“Portal Server 搜索”数据库中,且不能作为可下载文档从 Web 容器中获得。
当最终用户单击 Instant Messaging 资源描述符的 URL 以查看归档数据时,就会调用“Instant Messaging 归档搜索或显示 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 搜索”数据库的记录维护缓冲,以降低性能损失。
图 18–1 展示了 Instant Messaging 门户归档组件。
您可通过修改 iim.conf 中的参数来启用 Instant Messaging 归档提供者或您自定义的归档提供者。
确保您已经如启用 Instant Messaging 归档中所述启用了 Instant Messaging 的归档。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
在 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 |
如果您运行的是 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" |
保存并关闭 iim.conf。
刷新 Instant Messaging 服务器配置。
imadmin refresh |
以 amadmin 身份登录到 psconsole
。
有关说明,请参阅 Portal Server 文档。
选择“管理频道和容器”。
选择托管搜索功能的门户和组织。
从 DP XML 树视图中选择“IMChannel”。
输入搜索服务器 URL 作为“searchServer”的值。
例如:
http://portal.siroe.com:8080/search1/search |
保存属性。
打开 iim.conf。
有关更多信息,参见iim.conf 文件语法。
从 iim_server.msg_archive.provider 参数中删除 com.iplanet.im.server.IMPSIMArchive 值。
保存并关闭 iim.conf。
刷新 Instant Messaging 服务器配置。
imadmin refresh |
“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 格式的归档消息。
分类 - 此字段包含归档消息的类别。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数。
根据需要添加或编辑归档提供者配置参数。
有关您可以修改的参数的列表,参见表 A–8。
保存并关闭 iim.conf。
刷新 Instant Messaging 服务器。
使用此过程可配置 Instant Messaging 在非默认的数据库中存储归档消息。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数。
对于默认的归档提供者,请添加:
iim_arch.portal.search.database = database-name |
其中,database-name 是非默认数据库的名称。
保存并关闭 iim.conf。
修改 Portal Server 搜索频道。
更改 Portal Server 搜索频道以添加在其他数据库中搜索数据的选项。有关更多信息,参见 Sun Java System Portal Server 桌面自定义指南。
转至 IMProvider 目录。
例如:
cd /etc/opt/SUNWps/desktop/default_locale/IMProvider/ |
其中,locale 是您的部署中使用的语言环境。例如,default_ja 或 en_US。另外,如果创建多个 Instant Messaging 实例,/default 目录的名称会因实例不同而各异。
创建 IMArchiveDisplay.jsp 文件的备份。
打开 IMArchiveDisplay.jsp 文件。
搜索 IMArchiveDisplay.jsp 文件,找到以下两行代码:
<search:setQuery query = "<%= scope %>"/> <search:setRDMType rdmType = "rd-request"/> |
在上一步骤中所示的两行代码之间,添加下列代码行:
<search:setDatabase database = "database-name"/> |
添加新代码行之后,该代码段应如下所示:
<search:setQuery query = "<%= scope %>"/> <search:setDatabase database = "database-name"/> <search:setRDMType rdmType = "rd-request"/> |
其中,database-name 是非默认数据库的名称。
以实际的服务器主机名替换虚拟的搜索服务器。
保存并关闭 IMArchiveDisplay.jsp。
这些说明是特定于 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 命令是用于处理“搜索”服务的主要命令。它为管理员提供两种子命令:一种用于处理资源描述符 (RD),而另一种用于数据库维护。rdmgr 命令通常在具有搜索功能的 Portal Server 实例目录中运行。
转至 https-servername 目录。
cd /var/opt/SUNWps/https-servername |
其中,servername 是 Portal Server 的名称
在命令行键入命令:
run-cs-cli portal-svr-base/SUNWps/bin/rdmgr options |
其中,portal-svr-base 是 Portal Server 的安装目录。
有关 rdmgr 命令的更多信息,参见 Sun Java System Portal Server 管理指南中的“命令行实用程序”。
运行带有参数值 -Q 的 rdmgr 命令会生成用于完善搜索操作的资源描述符 (RD) 列表。
例如:
要搜索包含文本 testing 的资源描述符 (RD),键入:
run-cs-cli portal-svr-base/SUNWps/bin/rdmgr -Q testing |
要搜索属于特定类别的资源描述符 (RD),键入以下命令。将该命令作为一行输入:
run-cs-cli portal-svr-base/SUNWps/bin/rdmgr -Q "classification=Archive:Chat:January" |
以下是从“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 文件中。
编辑 IMArchiveDisplay.jsp。
在 IMArchiveDisplay.jsp 中搜索以下代码行:
.... ht.put("has_joined_the_room","<span class='user'> {0} </span> <span class='headervalue'> has joined the room.</span>"); .... |
以所需的文本替换 headervalue。
例如:
.... ht.put("has_joined_the_room","<span class='user'> {0} </span> <span class='headervalue'> has entered the room.</span>"); .... |
此部署方案样例说明如何统一归档相关的 Instant Messaging 数据。
为每种类型的数据创建单独的类别。例如,在存储了全部归档的 Instant Messaging 数据的“归档”类别中,创建名为“聊天”的子类别来存储聊天消息。也可以创建根据时间归档数据的子类别。例如,要归档 2002 年 12 月的聊天数据,子类别将为:
Archive:Chat:2002:12
转至 im-cfg-base 目录。
有关查找 im-cfg-base 的信息,参见Instant Messaging 服务器目录结构。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
为 iim_arch.chat.categoryname 添加以下值:
iim_arch.chat.categoryname = Archive:Chat:%Y:%M
归档提供者自动为 %Y 分配当前的年份,并为 %M 分配当前的月份。这些值取自系统日期和时间。
在命令行键入以下命令:
rdmgr -d "classification=Archive:Chat:2005:12" |