E.2.22 事件通知服务器 (Event Notification Server, ENS) 配置
可将 Calendar Server 配置为使用外部通用服务,即事件通知服务 (ENS),该服务接受服务器级别的事件(可按特定的兴趣区域归类)报告,然后通知其他已注册的对某些事件感兴趣的服务器。Calendar Server 使用 ENS 发送和接收警报通知,包括日历事件和任务的创建、删除或修改以及常规操作警告和错误消息。
下表显示了ics.conf 中的事件通知服务器 (Event Notification Server, ENS) 配置参数。以及每个参数的默认值和说明。
表 E–22 ics.conf 文件中的事件通知服务 (ENS) 配置参数参数默认值说明
service.ens.enable"yes"如果设置为 "yes",则在启动所有服务时启动 enpd 服务,并在停止所有服务时停止 enpd。
service.ens.host"localhost"运行 ENS 的计算机的主机名。
service.ens.port"57997"运行 ENS 的计算机的端口号。
service.ens.library"xenp"ENS 插件的名称。
service.notify.enable"yes"如果设置为 "yes",则在启动所有服务时启动 csnotifyd 服务,并在停止所有服务时停止 csnotifyd。
service.notify.
maxretrytime"-1"csnotifyd 将连续重试且无法联系 ENS 的次数。
值为 "-1" 表示让报警线程无限期地重试。
service.notify.
retryinterval"3"连接失败后 csnotifyd 尝试重新联系 ENS 之前等待的秒数。
service.notify.
startupretrytime"0"Calendar Server 在停止之前尝试联系 ENS 的总秒数。此设置类似于 caldb.serveralarms.maxretrytime的设置,不同之处在于它仅应用于第一次启动报警线程时。成功启动报警线程后,将使用 caldb.serveralarms.maxretrytime。
值为 "0" 指示报警线程如果在启动时无法连接 ENS,则立即退出。
ens.startlistener"0"可接受的值为:
"1"
"0"
caldb.berkeleydb.
alarmretrytime"300"出现可恢复的警报发送错误后重试的时间(以秒为单位)。
caldb.berkeleydb.ensmsg.
createcal"no"如果设置为 "yes",则在创建日历时使用以下格式创建事件通知服务消息:
enp://ics/createcal?calid=cal
caldb.berkeleydb.ensmsg.
modifycal"no"如果设置为 "yes",则在修改日历时使用以下格式创建事件通知服务消息:
enp://ics/modifycal?calid=cal
caldb.berkeleydb.ensmsg.
deletecal"no"如果设置为 "yes",则在删除日历时使用以下格式创建事件通知服务消息:
enp://ics/deletecal?calid=cal
caldb.berkeleydb.ensmsg.
advancedtopics"no"指定如何发布修改事件通知:
如果设置为 "yes",则系统将通过发布到以下相应主题来区别回复、刷新或修改事务:
caldb.berkeleydb.ensmsg.replyevent
caldb.berkeleydb.ensmsg.refreshevent
caldb.berkeleydb.ensmsg.modifyevent
如果设置为 "no",系统会将所有三种类型(回复、刷新和修改)均发布到以下主题:
caldb.berkeleydb.ensmsg.modifyevent
caldb.berkeleydb.ensmsg.
createevent"no"如果设置为 "yes",则在创建事件时创建 ENS 消息。
caldb.berkeleydb.ensmsg.
deleteevent"no"如果设置为 "yes",则在删除事件时创建 ENS 消息。
caldb.berkeleydb.ensmsg.
modifyevent"no"如果设置为 "yes",则在修改事件时创建 ENS 消息。
caldb.berkeleydb.ensmsg.
refreshevent"no"指定 Calendar Server 是否在刷新事件时创建 ENS 消息。
caldb.berkeleydb.ensmsg.
refreshevent.contenttype"text/xml"指定刷新事件的消息数据的内容类型。有效值为 "text/xml" 或 "text/calendar"。
caldb.berkeleydb.ensmsg.
refreshevent.url"enp:///ics/
caleventrefresh"指定刷新事件的 ENS 消息的 URL。
caldb.berkeleydb.ensmsg.
replyevent"no"指定 Calendar Server 是否应为回复事件创建 ENS 消息。
caldb.berkeleydb.ensmsg.
replyevent.contenttype"text/xml"指定回复事件的消息数据的内容类型。有效值为 "text/xml" 或 "text/calendar"。
caldb.berkeleydb.ensmsg.
replyevent.url"enp:///ics
/caleventreply"指定回复事件的 ENS 消息的 URL。
caldb.berkeleydb.ensmsg.
createtodo"no"如果设置为 "yes",则在创建待办事项(任务)时使用以下格式创建事件通知服务消息:
enp://ics/createtodo?
uid=uid&rid=rid
caldb.berkeleydb.ensmsg.
modifytodo"no"如果设置为 "yes",则在修改任务时使用以下格式创建事件通知服务消息:
enp://ics/modifytodo?
uid=uid&rid=rid
caldb.berkeleydb.ensmsg.
deletetodo"no"如果设置为 "yes",则在删除任务时将使用以下格式创建事件通知服务消息:
enp://ics/deletetodo?uid=uid&rid=rid
caldb.berkeleydb.ensmsg.
qsize"10000"内存中 ENS 消息队列的初始大小。此队列存储除警报提醒通知以外的所有 ENS 消息。
caldb.berkeleydb.ensmsg.
schedreq"no"如果设置为 "yes",则在删除写入日历的计划请求时使用以下格式创建事件通知服务消息:
enp://ics/schedreq?calid=cal
&method=method&type={event|todo}
&uid=uid&rid=rid
caldb.serveralarms"yes"如果设置为 "yes",则发送警报电子邮件。
caldb.serveralarms.
acktimeout"30"指定在发布报警通知后,ENS 报警线程等待 csnotifyd 确认的秒数。如果超时过期,报警线程将假定不再处理报警通知并再次发布报警通知。
caldb.serveralarms.
dispatchtype"ens"指定 Calendar Server 警报的分发类型:
如果为 "ens",服务器将使用外部 ENS 发送和接收报警。
如果为 "smtp",服务器会将报警作为标准 SMTP 消息发送并绕过 ENS。
caldb.serveralarms.
initthreads"10"服务器报警线程的初始数目。
caldb.serveralarms.
maxretrytime"-1"报警线程将连续重试且无法联系 ENS 的次数。
"-1" 表示让报警线程无限期地重试。
caldb.serveralarms.
maxthreads"10"服务器报警线程的最大数目。
caldb.serveralarms.
retryinterval"5"报警线程(在 csadmind 中)在尝试重新联系 ENS 之前等待的秒数。
caldb.serveralarms.
stacksize"65536"服务器报警线程的堆栈框架大小。
caldb.serveralarms.startup
retrytime"0"Calendar Server 在失败之前尝试联系 ENS 的总秒数。此设置类似于 caldb.serveralarms.maxretrytime 的设置,不同之处在于它仅应用于第一次启动警报线程时。成功启动警报线程后,将使用 caldb.serveralarms.maxretrytime。
如果设置为 "0",则报警线程如果在启动时无法连接 ENS,将立即退出。
caldb.smtphost"localhost"将警报电子邮件发送到此 SMTP 主机。