您可以通过添加新的 Calendar Server 时区来自定义 Delegated Administrator。这样,Delegated Administrator 就可以使用该新时区来置备组织、用户、组和资源。
要添加新时区,执行以下任务。要使用 Delegated Administrator 实用程序管理新时区,仅执行第一个任务。要通过 Delegated Administrator 控制台管理新时区,必须执行两个任务。
时区添加之后,可通过执行以下任务,将它设置为新创建用户的默认时区:
 在 Delegated Administrator 中添加新时区的步骤
在 Delegated Administrator 中添加新时区的步骤必须执行此任务,您才能使用 commadmin 实用程序或 Delegated Administrator 控制台来按照新时区置备用户。此任务会用新时区值更新 Access Manager。此任务完成后,可使用 commadmin 将新时区指定给用户。
在 Calendar Server 中添加新时区。
要完成此步骤,必须编辑 timezones.ics 文件和其他 Calendar Server 文件。有关说明,请参见 Sun Java System Calendar Server 管理指南中“管理 Calendar Server 的时区”的“添加新时区”一节。
备份 UserCalendarService.xml 和 DomainCalendarService.xml 文件。
xml 文件默认情况下位于以下目录:
da-base/lib/services
编辑 UserCalendarService.xml 和 DomainCalendarService.xml 文件以便在 Delegated Administrator 中添加新时区。
在 UserCalendarService.xml 和 DomainCalendarService.xml 文件中,都找到以下条目标题:
| <AttributeSchema name="icstimezone"
                            type="single choice"
                            syntax="string"
                            any="optional|adminDisplay">
                            <ChoiceValues> | 
将新时区值添加到 <ChoiceValues> 列表中。
运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。
对 UserCalendarService.xml 和 DomainCalendarService.xml 文件都运行以下 amadmin 命令:
| ./amadmin -u <admin> -w <password> -r CalendarService | 
| ./amadmin -u <admin> -w <password> -s da_base/lib/services/CalendarService.xml | 
其中 CalendarService 为 UserCalendarService 或 DomainCalendarService 之一。
如果您还打算将新时区设置为默认时区,则可以在执行上述两个任务之后运行这些 amadmin 命令。有关详细信息,请参见更改 Delegated Administrator 中的默认时区的步骤。
重新启动您的 Web 容器以使所做的更改生效。
要使 Delegated Administrator 控制台能显示新时区,请参见在 Delegated Administrator 控制台中显示和管理新时区。
 在 Delegated Administrator 控制台中显示和管理新时区
在 Delegated Administrator 控制台中显示和管理新时区此任务向控制台显示的时区列表中添加新时区。然后,此任务将在目录中保存新时区值。
要在控制台中显示时区,必须向 Resources.properties 文件添加新值。
要允许控制台在目录中存储时区,必须向 daconfig.properties 文件中的两个列表添加新值。第一个列表指定存储在 LDAP 目录中的实际值。第二个列表使控制台能够将时区的显示值(可能已本地化)映射到存储的值。
编辑 Resources.properties 文件,该文件位于 Delegated Administrator 数据目录下。
Resources.properties 文件默认情况下位于以下目录:
| da-base/data/da/WEB-INF/classes/com/sun/ \ comm/da/resources | 
要编辑 Resources.properties,请搜索 rsrc.Timezone 属性并将新时区添加到相应的列表中。您可以本地化这个新时区的显示值。
找到位于 Delegated Administrator 数据目录下的 daconfig.properties 文件中的时区值列表。
daconfig.properties 文件默认情况下位于以下目录:
| da-base/data/da/WEB-INF/classes/com/sun/ \ comm/da/resources | 
要查找时区值的列表,搜索以下内容:
#Timezone values - only English
这些是存储在 LDAP 目录中的值。新时区必须以英文书写,这是存储在目录中的值必需的格式。
将新时区添加到列表。
例如,要将 America/Miami 添加到列表,假设 Timezone1 目前有 24 个值,那么您应该添加
rsrc.Timezone1-25=America/Miami
此值将是显示在控制台中的 Americas 下拉列表中的第 25 个时区。注意,根据前述任务中您在 Resources.properties 文件中指定的内容不同,时区可能以别的语言显示。
找到 daconfig.properties 文件中的反向时区映射列表。
该列表提供了本地化时区值(在控制台中显示)与您在上述步骤 2 中指定的实际值的映射关系。
要查找反向映射的列表,搜索以下内容:
#reverse timezone mappings - used by DA in getting localized tz value
向反向映射列表添加新值。
例如,要将 America/Miami 添加到列表,您应该添加
rsrcKey-America-Miami=rsrc.Timezone1-25
将编辑的 daconfig.properties 和 Resources.properties 文件重新部署到 Delegated Administrator 控制台所使用的 Web 容器。
必须运行脚本将自定义 daconfig.properties 文件部署到您的 Web 容器,更改才会生效。
有关如何将自定义的属性文件部署到特定 Web 容器的说明,请参见部署自定义配置文件。
编辑并重新部署 daconfig.properties 和 Resources.properties 文件后,新时区会显示在 Delegated Administrator 控制台中的相应列表框内。只要您在 Delegated Administrator 控制台中选择该时区并单击“保存”,它就会被保存在目录中。
 更改 Delegated Administrator 中的默认时区的步骤
更改 Delegated Administrator 中的默认时区的步骤在 UserCalendarService.xml 和 DomainCalendarService.xml 文件中,编辑以下值:
| <DefaultValues>
                <Value>America/Denver</Value>
</DefaultValues> | 
可以在 xml 文件中的以下条目下找到 <DefaultValues>:
| <AttributeSchema name="icstimezone" | 
运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。
对 UserCalendarService.xml 和 DomainCalendarService.xml 文件,运行以下 amadmin 命令:
| ./amadmin -u <admin> -w <password> -r DomainCalendarService | 
| ./amadmin -u <admin> -w <password> -s da_base/lib/services/DomainCalendarService.xml | 
重新启动您的 Web 容器以使所做的更改生效。