附录 A,iim.conf 中的 Instant Messaging 配置参数说明了可为 Instant Messaging 组件配置的设置。
附录 B,httpbind.conf 中的 Instant Messaging XMPP/HTTP 网关配置参数介绍了可为网关配置的设置。
附录 C,Instant Messaging imadmin 工具参考介绍了 imadmin 命令,该命令用于管理 Instant Messaging。
附录 D,Instant Messaging API 概述了 Instant Messaging 所使用的 API。
附录 E,Instant Messaging LDAP 模式定义了 Instant Messaging 的 LDAP 模式。
本章中的以下各节说明 iim.conf 文件中的 Instant Messaging 配置参数:
Instant Messaging 在配置目录 (im-cfg-base) 内的 iim.conf 文件中存储配置设置。
在 Solaris 中:
/etc/opt/SUNWiim/default/config/iim.conf
在 Linux 中:
/etc/opt/sun/im/default/config/iim.conf
如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称会因实例不同而各异。有关更多信息,参见在单个 Instant Messaging 安装中创建多个实例。
此文件为 ASCII 纯文本文件,每行定义一个服务器参数及其值:
参数及其值用等号 (=) 分隔,等号前后允许有空格和制表符。
值可以用双引号 (" ") 括住。如果一个参数允许多个值,则整个值字符串必须用双引号括住。
注释行必须以感叹号 (!) 作为第一个字符。注释行是仅供参考的信息,会被服务器忽略。
如果某个参数多次出现,则所列最后一个参数的值将覆盖前一个值。
反斜杠 (\) 是接续符,表示该值超过一行。
每行都用行终止符(\n、\r 或 \r\n)终止。
键由每行中从第一个非空格字符开始到第一个 ASCII 等号 (=) 或分号 (;) 止的所有字符。如果键以分号结束,则其后接有“lang-”和一个表示翻译此值所用语言的标记。语言标记后接等号 (=)。忽略等号前后的所有空白字符。该行的所有剩余字符都成为与值字符串相关的部分。
若值字符串含多个值,则用逗号 (,) 分隔。
如果值内存在特殊字符(例如:逗号、空格、换行符、制表符、双引号或反斜杠),则必须用双引号括住整个值。此外,值中的每个回车、换行符、制表符、反斜杠和双引号都必须用反斜杠 (\) 指定。
如果更改 iim.conf, 则必须刷新 Instant Messaging 服务器才能使新的配置设置生效。
iim.conf 文件由安装过程初始化,并且必须依照本指南所述进行修改。
表 A–1 列出并说明一般配置参数。
表 A–1 一般配置参数
参数 |
默认值 |
说明 |
---|---|---|
iim.comm.modules |
iim_server,iim_mux |
使用的通信模块。可能的值为 iim_server 和 iim_mux。默认值为 iim_server, iim_mux,表示同时使用服务器和多路复用器。iim_mux 值对于多路复用器非常有用。 |
iim.smtpserver |
localhost |
用于将邮件发送给最终用户的 SMTP 服务器,这些最终用户已设置选项将其消息以电子邮件形式转发或转发到寻呼机。 |
iim.instancedir |
/opt |
安装根目录。 |
iim.instancevardir |
Solaris:/var/opt/SUNWiim/default Linux:/var/opt/sun/im/default |
将目录设置为包含运行时文件,包括最终用户配置文件数据库、日志以及服务器和多路复用器在运行时创建的其他文件。如果您创建了多个 Instant Messaging 实例,则 /default 目录的名称可能会不同。 |
iim.user |
用于 LDAP 部署的 inetuser。 用于门户部署的 root。 |
服务器进程运行所用的最终用户名。 |
iim.group |
用于 LDAP 部署的 inetgroup。 用于门户部署的 root。 |
服务器进程运行所用的组。 |
iim.jvm.maxmemorysize |
256 |
运行服务器的 JVM 允许使用的最大堆大小 (MB)。用于构造 Java 命令的 -mx 参数。 |
iim.mail.charset |
无 |
此参数指定邮件的标题是否为 ASCII 格式且未编码。 它包含用来对脱机警报邮件消息标题进行编码的字符集的名称。 例如:iim.mail.charset=iso-2022-jp |
iim.jvm.command |
/usr/j2se/bin/java |
Java 运行时可执行程序 (Java Runtime Executable, JRE) 的位置。 |
iim.identity.basedir |
/opt |
Sun JavaTM System Access Manager 的默认安装目录,也称为基目录。 |
iim.identity.jre |
/usr/java_1.3.1_04 |
Access Manager 用来运行其所有进程的 JRE 的位置。 |
iim.portal.deployuri |
/portal |
在 Access Manager 中部署 Portal Server war 文件时所使用的 URI。 |
iim.portal.host |
imhostname |
运行 Portal Server 的服务器的主机名。使用非默认端口号时指定端口号。 |
iim.portal.protocol |
http |
用于访问 Portal Server 的协议。 |
iim.policy.cache.validity |
10 |
定义单一用户信息的缓存有效期间隔(分钟)。 Instant Messaging 服务器会保存单一最终用户信息的上一次缓存日期。如果在此参数指定的间隔后访问最终用户的信息,则服务器将重新缓存最终用户的信息并重设 LocalUser 对象的缓存日期。 |
iim.policy.modules |
iim_ldap |
默认情况下,使用 LDAP 进行策略存储。如果将该值更改为 identity ,则表示应该使用 Sun Java System Access Manager 进行策略存储。 |
iim.policy.resynctime |
720 |
定义所有最终用户信息的缓存有效期间隔(分钟)。 Instant Messaging 服务器定期清除所有缓存的最终用户信息,以消除旧的最终用户信息。此参数指定清除缓存的最终用户信息的频率。 |
iim.userprops.store |
file |
默认情况下,如果您在运行 configure 实用程序时选择不使用 Access Manager 进行策略存储,用户属性会存储在用户属性文件中。如果选择使用 Access Manager 进行策略存储,则默认值为 ldap。可以通过更改该值来更改用户属性的存储位置。如果您将它从 file 更改为 ldap,则需要运行 imadmin assign_services 以向目录中的用户条目添加所需的对象类。 仅当安装了 Presence 和 Instant Messaging 服务的服务定义时,此参数才有意义。 |
表 A–2 列出并说明 Instant Messaging 用于 LDAP、用户注册和用户源配置的参数。
表 A–2 LDAP、用户注册和源配置参数
参数 |
默认值 |
说明 |
---|---|---|
iim_ldap.host |
localhost:389 |
Instant Messaging 服务器用于验证最终用户的 LDAP 服务器名称和端口。 |
iim_ldap.searchbase |
o=internet |
用作 LDAP 服务器上最终用户和组的搜索基的字符串。 |
iim_ldap.usergroupbinddn |
无(服务器执行匿名搜索) |
指定用来绑定到 LDAP 服务器进行搜索的 DN。 |
iim_ldap.usergroupbindcred |
无(服务器执行匿名搜索) |
指定与 iim_ldap.usergroupbinddn DN 一起使用以进行 LDAP 搜索的密码。 |
iim_ldap.loginfilter |
(&(|(objectclass=inetorgperson) (objectclass=webtopuser))(uid={0})) |
搜索在最终用户登录期间使用的过滤器。整个过滤器输入为一行。 |
iim_ldap.usergroupbyidsearchfilter |
(|(&(objectclass=groupofuniquenames) (uid={0}))(&(|(objectclass= inetorgperson)(objectclass= webtopuser))(uid={0}))) |
用来在 ID 所指定的基下的目录中搜索最终用户和组的搜索过滤器。整个过滤器输入为一行。 |
iim_ldap.usergroupbynamesearchfilter |
(|(&(objectclass=groupofuniquenames) (cn={0})) (&(|(objectclass= inetorgperson)(objectclass= webtopuser))(cn={0}))) |
用来搜索在名称所指定的基下、目录中最终用户和组的搜索过滤器。 |
iim_ldap.allowwildcardinuid |
False |
确定在执行搜索时是否应为 UID 启用通配符。由于大多数目录安装时都指明 UID 只进行精确搜索,故默认值为 False。将此值设为 True 可能会影响性能,除非将 UID 指定为进行子串搜索。 |
iim_ldap.userclass |
inetOrgPerson,webtopuser |
指示条目属于最终用户的 LDAP 类。 |
iim_ldap.groupclass |
groupOfUniqueNames |
指示条目属于组的 LDAP 类。 |
iim_ldap.groupbrowsefilter |
(objectclass=groupofuniquenames) |
用来浏览指定搜索基下、目录中所有组的搜索过滤器。 |
iim_ldap.searchlimit |
40 |
一次搜索返回的最大条目数。值 -1 表示在此服务器中禁用搜索,值 0 表示无限搜索。 |
iim_ldap.userdisplay |
cn |
用于最终用户的显示名称的 LDAP 属性。 |
iim_ldap.groupdisplay |
cn |
用于组的显示名称的 LDAP 属性。 |
im_ldap.useruidattr |
uid |
用作最终用户 UID 的 LDAP 属性。 |
im_ldap.groupmemberattr |
uniquemember |
给出组成员列表的 LDAP 属性。 |
iim_ldap.usermailattr |
|
应包含最终用户置备的电子邮件地址的 LDAP 属性。在发送电子邮件消息给脱机最终用户时使用。 |
iim_ldap.userattributes |
无 |
包含来自 LDAP 用户条目的自定义属性列表的 LDAP 属性。 |
iim_ldap.groupattributes |
无 |
包含来自 LDAP 组条目的自定义属性列表的 LDAP 属性。 |
iim_ldap.groupmemberurlattr |
无 |
动态组的成员属性,包含 LDAP 过滤器或 LDAP URL。 |
iim_ldap.useidentityadmin |
如果运行 configure 实用程序时您选择针对策略采用 Access Manager 部署,则默认值为 true。否则,默认值为 false。 |
如果值为 true,则会使用 Access Manager 管理员凭证来绑定到 Directory 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。 |
表 A–3 列出并说明基于 log4j 的日志记录和基于 iim.conf 参数的日志记录的日志记录配置参数。
表 A–3 日志记录配置参数
参数 |
默认值 |
说明 |
---|---|---|
iim.log.iim_server.severity |
INFO |
服务器模块所需的日志记录级别。最高级别到最低级别的可能值为:FATAL、ERROR、WARNING、INFO 和 DEBUG。如果选择较低的日志记录级别,则表示您也会获得更高的级别。例如,如果您选择 WARNING,您会获得 FATAL、ERROR 和 WARNING。 |
iim.log.iim_server.url |
im-runtime-base/log/xmppd.log |
服务器日志文件的位置。此文件需要定期清理,以防磁盘空间溢满。 |
iim.log.iim_mux.severity |
INFO |
多路复用器模块所需的日志记录级别。最高级别到最低级别的可能值为:FATAL、ERROR、WARNING、INFO 和 DEBUG。如果选择较低的日志记录级别,则表示您也会获得更高的级别。例如,如果您选择 WARNING,您会获得 FATAL、ERROR 和 WARNING。 |
iim.log.iim_mux.url |
im-runtime-base/log/mux.log |
多路复用器日志文件的位置。此文件需要定期清理,以防磁盘空间溢满。 |
iim.log.iim_mux.maxlogfiles |
10 |
存储的多路复用器日志文件的最大文件个数。一旦超过此数字,则会删除最早的多路复用器日志文件。 |
iim.log.iim_mux.maxlogfilesize |
10 MB |
此参数包含多路复用器日志文件大小的上限。如果日志文件超过此参数中指定的大小,则会创建一个新的日志文件。 |
iim.log.iim_server.maxlogsize |
此参数包含服务器日志文件大小的上限。如果日志文件超过此参数中指定的大小,则会创建一个新的日志文件。 |
|
iim.log.iim_wd.severity |
INFO |
监视程序所需的日志记录级别。最高级别到最低级别的可能值为:FATAL、ERROR、WARNING、INFO 和 DEBUG。如果选择较低的日志记录级别,则表示您也会获得更高的级别。例如,如果您选择 WARNING,您会获得 FATAL、ERROR 和 WARNING。 |
iim.log.agent-calendar.severity |
INFO |
“日历”代理所需的日志记录级别。最高级别到最低级别的可能值为:FATAL、ERROR、WARNING、INFO 和 DEBUG。如果选择较低的日志记录级别,则表示您也会获得更高的级别。例如,如果您选择 WARNING,您会获得 FATAL、ERROR 和 WARNING。 |
iim.log4j.config |
im-cfg-base |
指定 log4j 配置文件的位置和名称。如果此参数没有值,则记录程序会在 im-cfg-base 中查找 log4j.conf。如果记录程序在 im-cfg-base 中未找到 log4j.conf,则会使用基于参数的日志记录方法来代替 log4j。 |
表 A–4 列出并说明 Instant Messaging 服务器配置参数。
表 A–4 一般 Instant Messaging 服务器配置参数
参数 |
默认值 |
说明 |
|
---|---|---|---|
iim_server.autosubscribe |
FALSE |
指示订阅是否由服务器自动授权。可能的值为 TRUE 和 FALSE。如果为 TRUE,订阅请求后面自动跟随服务器所生成的订阅响应。然后,服务器将修改过的登记表发送给订户和订户添加为联系人的用户。要使用此功能,用户和联系人必须在同一域中。 |
|
iim_server.domainname |
主机的域名 |
您希望此服务器支持的逻辑 Instant Messaging 服务器域名。网络中其他服务器用此名称来识别该服务器。服务器也用它来区别自己与其他服务器的最终用户。不一定是运行 Instant Messaging 服务器的系统的“全限定域名”。 例如,如果系统 iim.xyz.com 是公司 xyz.com 的唯一 Instant Messaging 服务器,则域名可能是 xyz.com。 |
|
iim_server.port |
5269 |
服务器绑定到的并用来侦听其他服务器连接的 IP 地址和端口。对于多宿主计算机而言,如果想要只使用一个特定 IP 地址,IP 地址设置会非常有用。如果没有列出 IP 地址,表示使用 localhost 上的 INADDR_ANY。 |
|
iim_server.useport |
TRUE |
指示服务器是否应在服务器对服务器通信端口侦听。可能的值为 TRUE 和 FALSE。如果值为 TRUE,服务器在由 iim_server.port 定义的端口侦听,或在没有明确定义时使用端口 5269。 |
|
iim_server.clienttimeout |
15 |
指定服务器在丢弃不再有效的客户机连线之前等待的时间(分钟)。例如,当机器关闭时。可接受的最小值为 5。 |
|
iim_server.usesso |
如果运行 configure 实用程序时您针对 SSO 选择采用 Access Manager 部署,则默认值为 1。否则,默认值为 0。 |
此参数告知服务器在验证过程中是否依赖 SSO 提供者。SSO 提供者是服务器用于通过 SSO 服务验证会话 ID 的模块。 Access Manager 会话 API 为 Instant Messaging 服务器提供验证客户机发送的会话 ID 的功能。 此参数的值可为 0、1 或 -1。 0 - 不使用 SSO 提供者。 1 - 先使用 SSO 提供者,如果 SSO 验证失败,则默认为 LDAP。 -1- 只使用 SSO 提供者,即使 SSO 验证失败时也不尝试 LDAP 验证。 iim_server.usesso 参数与 iim_server.ssoprovider 参数结合使用。 |
|
iim_server.ssoprovider |
无 |
指定实施 com.sun.im.provider.SSOProvider 接口的类。如果 iim_server.usesso 不等于 0 并且未设置此选项,则服务器会使用默认的、基于 Access Manager 的 SSO 提供者。 |
|
iim.policy.modules |
如果运行 configure 实用程序时您针对策略选择采用 Access Manager 部署,则默认值为 identity。否则,默认值为 iim_ldap。 |
如果该值为 identity,表示使用 Sun Java System Access Manager 进行策略存储。如果该值为 iim_ldap,则使用目录。 |
|
iim.userprops.store |
file |
如果该值为 file,则表示用户属性存储于用户属性文件中。如果该值为 ldap,则使用目录。 |
|
iim_server.msg_archive |
false |
此参数指定是启用还是禁用归档提供者。将该值设置为 false 可禁用所有归档。将该值设置为 true 可启用所有归档,包括 Portal、电子邮件以及您想要使用的任何自定义归档。 |
|
iim_server.msg_archive.provider |
无 |
此参数包含归档提供者的列表。此参数允许多个值,各个值用逗号 (,) 分隔。 如果您使用的是基于“Portal Server 搜索”的归档,则该值应为 com.iplanet.im.server.IMPSArchive。如果您使用的是电子邮件归档,则该值应为 com.iplanet.im.server.EmailIMArchive。 |
|
iim_server.conversion |
false |
此参数指定是否启用消息转换。它指定配置的“消息转换提供者”列表是否用于消息转换。 |
|
iim_server.conversion.provider |
无 |
此参数包含用于消息转换的“消息转换提供者”列表。 此参数允许多个值,各个值用逗号 (,) 分隔。 |
|
iim_server.servertimeout |
-1 |
可以将服务器配置为:在远程服务器不活动时自动关闭其打开的连接。通过定期测定远程服务器最后一次给本服务器发送请求的时间来完成此任务。如果远程服务器最后一次发送请求的时间超过 iim_server.servertimeout 参数的值,则会终止到远程服务器的连接。 参数值以分钟为单位。 |
|
iim_server.enable |
true |
此值定义是否启用 Instant Messaging 服务器。此参数设置为 false 时将启用 Instant Messaging 多路复用器。 |
|
iim_server.conversion.external.command |
无 |
此参数包含用于消息转换的外部命令。 |
|
iim_server.stat_frequency |
1 |
此参数包含服务器将活动摘要记录到日志文件中的频率。仅当服务器最低日志严重级别设置为 INFO 或更低时,服务器才将活动摘要记录到日志文件。值以分钟为单位。 |
|
iim_server.certnickname |
Server-Cert |
此值包含在安装证书时输入的证书名称。 证书名称区分大小写。 |
|
iim_server.sslkeystore |
无 |
包含服务器 Java 密钥库 (JKS) 的相对路径和文件名。例如:
|
|
iim_server.keystorepasswordfile |
sslpassword.conf |
此值包含具有键数据库密码的文件的相对路径和名称。此文件包含下列行: Internal (Software) Token:password 其中,password 是保护键数据库的密码。 |
|
iim_server.requiressl |
false |
如果为 true,则服务器将终止任何在设置了初始流会话后未请求 TLS 连接的连接。这包括来自客户机、其他服务器和服务器组件(例如,XMPP/HTTP 网关 和代理,多路复用器除外)的连接。 |
|
iim_server.trust_all_cert |
false |
如果此值为 true,则服务器将信任所有证书并同时将证书信息添加到日志文件中。 |
为实现网络中多台 Instant Messaging 服务器之间的通信,必须对您的服务器做适当配置,使其本身能够与其他服务器协调一致,与要连接到您服务器的每台协同服务器(又称协作服务器)协调一致。协同服务器用其 Instant Messaging 域名、主机和端口号、服务器 ID 和密码标识其本身。
每台协作服务器都有一个符号名,即由字母和数字组成的字符串,例如 coserver1。可以使用符号命名规则指定多台服务器。
当 Instant Messaging 服务器以这种方式配置时,您可以组成一个更大的 Instant Messaging 社区。这样,每台服务器上的最终用户可以执行以下操作:
与其他各服务器上的最终用户进行通信
使用其他服务器上的会议室
订阅其他服务器上的新闻频道(取决于访问权限)
表 A–5 列出并说明多重服务器配置参数。
表 A–5 多重服务器配置参数
参数 |
默认值 |
说明 |
---|---|---|
iim_server.serverid |
无 |
此服务器用来区别自身与其他所有服务器的字符串。 |
iim_server.password |
无 |
此服务器用来向其他所有服务器证明自己身份的密码。 |
iim_server.coservers |
无 |
以逗号分隔的列表,包含可以连接到此服务器的服务器之符号名称。任何有意义的名称都可以使用,但它们必须与用于 *.serverid、*.password 和 *.host 参数的名称相符。示例: iim_server.coservers=coserver1,coserver2 或 iim_server.coservers=abc,xyz,ntc |
iim_server.coserver1 .serverid |
无 |
名为 coserver1 的协作服务器用来向本服务器证明自己身份的标识字符串。例如,如果您已在 iim_server.coservers 列表中使用了 abc,则其 serverid 的相应名称应为 iim_server.abc.serverid。 |
iim_server.coserver1 .password |
无 |
名为 coserver1 的协作服务器用来向本服务器证明自己身份的密码。例如,如果您已在 iim_server.coservers 列表中使用了 abc,则其密码的相应名称应为 iim_server.abc.password。 |
iim_server.coserver1 .host |
无 |
本服务器上的最终用户在与 coserver1 服务器上的最终用户通信时,需要连接的 IP 地址和端口。例如,如果您已在 iim_server.coservers 列表中使用了 abc,则其主机的相应名称应为 iim_server.abc.host 。 格式为 name: port 或 IPaddress: port。 |
iim_server.coserver1 .requiressl |
False |
表示当与 coserver1 标识的服务器进行通信时,此服务器是否需要 TLS。可能的值为 TRUE 和 FALSE。 |
表 A–6 列出并说明多路复用器配置参数。
表 A–6 多路复用器配置参数
参数 |
默认值 |
说明 |
|
---|---|---|---|
iim_mux.listenport |
多路复用器名或 IP 地址:5222 |
IP 地址或 FQDN 以及多路复用器侦听从 Instant Messenger 收到的请求时所用的侦听端口。该值的格式为 IPaddress:port 或 multiplexorname: port。如果没有列出 IP 地址或域名,则使用 localhost 上的 INADDR_ANY。 如果更改此值,请同时更改 im.html 和 im.jnlp 文件,使它们与端口值匹配。 |
|
iim_mux.serverport |
45222 |
多路复用器与之通信的 Instant Messaging 服务器和端口。该值的格式为 servername:port 或 IPaddress: port。 |
|
iim_mux.numinstances |
1 |
多路复用器的实例数。此参数仅对 Solaris 平台有效。 |
|
iim_mux.maxthreads |
5 |
每个多路复用器实例的最大线程数。 |
|
iim_mux.maxsessions |
2000 |
每个多路复用器过程的最大并行连接数。 |
|
iim_mux.usessl |
off |
如果该值设置为 on,则对于所接受的每一个连接,多路复用器在交换任何应用数据前都要求进行 SSL 握手。 |
|
iim_mux.secconfigdir |
/etc/opt/SUNWiim/ default/config |
此目录包含键和证书数据库。此外,它通常还包含安全模块数据库。如果您创建多个 Instant Messaging 实例,则 /default 目录的名称可能会不同。 |
|
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 |
/etc/opt/SUNWiim/default /config/sslpassword.conf |
此值包含具有键数据库密码的文件的相对路径和名称。此文件包含下列行:
其中,password 是保护键数据库的密码。 如果您创建多个 Instant Messaging 实例,则 /default 目录的名称可能会不同。 |
|
iim_mux.stat_frequency |
600 |
此值应包含多路复用器将活动摘要记录到日志文件中所用的频率。最小值为 10 秒。 |
|
iim_mux.enable |
true |
如果该值为 true,则多路复用器将针对此实例运行。如果该值为 false,则多路复用器将不针对此实例运行。 |
表 A–7 列出您用于管理 Instant Messaging 重定向服务器的参数。
表 A–7 重定向服务器参数
参数 |
默认值 |
说明 |
---|---|---|
iim_server.redirect.provider |
无 |
实施 com.sun.im.provider.Redirector 接口的重定向提供者名称或类的列表,以逗号分隔。此参数的任何值均将服务器实例定义为重定向服务器。支持的值包括 db、roundrobin、regex 以及实施 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 文件中所定义主机进行连接所使用的时间间隔。重定向服务器轮询这些主机以确定它们是否在线以及能够接受客户机连接。 |
表 A–8 列出用于管理 Instant Messaging 归档的参数。
表 A–8 归档参数
参数 |
默认值 |
说明 |
---|---|---|
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 |
此参数将包含 true 或 false。 true - 只有参数 iim_arch.readacl.admin 指定的管理员的 DN 将会添加到 ReadACL 字段,覆盖 ReadACL 字段的默认行为。 false - 除了默认行为之外,参数 iim_arch.readacl.admin 指定的管理员的 DN 也将添加到 ReadACL 字段。 |
iim_arch.categories |
all |
此参数包含可以归档的消息类型列表。 可能的值如下: poll 警报 chat conference news 可以指定多个值,以逗号 (,) 分隔。 |
iim_arch.categoryname |
无 |
如果没有为任何类别指定类别名称,则此参数的值用作类别名称。 |
iim_arch.alert.categoryname |
无 |
此参数包含含有归档警报消息的类别名称。 不要求将警报消息归为专用的类别。 |
iim_arch.poll.categoryname |
无 |
此参数包含含有归档轮询消息的类别名称。 不要求将轮询消息归为专用的类别。 |
iim_arch.conference.categoryname |
无 |
此参数包含含有归档会议消息的类别名称。 不要求将会议消息归为专用的类别。 |
iim_arch.chat.categoryname |
名称 |
此参数包含含有归档聊天消息的类别名称。 不要求将聊天消息归为专用的类别。 |
iim_arch.news.categoryname |
无 |
此参数包含含有归档新闻消息的类别名称。 不要求将新闻消息归为专用的类别。 |
iim_arch.conference.quiettime |
5 |
此参数包含房间(公共和专用)中两个连续消息之间的最大沉默持续时间,超过此时间后 RD 将过期,并会创建一个新的 RD 用于存档消息。值以分钟为单位。 |
iim_arch.poll.maxwaittime |
15 |
此参数包含轮询数据在服务器中缓冲的最长时间。值以分钟为单位。 |
iim_arch.ignoreexplicitdeny |
true |
此参数将包含 true 或 false。 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 Server 搜索服务器”中启用“文档级安全性”,则需要此参数。 |
iim_arch.portal.adminpassword |
无 |
此参数的值应为 iim_arch.portal.admindn 参数所指定的管理用户的密码。 仅在“Portal 搜索服务器”中启用“文档级安全性”时才需要此参数。 |
iim_arch.portal.search.database |
无 |
此参数的值应为 Instant Messaging 服务器用来存储归档消息的数据库的名称。如果没有定义此参数,则所有消息都会存储在“Portal Server 搜索”的默认数据库中。 |
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 的标题名称的值。 |
监视程序监视服务器进程,如果它确定服务器未运行,则尝试重启服务器。参见管理监视程序进程
表 A–9 列出并说明监视程序配置参数。
表 A–9 监视程序配置参数
参数 |
默认值 |
说明 |
---|---|---|
iim_wd.enable |
true |
启用监视程序功能。要重置此参数或禁用监视程序,可将其设置为 false。 为避免冲突,如果使用操作系统管理控制台来监视 Instant Messaging 服务器,则应禁用监视程序。 |
iim_wd.period |
300(秒) |
监视程序定期轮询服务器,检查其是否在运行。此参数设置两次状态轮询之间的时间间隔。 |
iim_wd.maxRetries |
3 |
设置在关闭并重新启动服务器前,监视程序尝试与 Instant Messaging 服务器联络的次数。最大值为十次重试。 |
表 A–10 中的参数配置服务器如何与 Sun Java Enterprise System Monitoring Framework 交互操作。
表 A–10 监视参数
参数 |
默认值 |
说明 |
---|---|---|
iim_server.monitor.enable |
false |
供 Sun Java Enterprise System Monitoring Framework 使用。如果为 true,则配置服务器使其活动可用于 mfwk。否则,服务器不会使其活动可用。 |
iim_server.monitor.htmlport |
无。 |
如果指定,则打开指定端口上的 JMX HTML 适配器端口。默认情况下不启用此端口,因为开放此端口可能会带来安全风险。 |
代理(如“日历”代理)使 Instant Messaging 服务器内部的功能得以实现,并能增强其与其他 Sun Java System 服务器的互操作性。
表 A–11 列出并说明代理配置参数。
表 A–11 代理配置参数
参数 |
默认值 |
说明 |
---|---|---|
jms.consumers |
无 |
与“日历”代理一起使用。包含报警名称。此参数值必须设置为: cal_reminder |
jms.consumer.cal_reminder.destination |
无 |
用于“日历”代理。报警的目的地。它必须与 ics.conf 文件中 caldb.serveralarms.url 配置参数的值相同。例如, enp:///ics/customalarm |
jms.consumer.cal_reminder.provider |
无 |
用于“日历”代理。提供者名称。通常,此项设置为 ens。此参数的值必须与 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.providers |
无 |
用于“日历”代理。提供者名称。通常,将此参数值设置为 ens。此项必须与 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 |
iim_agent.enable |
False |
若为 TRUE,则启用 Instant Messaging 代理。将该值设置为 FALSE,或从 iim.conf 中删除该参数可禁用所有代理。 |
iim_agent.agent-calendar.enable |
无 |
用于“日历”代理。如果为 TRUE 或不在 iim.conf 中,则加载专门启用“日历”代理的组件。 |
agent-calendar.jid |
无 |
“日历”代理的 JID。 |
agent-calendar.password |
无 |
定义“日历”代理连接 Instant Messaging 服务器所用的密码。 |
iim_server.components |
无 |
将“日历”代理说明为 Instant Messaging 服务器的组件。此参数的值必须设置为: agent-calendar |
Instant Messaging 在 httpbind.conf 文件中存储 XMPP/HTTP 网关的配置设置。本附录中的以下各节说明配置参数和文件:
任何时候修改 httpbind.conf 文件,您都需要使用 Web 容器或应用服务器提供的工具来重新启动 XMPP/HTTP 网关。
默认情况下,configure 实用程序在默认服务器实例的“配置目录”(im-cfg-base) 内创建 httpbind.conf 文件,例如:
在 Solaris 中:
/etc/opt/SUNWiim/default/config/httpbind.conf
在 Linux 中:
/etc/opt/sun/im/default/config/httpbind.conf
如果创建多个 Instant Messaging 实例,/default 目录的名称会因实例不同而各异。有关更多信息,参见在单个 Instant Messaging 安装中创建多个实例。此文件由 configure 实用程序创建,仅位于默认实例的 im-cfg-base 目录中。
httpbind.conf 文件是一个 ASCII 纯文本文件,每行定义一个网关参数及其值:
参数及其值用等号 (=) 分隔,等号前后允许有空格和制表符。
值可以用双引号 (" ") 括住。如果一个参数允许多个值,则整个值字符串必须用双引号括住。
注释行必须以感叹号 (!) 作为第一个字符。注释行是仅供参考的信息,会被服务器忽略。
如果某个参数多次出现,则所列最后一个参数的值将覆盖前一个值。
反斜杠 (\) 是接续符,表示该值超过一行。
每行都用行终止符(\n、 \r 或 \r\n)终止。
键由每行中从第一个非空格字符开始到第一个 ASCII 等号 (=) 或分号 (;) 止的所有字符。如果键以分号结束,则其后接有“lang-”和一个表示翻译此值所用语言的标记。语言标记后接等号 (=)。忽略等号前后的所有空白字符。该行的所有剩余字符都成为与值字符串相关的部分。
若值字符串含多个值,则用逗号 (,) 分隔。
如果值内存在特殊字符(例如:逗号、空格、换行符、制表符、双引号或反斜杠),则必须用双引号括住整个值。此外,值中的每个回车、换行符、制表符、反斜杠和双引号都必须用反斜杠 (\) 指定。
如果更改 httpbind.conf,则必须刷新网关的 Web 容器才能使新的配置设置生效。
httpbind.conf 文件通过 configure 实用程序进行初始化,并且只能如本指南中所述进行修改。
表 B–1 说明 httpbind.conf 中的配置参数。
表 B–1 httpbind.conf 中的 XMPP/HTTP 网关配置参数
参数 |
默认值 |
说明 |
---|---|---|
httpbind.pool.nodeId |
无 |
如果 httpbind.pool.support 设置为 true,则此参数指定服务器池中服务器节点的完整 URL。此 URL 不应指向负载平衡器,而应指向 Instant Messaging 服务器实例。 |
httpbind.pool.support |
false |
此参数定义网关是否位于服务器池部署中。如果没有指定 httpbind.pool.nodeId,则此参数的值设置为 false。 此参数的值可能为:
|
httpbind.config |
无 |
包含一个逗号分隔的 ID 键(或 gwdomain-id)列表,网关用它作为配置密钥来确定网关应使用哪些域、主机、主机密码和组件 JID。有关 ID 键的更多信息,参见表 B–2。 |
httpbind.content_type |
text/xml; charset=utf-8 |
网关发送响应回应客户机时使用的 content-type HTTP 头的默认值。 |
httpbind.hold |
无 |
根据 JEP 124 中的定义,指定客户机请求中的 hold 属性的最大允许值。如果客户机指定的值比请求中的网关高,则将使用网关的值。否则,将使用客户机请求中的值。 |
httpbind.inactivity |
180 |
客户机不活动的最长时间(秒),之后网关将终止与客户机的连接。 |
httpbind.log4j.config |
无 |
网关将用于日志记录的 log4j 配置文件的位置。如果您将此参数留为空白,则会关闭网关的日志记录。记录程序名称为“httpbind”(log4j.logger.httpbind)。 |
httpbind.polling |
1(秒) |
客户机发送另一个请求之前必须等待的最短时间(秒)。 |
httpbind.requests |
2 |
客户机可向网关同时发送的请求数。如果此参数的值小于客户机请求中 JEP 124 hold 属性的值,则此参数的值将被设置为 hold+1。不要将此参数设置为 1,因为这样会严重降低性能。有关更多信息,参见 httpbind.hold。 |
httpbind.round_trip_delay |
1(秒) |
考虑到网络延迟,除往返时间超时以外允许的时间量(秒)。该值设置过高可能会降低性能。 |
httpbind.wait_time |
120(秒) |
网关发送响应到客户机的默认时间间隔(秒)。如果客户机等待时间设置为高于网关等待时间,则使用网关的等待时间。 |
表 B–2 说明用于定义 httpbind.config 参数中每个 ID 的键。在表中所述的每个键中,gwdomain-id 是在 httpbind.config 中指定的域标识符。
表 B–2 httpbind.config ID 键
键 |
说明 |
---|---|
gwdomain-id.domains |
逗号分隔的此 ID 的域列表。 |
gwdomain-id.hosts |
空格分隔的此 ID 的主机列表。这些主机必须均能够为 gwdomain-id .domains 中列出的域服务。此列表有助于提供跨域的故障转移。如果请求中没有明确提到路由主机,则此键中列出的主机之一将用于服务该请求。 |
gwdomain-id.componentjid |
用于连接到主机的 JID。 |
gwdomain-id.password |
用于连接到主机的密码。 |
本章在以下各节中说明用于管理 Instant Messaging 的 imadmin 命令:
您可以使用 imadmin 实用程序来启动、停止和刷新 Instant Messaging 服务器和多路复用器。以 root 身份或以配置过程中指定的最终用户身份运行 imadmin。
您必须从安装了 Instant Messaging 服务器的主机调用 imadmin 实用程序。
默认情况下,imadmin 安装在以下位置:
im-svr-base/sbin
表 C–1 列出并说明与 imadmin 命令相关的命令。
表 C–1 imadmin 命令与说明
命令 |
说明 |
---|---|
imadmin assign_services |
如果 iim.policy.modules 设置为 identity,则此命令为您指定的基本 DN 下的现有用户指定 Instant Messaging 和在线服务。该 DN 应为存储用户条目的组织的基本 DN。 如果 iim.policy.modules 设置为 iim_ldap,而 iim.userprops.store 设置为 ldap,则此命令会向目录中的用户条目添加对象类(sunIMUser 和 sunPresenceUser )。Instant Messaging 需要这些对象类,以便在 LDAP 中存储属性。 |
imadmin status (以前为 imadmin check) |
查验组件(server、multiplexor 、agent-calendar 和 watchdog)是否在正常运行并显示结果。如果您没有指定组件,则 imadmin 实用程序会返回关于所有组件的信息。 |
imadmin start |
启动启用的组件。 |
imadmin stop |
停止启用的组件。 |
imadmin refresh |
刷新启用的组件。 |
imadmin start server |
只启动服务器。 |
imadmin stop server |
只停止服务器。 |
imadmin refresh server |
只刷新服务器。 |
imadmin start multiplexor |
只启动多路复用器。 |
imadmin stop multiplexor |
只停止多路复用器。 |
imadmin refresh multiplexor |
只刷新多路复用器。 |
imadmin start agent-calendar |
只启动“日历”代理。 |
imadmin stop agent-calendar |
只停止“日历”代理。 |
imadmin refresh agent-calendar |
只刷新“日历”代理。 |
imadmin start watchdog |
只启动监视程序。 |
imadmin stop watchdog |
只停止监视程序。 |
imadmin refresh watchdog |
只刷新监视程序。 |
imadmin version |
显示版本。 |
imadmin [选项] [操作] [组件]
表 C–2 列出并说明 imadmin 命令的选项。
表 C–2 imadmin 命令的选项
选项 |
说明 |
---|---|
-c alt-config-file |
与 start 和 refresh 操作一起使用,用于指定 /etc/opt/SUNWiim/config/iim.conf 文件之外的配置文件 |
-h |
显示关于 imadmin 命令的帮助。 |
表 C–3 列出并说明在发出各种 imadmin 命令后执行的操作。
表 C–3 imadmin 命令的操作
选项 |
说明 |
---|---|
status (以前为 imadmin check) |
返回关于 Instant Messaging 组件(server、multiplexor、agent-calendar 和 watchdog)的信息。此操作无需提供 [component]。 |
start |
设置 classpath、Java 堆大小并启动所有指定的组件。 |
stop |
停止指定组件的所有守护进程。 |
refresh |
停止然后启动指定的组件。此操作在配置更改后适用。 |
表 C–4 列出并说明 imadmin 命令的组件。
表 C–4 imadmin 命令的组件
选项 |
说明 |
---|---|
agent-calendar |
表示“日历”代理 (agent-calendar)。 |
multiplexor |
仅表示多路复用器。 |
server |
表示 Instant Messaging 服务器。 |
watchdog |
表示监视程序。 |
本章在以下各节中说明 Instant Messaging 使用的 API:
Instant Messaging 提供可以用来开发扩展或集成模块的 Java API。这些 API 的详细文档以 Javadocs 生成的 HTML 文件格式随安装的 Instant Messenger 组件提供。Javadoc 文件安装在 im-svr-base/html/apidocs/ 目录中。要查看 API 文档,可将浏览器指向 codebase/apidocs,其中 codebase 是 Instant Messenger 资源代码库。
以下是 Instant Messaging API:
Instant Messaging API 供位于同一主机或远程主机中的应用程序使用,以访问 Instant Messaging 服务,如“在线状态”、“会议”、“通知”、“轮询”和“新闻频道”。
Instant Messaging 服务 API 可用于:
基于 Java 或基于 Web 的客户机,例如门户通道。
启用另一类客户机的网桥或网关。
将 Instant Messenger 和 Presence 集成到现有的应用程序。
将新内容显示为 Instant Messenger 新闻。
Messenger Bean 是一个动态加载的模块,用于扩展 Instant Messenger 功能。Messenger Bean 可以在现有的 Instant Messenger 窗口中添加操作侦听器(例如按钮和菜单项)和项目侦听器(例如复选框和切换按钮)。当收到最终用户输入或基于最终用户输入的特定于 bean 的操作时会调用项目侦听器。Bean 可以添加其自己的设置面板,并在服务器上保存特定于 bean 的属性。Instant Messenger 接收的任何事件都可以通知 bean,例如,新闻警报消息。
使用 Messenger Bean 的应用程序包括如下功能:
可让最终用户共享应用程序、会议及音频或视频。
可以检索和处理会议的记录。例如,接收或发送的警报的内容,以用于归档目的。
“服务提供者接口 API”可用于扩展 Instant Messaging 服务器功能。“服务提供者接口”由以下独立的 API 组成:
“归档提供者”是一个软件模块,通常提供与归档或审计系统的集成。每个服务器进程均分别调用各自配置的“归档提供者”。
以下服务器进程可调用“归档提供者”:
当发送即时消息时,如警报、轮询、聊天、新闻或会议消息时。
验证事件(例如登录或注销)时。
在线状态发生变化时。
订阅事件时。例如,有人加入或离开会议、订阅或取消订阅新闻频道时。
使用“归档提供者 API”的应用程序如下:
Instant Messaging 归档
Instant Messaging 中默认的 Instant Messaging 归档基于“归档提供者 API”。有关 Instant Messaging 归档的更多信息,参见第 18 章,管理 Instant Messaging 的归档。
为调整大小而记录使用统计资料的应用程序
“消息转换器”将被调用以用于通过服务器的每条消息或每个消息部分。“消息转换器”可能将消息部分完整保留,也可能会修改或删除消息部分。文本部分作为“Java 字符串对象”处理。“消息转换器”将其他附件作为字节流处理,并返回可能不同的字节流;如果要删除附件,则不返回任何内容。
使用“消息转换 API”的应用程序包括:
病毒检查和清除
转换引擎集成
消息内容过滤
“验证提供者 API”提供在不使用基于 Access Manager 密码或令牌的验证服务环境中部署 Instant Messaging 的能力。当最终用户请求验证时会调用此 API,并且它可以与 LDAP 验证结合使用。
通过 Access Manager 进行单点登录 (SSO) 可使用“验证提供者 API”执行。此 API 还可用于与其他验证系统的集成。
本附录说明对 Instant Messaging 的 LDAP 模式所做的修改。
下表列出了添加到 Instant Messaging 的模式和目录中的条目的 LDAP 对象类。
表 E–1 Instant Messaging 对象类
名称 |
说明 |
---|---|
sunIMUser |
包含用户属性。 当您运行 imadmin assign_services 命令时,添加到指定基本 DN 下的用户条目中。 |
sunPresenceUser |
包含用户在线属性。 当您运行 imadmin assign_services 命令时,添加到指定基本 DN 下的用户条目中。 |
sunIMNews |
包含新闻频道属性。 如果 userprops.store 设置为 ldap,则当创建新闻频道时,将向该目录添加一个用于新闻频道的条目。新闻频道条目将包含 sunIMNews 对象类。 |
sunIMConference |
包含会议室属性。 如果 userprops.store 设置为 ldap,则当创建新会议室时,将向该目录添加一个用于会议室的条目。会议室条目将包含 sunIMConference 对象类。 |