Calendar Server 6.3 包括以下更改和新增功能:
以前,可以使用 Delegated Administrator 实用程序为 Schema 2 置备 Calendar Server,而不能使用 Delegated Administrator 控制台来完成。在此发行版之前,控制台是只能管理 Messaging Server 的 Web 图形用户界面。现在控制台还可用于管理日历 LDAP 条目。使用控制台,可以为日历用户、组、资源和域添加、删除或修改 LDAP 条目。控制台中已添加了新的屏幕和菜单项,以便支持 Calendar Server。有关如何使用此界面的说明,请参见 Delegated Administrator 联机帮助。还可以在《Sun Java System Calendar Server 6.3 Administration Guide 》中获取某些信息。
通过添加新的参数和值,在 WCAP 命令中添加了附件支持。
通用 Web 客户端 (Communications Express) 和 Connector for Microsoft Outlook 的用户可以将附件放在他们的事件和任务中,并且可以发送带有邀请的附件。
作为附件支持的一部分,已经对 WCAP 进行了以下更改:
fetchattachment.wcap:添加了一个新命令,以便于获取附件。只会获取附件,而不获取事件或任务数据自身。
deleteattach:storeevents 命令的新参数,用于从事件或任务中删除现有附件,而不删除事件或任务自身。
fetchattach:已添加到所有 fetch_by_* 命令的新参数,以便可以返回附件以及事件和任务数据自身。
sendattach:storeevents 命令的新参数,用于指定实际附件是否随 iTIP 邀请一起发送。
X-S1CS-CLIENT-ATTACH-ID:包含附件唯一标识符的 X-Token。只有在存储附件时客户端提供附件 ID 的情况下才发出 X-Token。否则,实际附件将随事件一起发送。
过时的 attachments 参数(可以在 storeevents 和 storetodos 命令中找到)可以存储 Calendar Server 数据存储库之外所存储的附件的 URL 引用。为了保证向后兼容性,在此版本中保留了这种使用附件的方式,但在未来发行的版本中会将其删除。
有关附件的详细信息,请参见《Sun Java System Calendar Server 6.3 WCAP Developer’s Guide》。
现在可以使用 Delegated Administrator 创建 LDAP 组。组具有以下功能:
组是一个用户列表。组不“包含”所列出的用户。它不是容器。
组可以具有组日历。
发送到组的邀请驻留在所有成员的日历和组日历中。
组的所有成员对组日历享有相同的访问权限。
组日历没有主要所有者。
Calendar Server 软件最早的版本中没有域结构。所有用户和组 LDAP 记录都位于根目录下。在后来的版本中,可以选择建立一个或多个域(称为托管域或虚拟域)。随着 Calendar Server 6.3 软件的发行,默认情况下所有安装都要使用多域模式。也就是说,您必须至少有一个域(默认域)位于根域下。所有用户和组 LDAP 条目必须位于此默认域下,也可以选择拥有更多的域。 在多域模式中,每个规范域必须包含唯一用户和组 ID。有关多个域的详细信息,请参见《Sun Java System Calendar Server 6.3 管理指南》,特别是《Sun Java System Calendar Server 6.3 Administration Guide》中的第 10 章 “Setting Up a Multiple Domain Calendar Server 6.3 Environment”。
创建运行时环境时必须运行配置程序 csconfigurator.sh,它将提示您输入默认域的名称。如果输入的域不存在,该程序将为您创建它。
如果以前的 Calendar Server 部署没有使用多域(甚至没有使用单域),您需要将用户和组 LDAP 记录移动到新的默认域下。
要在 Schema 版本 2 环境中创建其他域,请使用 Sun Java System Delegated Administrator 控制台或实用程序。有关 Delegated Administrator 的详细信息,请参见《Sun Java System Delegated Administrator 6.4 管理指南》。
如果使用的是 Schema 版本 1 并且不打算迁移到 Schema 版本 2,可以使用 Calendar Server 实用程序 csdomain 创建其他域。
配置程序针对以下功能添加了相应的屏幕:
自此发行版开始,根目录下始终至少有一个域。此域将是默认域。现在可以在配置程序中为多域环境指定默认域的名称。
现在可以为分布式数据库环境(使用 DWP 协议和 CLD 插件)指定前端和后端计算机的名称。日历数据库可以分布在一个或多个后端计算机上。这些计算机可以与一个前端计算机相关联。在新的配置程序屏幕中可以命名后端计算机,并将其与前端计算机相关联。
在默认域屏幕中添加了一个新字段,用于输入日历超级用户 (calmaster) 的电子邮件地址。
对于周期性事件,发送给参与者的电子邮件邀请中现在包含周期详细信息。
csstored 守护进程现在管理各种 Calendar Server 数据库。由于访问存储库的每项服务都要求成功启动此存储库服务,因此只要 Calendar Server 系统在运行,则应该在所有服务器(前端和后端)上运行此存储库服务。常规的启动和关闭命令(start-cal 和 stop-cal)可将 csstored 与其他守护进程一起启动和停止。
在早期版本中,如果您不想配置自动备份,则无需运行 PERL 脚本 csstored.pl。您可以根据需要随时启动和停止该脚本。现在已停用 PERL 脚本,而使用 csstored 守护进程。无论您是否配置自动备份,都必须运行此守护进程。
以前,您可以通过将 ics.conf 参数 local.store.enable 设置为 "no" 来禁止运行该脚本。但现在必须始终启用 csstored(默认情况下将 local.store.enable 设置为 "yes")。
Calendar Server 和 Messaging Server 现在使用相同的停止和启动机制。start-cal 命令启动 watcher 进程,然后启动所有其他进程。watcher 进程知道其他服务的所有相关性以及这些服务的启动顺序。
每个注册的服务(进程)都将打开与 Watcher 的连接。如果某个进程在未正常断开连接的情况下结束,Watcher 将自动重新启动该进程。如果该进程在定义的时间间隔内结束两次,Watcher 将不再重新启动该进程。此超时时间间隔是可配置的。
其他 Watcher 信息:
Watcher 将监视在其中注册的所有服务。对于 Calendar Server,注册的进程包括: cshttpd、csadmind、csdwpd、csnotifyd 和 csstored。
必须启用 csstored 守护程序。确保将配置参数 local.store.enable 设置为 "y"。csstored 的启用在 Calendar Server 早期版本中是可选的,但现在是必需的。csstored 守护程序必须在访问存储库的每个服务启动之前成功启动。如果 csstored 停止,则相关进程也必须停止然后再重新启动。
Watcher 在默认情况下处于启用状态。为了管理 Watcher 进程,已向 ics.conf 文件中添加了新参数:
local.watcher.enable = "y":启动程序 (csservice) 尝试在任何其他服务之前启动 Watcher。如果此参数设置为 "n",则 Watcher 程序将被禁用。
service.autorestart = "y":Watcher 将自动重新启动已停止的服务。如果设置为 "n",则 Watcher 不会重新启动已停止的服务。如果将此参数设置为 "n",则 Watcher 仍将监视服务,并将故障或非响应错误消息发送到控制台和 cal-svr-base/data/log 文件。
local.autorestart.timeout = "600":默认时间,在此时间内另一个服务器故障会触发 Watcher 停止重新启动的尝试。
local.watcher.port:默认端口为 "49994";但是,如果您有 Messaging Server,它也将侦听此端口,并且会与 Calendar Server 发生冲突。要避免可能的冲突,较安全的做法是为 Watcher 选择其他端口进行侦听。
Watcher 写入单个日志 cal-svr-base/data/log/watcher.log,其中包含以下信息:
发送到管理控制台的故障通知和非响应错误消息。
所有服务器停止和启动的记录。
如果服务器在超时时间段内发生两次故障,系统将停止重新启动该服务器的尝试。在 HA 系统中,将关闭 Calendar Server 并向其他系统进行故障转移。
csservice 的公用接口为 start-cal 和 stop-cal。本部分介绍上述每个包装脚本的用法,并包含解释选项的表格,以及要启动或停止的组件列表。
start-cal 的用法如下:
./start-cal [options...] [components...]
以下是选项列表:
显示此帮助列表。
启用调试模式。
列出活动的服务。
列出启用的服务。
列出所有服务。
以下是组件列表:
watcher |
ens |
store |
notify |
admin |
http |
dwp |
如果未列出任何组件,则 start-cal 将启动所有已启用的服务。
stop-cal 的用法如下:
./stop-cal [options...] [components...]
以下是选项列表:
显示此帮助列表。
启用调试模式。
强制停止使用 SIGKILL。(这只适用于 UNIX® 平台。)
以下是组件列表:
watcher |
mfagent |
ens |
store |
notify |
admin |
http |
dwp |
如果未列出任何组件,则 stop-cal 将停止所有已启用的服务。
本部分介绍 Monitoring Framework 的 Calendar Server 实现,包含以下主题:
可以在《Sun Java Enterprise System 5 Monitoring Guide》中找到有关 Java Enterprise System Monitoring Framework 的详细信息。
Calendar Server 和 Messaging Server 都最低限度地集成到了 Java Enterprise System 的 Monitoring Framework 中。当 Monitoring Framework 运行时,它将定期检查属性 operationalStatus,其状态可以是 OK(表明系统正在运行)或 DOWN(表明系统未运行)。
Monitoring Framework 代理 (csmfagent) 这个新进程会在系统启动 (start-cal) 时启动。这是第一个启动的进程。此进程将实例化应用程序,并将其状态声明为 OK。它还将捕获 SIGTERM,并在捕获后将状态声明为 DOWN,然后退出。
类似地,如果 Watcher 已被配置并且正在运行,则当系统的任何部分出现故障或无响应时,Watcher 都会发出 SIGTERM 信号,从而停止 csmfagent。
对配置文件 ics.conf 进行编辑,以便包含以下参数:
local.csmfagent.enable = "y"
执行以下两个步骤:
将 /opt/SUNWcsgar/config/com.sun.cmm.cs.xml 复制到 /opt/SUNWmfwk/xml。
停止 Manufacturing Framework 进程,然后重新启动。
使用 Monitoring Framework 时有两个要求:
必须安装 Java Enterprise System Monitoring Framework (JESMF)。
如果不安装 JESMF,则 csmfagent 不会运行。
Calendar Server 必须能够找到必要的库。
Calendar Server 使用 /opt/SUNWics5/lib 中的符号链接查找这些库。
以下是 JESMF 库:
/opt/SUNWmfwk/lib/libMfTransaction.so |
/opt/SUNWmfwk/lib/libMfRelations.so |
/opt/SUNWmfwk/lib/libMflog4c.so |
/opt/SUNWmfwk/lib/libMfMEServer.so |
/opt/SUNWmfwk/lib/libmfBeepConnectorServer.so |
/opt/SUNWmfwk/lib/libMfRserver.so |
/opt/SUNWmfwk/lib/libMfMEInstrum.so |
/opt/SUNWmfwk/lib/libMfDiscovery.so |
/opt/SUNWmfwk/lib/libMfHashTable.so |
/opt/SUNWmfwk/lib/libMflog.so |
/opt/SUNWmfwk/lib/libasn1cebuf.so |
/opt/SUNWmfwk/lib/libbeepcore.so |
/opt/SUNWmfwk/lib/libbeepxmlutil.so |
/opt/SUNWmfwk/lib/libbptostransport.so |
/opt/SUNWmfwk/lib/libbptosutil.so |
/opt/SUNWmfwk/lib/libbptoswrapper.so |
/opt/SUNWmfwk/lib/libbputil.so |
/opt/SUNWmfwk/lib/libcmm_native.so |
/opt/SUNWmfwk/lib/libmfCserver.so |
/opt/SUNWmfwk/lib/libmfNotificationProfile.so |
/opt/SUNWmfwk/lib/libmfRequestResponseProfile.so |
/opt/SUNWmfwk/lib/libmfTimers.so |
/opt/SUNWmfwk/lib/libmfTimersJNI.so |
/opt/SUNWmfwk/lib/libmfUtils.so |
/opt/SUNWmfwk/lib/libmfber.so |
/opt/SUNWmfwk/lib/libmfberj.so |
/opt/SUNWmfwk/lib/libxmlglobal.so |
这是所有 JESMF 库的列表。可能并非所有库对于实现 Monitoring Framework 的 Calendar Server 部分而言都是必要的。
在此发行版中,有两种用于发送事件通知和警报的通知服务:Sun Java System Message Queue (JMQ) 和 Event Notification System (ENS)。在将来的发行版中,Communications Service 产品只使用 JMQ,ENS 将被删除。但是在此发行版中,Communications Services 产品(Messaging Server、Calendar Server 和 Instant Messaging)对 ENS 仍具有内部相关性,您可以继续使用 ENS 来发送通知和警报。
要使用 JMQ(而不是 ENS),必须安装并配置 Sun Java System Message Queue。除此之外,您必须编写自己的通知,因为 Calendar Server 6.3 不提供通知。
使用 Sun Java Enterprise System 安装程序安装该产品。有关配置 Message Queue 的信息,请参见 Message Queue 文档。
要为 JMQ 配置 Calendar Server,必须将以下行添加到 ics.conf 文件中:
local.server.csmfagent.enable = "yes"
caldb.serveralarms.jmqlib = "/opt/SUNWics5/cal/lib/libmqcrt.so"(适用于 Solaris)
或者,
caldb.serveralarms.jmqlib = "/opt/sun/calendar/lib/libmqcrt.so"(适用于 Linux)
caldb.serveralarms.dispatchtype = "jmq"
caldb.serveralarms.jmqhost = "localhost"
caldb.serveralarms.jmqport = "7676"
caldb.serveralarms.jmqUser = "guest"
caldb.serveralarms.jmqPWD = "guest"
caldb.serveralarms.jmqTopic = "JES-CS"
每个通知都必须具有以下属性:MQ_MESSAGE_TYPE_HEADER_PROPERTY。此属性标识通知的类型。
此外,通知还可以具有其他属性,如下表所示:
字符串属性,表明此通知所产生的操作类型。此属性可以具有以下值:"EMAIL"、"AUDIO"、"DISPLAY"、"PROCEDURE" 和 "FLASHING"。
包含警报 ID 的字符串属性。
包含日历 ID 的字符串属性。
表明组件类型的字符串属性。该值为 "event" 或 "todo"。
包含周期 ID 的整型属性。
包含组件 ID 的字符串属性,组件 ID 为事件 ID 或待办事项 ID(任务 ID)。
通知分为两种类型:事件和待办事项的警报通知和更新通知。
对于警报通知,MQ_MESSAGE_TYPE_HEADER_PROPERTY 的值只会是 "alarm"。
对于更新通知,MQ_MESSAGE_TYPE_HEADER_PROPERTY 的值取决于触发此通知的操作类型。表 2–2 列出了此属性的触发操作和相应值。
表 2–2 更新通知值
触发 |
更新通知值 |
---|---|
删除日历 |
DELETECAL |
修改事件 |
MODIFYEVENT |
修改待办事项(任务) |
MODIFYTODO |
创建事件 |
CREATEEVENT |
创建待办事项(任务) |
CREATETODO |
刷新事件 |
REFRESHEVENT |
刷新待办事项(任务) |
REFRESHTODO |
回复事件 |
REPLYEVENT |
回复待办事项 |
REPLYTODO |
现在,当参与者回复邀请时,可以向组织者发送电子邮件通知。
可以通过设置 ics.conf 参数 ine.reply.enable 来配置此功能。设置为 "y" 可为整个系统启用此功能。设置为 "n" 可禁用此功能。此功能在默认情况下处于启用状态。
三种回复类型为:接受、拒绝、暂定接受。通知表明回复是针对单个邀请还是针对周期性事件。已添加了新的邮件格式文件参数,如下所示。另外,还添加了相应的格式文件:
calmail.imipeventacceptnotification.fname= "mail_eventacceptnotification.fmt"
calmail.imipeventdeclinenotification.fname= "mail_eventdeclinenotification.fmt"
calmail.imipeventtentativeacceptnotification.fname= "mail_eventtentativeacceptnotification.fmt"
calmail.imipeventacceptnotificationrecur.fname= "mail_eventacceptnotificationrecur.fmt"
calmail.imipeventdeclinenotificationrecur.fname= "mail_eventdeclinenotificationrecur.fmt"
calmail.imipeventtentativeacceptnotificationrecur.fname= "mail_eventtentativeacceptnotificationrecur.fmt"
此功能不是用户首选项。也就是说,它是系统范围的配置参数,因此将应用于发送邀请的所有用户。
有关为电子邮件通知配置 Calendar Server 的详细信息,请参见《Sun Java System Calendar Server 6.3 Administration Guide》中的“To Enable Email Notifications”。
WCAP 接口已经被更改为允许修改参与者的日历事件副本,包括摘要和说明字段。
Calendar Server 6.3 实用程序 rename 包括重命名日历数据时删除的项目。
已拒绝的事件在闲-忙日历中不再显示为忙。
在 Calendar Server 的早期版本中,Calendar Express(旧版用户界面)是自动安装和启用的。即使不使用该界面,您也无法禁用它。如果打算升级到 Calendar Server 6.3,升级过程会将 service.http.ui.enable="y" 添加到 ics.conf 文件。这将使旧版 UI 处于启用状态,如果想要使用它,不必再进行任何操作。
要禁用 Calendar Express,请在 ics.conf 文件中将 service.http.ui.enable 的值设置为 "n"。
在全新安装中,不会再自动安装 Calendar Express。 如果要执行 Calendar Server 6.3 的全新安装,但希望使用 Calendar Express 作为用户界面,则必须使用 Communications Suite 5 安装程序明确地安装 Calendar Express。然后,必须通过将 service.http.ui.enable="y" 添加到 ics.conf 文件来对其进行配置。(全新安装的默认内部设置为 "n",所以必须明确地将其设置为 "y"。)
如果您要从早期版本的 Calendar Server 进行升级,则升级过程会将该参数添加到 ics.conf 文件中,并将其值设置为 "y"。这样可以在不进行任何更改的情况下继续使用传统的用户界面。但是,如果您希望禁用传统界面,请将此参数设置为 "n"。
以前,对于分布式数据库环境(使用 DWP 协议和 CLD 插件),由于大端字节序和小端字节序之间的问题,前端进程和后端进程必须安装在相同的硬件平台上。现在的情况已不再相同。前端进程和后端进程现在可以安装在不同的硬件平台上。
例如,前端计算机可以是 X-86 平台的计算机,而后端计算机可以是 SPARC 平台的计算机。
由 Calendar Server 发送的消息现在与 iTIP 兼容(可用于 Microsoft Outlook 互操作性)。
要增强安全性,现在可以在运行 comm_dssetup.pl 时指定一个密码文件而不是文本密码。使用新的 -j <passwordfilename> 选项,可以保护密码并增强安全性。这对于脚本特别有用。如果您的脚本当前会暴露密码,并且您希望更改这些脚本,请删除 -w < password> 选项,并用此新选项替换该选项。
这是对问题 #6392093 的修复。
在早期版本的 Calendar Server 中,csdb、cscal 和 csuser 位于 cal/bin 目录中,但现在它们位于 cal/sbin 目录中。
由于对 Calendar Server 程序代码的更改,ics.conf 文件也发生了以下更改: