|
|
| Sun ONE Calendar Server Administrator's Guide |
Chapter 3 Managing the Calendar Server
This chapter describes how to configure and manage Sun ONE Calendar Server.
This chapter contains these sections:
Starting and Stopping the Calendar Server
Configuring Calendar Server Timeout Values
Configuring Single Sign-on (SSO)
Configuring Calendar Lookup Database (CLD) Plug-ins
Managing the Group Scheduling Engine (GSE) Queue You manage the Calendar Server by running command-line utilities and by editing the ics.conf configuration file.
To run the command-line utilities, you must log in as a user who has administrative rights to the system where the Calendar Server is running.
For more information, see Chapter 7 "Calendar Server Command-Line Utilities" and Chapter 8 "Calendar Server Configuration."
Starting and Stopping the Calendar Server
You can start and stop the Calendar Server as follows:
On Solaris, other UNIX, and Windows NT systems, use the start-cal and stop-cal commands. See "Using the start-cal and stop-cal Commands".
On Windows NT systems, you can also use the Control Panel Services. See "Using the Windows NT Control Panel".
Using the start-cal and stop-cal Commands
The start-cal and stop-cal utilities are located in the server-root/cal/bin directory. You must run these utilities on the local machine where the Calendar Server is installed. For problems that might occur, see "Troubleshooting the start-cal and stop-cal Commands".
The start-cal command starts the Calendar Server services in the following order:
enpd Event Notification Service (ENS)
csnotifyd Notification Service
csadmind Administration Service
csdwpd Database Wire Protocal (DWP) service, the distributed database service that is started only with a remote Calendar Server database configuration For a description of these services, see "Calendar Server Services".
To start the Calendar Server using the start-cal command:
Log in as a user who has administrative rights to the system.
Change to the server-root/cal/bin directory. For example on Solaris systems:
cd /opt/SUNWics5/cal/bin
Start the Calendar Server:
./start-cal
To stop the Calendar Server using the stop-cal command:
Log in as a user who has administrative rights to the system where the Calendar Server is running.
Change to the server-root/cal/bin directory. For example on Solaris systems:
cd /opt/SUNWics5/cal/bin
Stop the Calendar Server:
./stop-cal
Using the Windows NT Control Panel
On Windows NT systems, use the Services dialog box from the Control Panel.
To start and stop the Calendar Server using the Windows NT Control Panel:
Log in as a user who has administrative rights to the Windows NT system.
Display the Services dialog box from the Control Panel:
Start>Settings>Control Panel>Services
Under Service, click the specific Calendar Server service (Admin, DWP, HTTP, ENS, or Notification) and then click Start or Stop. For more information, refer to the Windows NT online Help.
Troubleshooting the start-cal and stop-cal Commands
When you are starting and stopping the Calendar Server, the following problems might occur:
The start-cal command does not start all of the Calendar Server processes. For example, start-cal might start the enpd, csnotifyd, and csadmind processes but not cshttpd. In this situation, you must stop all of the Calendar Server processes before you try to restart the Calendar Server.
The stop-cal command does not stop all of the Calendar Server processes. For example, stop-cal might stop the cshttpd parent process but not any cshttpd child processes. In this situation, you must stop the remaining Calendar Server processes.
To stop Calendar Server processes on a Windows NT system:
Log in as a user who has administrative rights to the system where the Calendar Server is running.
Use the Task Manager to identify and then stop any remaining Calendar Server processes.
To stop Calendar Server processes on Solaris and other UNIX systems:
Log in as a user who has administrative rights to the system where the Calendar Server is running.
Determine the process ID (PID) of the remaining Calendar Server processes by entering a ps command for each service:
ps -elf | grep cs-process
where cs-process is enpd, csnotifyd, csdwpd, csadmind, or cshttpd. For example:
ps -elf | grep cshttpd
Using the PID of each process that is still running, enter a pkill -15 command to kill the process. For example:
pkill -15 9875
Enter each ps command again to make sure that all Calendar Server processes are stopped.
If a Calendar Server process is still running, enter a pkill -9 command to kill it. For example:
pkill -9 9875
After you have stopped all of the Calendar Server processes and before you restart the Calendar Server, consider running the csdb utility check command to check for any calendar database corruption that might have occurred.
For information about the check command, see "Checking and Rebuilding a Calendar Database".
Configuring Calendar Server Timeout Values
For information about editing ics.conf parameters, see "Editing the ics.conf Configuration File".
Configuring Timeout Values for csadmind
Table 3-1 describes the Calendar Server timeout parameters in the ics.conf file used by the Administration (csadmin) service.
Configuring HTTP Timeout Values for End Users
Table 3-2 describes the Calendar Server HTTP timeout parameters in the ics.conf file that apply to end users.
Configuring Single Sign-on (SSO)
Single Sign-on (SSO) allows a user to authenticate once and then use multiple trusted applications without having to authenticate again. For example, a user can log in to Messenger Express and then use Calendar Express without authenticating again, if SSO is enabled for both applications.
When configuring SSO, consider these points:
Each trusted application must be configured for SSO.
SSO does not work correctly if the default.html page is in your browser's cache. Before using SSO, be sure to reload the default.html page in your browser. For example, in Netscape Navigator, hold down the Shift key and then click Reload.
SSO works only for bare URLs. For example, SSO works for http://servername but not for URLs such as http://servername/command.shtml?view. The following example shows an SSO configuration for the Calendar Server (Calendar Express) and Messaging Server (Messenger Express) for the sesta.com domain.
To configure Single Sign-on (SSO):
Log in as a user with administrator privileges.
Stop the Calendar Server and Messaging Server.
Edit the Calendar Server ics.conf file as described in Table 3-3. (For a description of the Calendar Server SSO configuration parameters, see "Single Sign-on (SSO) Configuration".) Table 3-3 describes the Calendar Server configuration parameters for SSO.
Use configutil to set the Messaging Server configuration parameters as shown in Table 3-4. You do not have to enclose these parameters in double quotation marks (").
Restart the Calendar Server and Messaging Server to update the configurations.
For more information, see "Starting and Stopping the Calendar Server". For information about the Messaging Server, see the Sun ONE Messaging Server Administrator's Guide.
Configuring Calendar Lookup Database (CLD) Plug-ins
Calendar Server provides the following Calendar Lookup Database (CLD) plug-ins:
LDAP Calendar Lookup Database (CLD) Plug-in
The LDAP CLD plug-in provides horizontal scalability of the calendar database by allowing user and resource calendars to be distributed over a number of back-end servers for a single calendar instance. The LDAP CLD plug-in uses the icsDWPHost attribute to determine the back-end server where a calendar is located.
This section describes the following topics:
How the LDAP CLD Plug-in Works
Calendar Server Configurations for the LDAP CLD Plug-in How the LDAP CLD Plug-in Works
The LDAP CLD plug-in allows the calendar database to be distributed over a number of back-end servers. Each calendar in the database is identified by a unique calendar ID (calid) in the following format:
userid is a unique user ID for the Calendar Server instance.
calendar_name is an optional calendar name that is unique to the specific user. Calendar Server accesses calendar data on a back-end server as follows:
When a Calendar Express end user accesses a calendar, the LDAP CLD plug-in extracts the userid from the calendar's calid and then looks up the calendar owner in the LDAP server database.
After finding the calendar owner, the plug-in uses the owner's icsDWPHost LDAP attribute to determine the host name of the back-end server where the calendar resides. This host name must be resolvable by your Domain Name Service (DNS) into a valid IP address.
Using the host name, Calendar Server accesses the calendar data on the back-end server using the Distributed Wire Protocol (DWP). DWP is an internal protocol that runs as the csdwpd service and provides the networking capability for the calendar database.
Using DWP, Calendar Server sends the calendar data to the server where the user is logged in, and then Calendar Express renders the data in the end user's browser.
Note If your site is using the LDAP CLD plug-in and you are using the cscal utility to create a new calendar, you must create the new calendar on the same back-end server where the user's calendars reside (or will reside), as indicated by the user's icsDWPHost LDAP attribute. If you try to create a calendar on a different back-end server, Calendar Server returns an error.
For more information, see "cscal".
Calendar Server Configurations for the LDAP CLD Plug-in
The LDAP CLD plug-in supports the following Calendar Server configurations:
In these configurations, each front-end and back-end server must:
Multiple Front-End Servers with Multiple Back-End Servers
Be running the same operating system: Solaris operating environment, Windows NT, or HP-UX.
Use the same port number for the DWP port (service.dwp.port parameter). The default port number is 9779.
The following figure shows two front-end servers and two back-end servers running a single Calendar Server instance. You can also configure more than two front-end or back-end servers, if you wish.
This configuration allows the servers to be protected by a firewall to restrict access to the LDAP and calendar databases. The calendar database is distributed across the two back-end servers.
The front-end servers are CPU intensive, with most CPU time spent rendering calendar data for end-users. The back-end servers are disk intensive, with most CPU time spent accessing the calendar database.
Figure 3-1    Multiple Front-End Servers with Multiple Back-End Servers
Configuring a Front-End Server
To configure a front-end server, set the following parameters in the ics.conf file on each front-end server.
Enable calendar database lookup plug-ins:
Specify that Calendar Server load all plug-ins:
Set the type of calendar lookup plug-in for the LDAP CLD plug-in:
Set the port number for the DWP service (csdwpd):
service.dwp.port = "9779"
The default is "9779". The port number must be the same for all configured front-end and back-end servers.
Set the server name for each back-end server in the configuration:
caldb.dwp.server.backend-server-1.ip = "backend-server-1"
caldb.dwp.server.backend-server-2.ip = "backend-server-2"
...
caldb.dwp.server.backend-server-n.ip = "backend-server-n"
The server name must be fully qualified and be resolvable by your Domain Name Service (DNS) into a valid IP address. In each part of the parameter, the server name must be identical and fully qualified. For example:
caldb.dwp.server.calendar.sesta.com.ip = "calendar.sesta.com"
The server name must also match the name used for the icsDWPHost LDAP attribute for the applicable calendar owners.
Set the default DWP server name:
caldb.dwp.server.default = "server-name"
where server-name is the fully qualified default server name used by Calendar Server if the user or resource entry in the LDAP server database does not have an icsDWPHost attribute. This name must be resolvable by your Domain Name Service (DNS) into a valid IP address. For example:
caldb.dwp.server.default = "calendar.sesta.com"
Restart the Calendar Server for the changes to take effect.
Example Configuration Parameters for a Front-End Server
The following example shows the configuration parameters for a front-end server with two back-end servers named calendar.sesta.com and calendar.siroe.com. The default DWP server is calendar.sesta.com.
Code Example 3-1    LDAP CLD Configuration Parameters for a Front-End Server
Configuring a Back-End Server
To configure a back-end server, set the following parameters in the ics.conf file on each back-end server.
Enable the DWP service (csdwpd) and set the DWP port number:
service.dwp.enable = "y"
service.dwp.port = "9779"
The default port number is "9779". The port number must be the same for all configured front-end and back-end servers.
Disable the HTTP service because it is not required on a back-end server (the Admin service should be set to the default value of "yes"):
Set the type of calendar lookup plug-in for the LDAP CLD plug-in:
Set csapi.plugin.calendarlookup to "n" because a back-end server does not need to lookup any calendar data:
Restart the Calendar Server for the changes to take effect.
Example Configuration Parameters for a Back-End Server
The following example shows the configuration parameters for a back-end server.
Code Example 3-2    LDAP CLD Configuration Parameters for a Back-End Server
service.dwp.enable = "y" service.dwp.port = "9779" service.http.enable = "no" service.admin.enable = "yes" caldb.cld.type = "directory" csapi.plugin.calendarlookup = "n" Multiple Front-End/Back-End Servers
The following figure shows three front-end/back-end servers, with each server connected to a calendar database. This configuration allows calendars to be geographically distributed, with each calendar residing on the server where its owner logs into the Calendar Server.
Figure 3-2    Multiple Front-End/Back-End Servers
Configuring a Front End/Back-End Server
To configure a front-end/back-end server, set the following parameters in the ics.conf file on each server.
Enable the DWP service (csdwpd):
Set the port number for the DWP service (csdwpd):
service.dwp.port = "9779"
The default is "9779". The port number must be the same for all configured front-end and back-end servers.
Enable calendar lookup plug-ins:
Have Calendar Server load all plug-ins:
Specify the type of calendar lookup plug-in that Calendar Server should use:
Set the default DWP server name:
caldb.dwp.server.default = "server-name"
where server-name is the fully qualified default server name used by Calendar Server if the user or resource entry in the LDAP server database does not have an icsDWPHost attribute. This name must be resolvable by your Domain Name Service (DNS) into a valid IP address. For example:
caldb.dwp.server.default = "calendar.sesta.com"
Set the server name for all front-end/back-end servers in the configuration, including the local server:
caldb.dwp.server.server-1.ip = "server-1"
caldb.dwp.server.server-2.ip = "server-2"
...
caldb.dwp.server.server-n.ip = "server-n"
The server name must be fully qualified and be resolvable by your Domain Name Service (DNS) into a valid IP address. In each part of the parameter, the server name must be identical and fully qualified. For example:
caldb.dwp.server.calendar.sesta.com.ip = "calendar.sesta.com"
The server name must also match the name used for the icsDWPHost LDAP attribute for the applicable calendar owners.
Restart the Calendar Server for the changes to take effect.
Example Configuration Parameters for Each Front-End/Back-End Server
The following example shows the configuration parameters for each front-end/back-end server. The servers are sesta.com, siroe.com, and varrius.com. The default DWP server is sesta.com.
Code Example 3-3    LDAP CLD Configuration Parameters for Each Front-End/Back-End Server
Improving Performance of the LDAP CLD Plug-in
To improve the performance of Calendar Server with the LDAP CLD plug-in, make sure the following configuration parameters are set to "yes" (the default value for each parameter):
caldb.cld.cache.enable enables the CLD cache option. This option stores the DWP host server information (icsDWPHost LDAP attribute) for calendar users and thus reduces calls to the LDAP directory server.
service.calendarsearch.ldap specifies that calendar searches are done using the LDAP or a user preference plug-in. Clearing the CLD Cache
If you are using the CLD cache option and you have updated a server name for an ics.conf parameter or moved a calendar to a different back-end server, you should clear the CLD cache to remove the server names. An out-of-date entry in the CLD cache can prevent a front-end server from establishing a connection to the correct back-end server or cause the Calendar Server not to find a calendar after it have been moved.
To clear the CLD cache, follow these steps:
Stop the Calendar Server.
Remove all files in the server-root/var/csdb/cld_cache directory, but do not remove the cld_cache directory itself. Moving a Calendar to a Different Back-End Server
To move a user or resource calendar from one back-end server to another back-end server, follow these steps:
On the original server, disable the calendar user using the csuser utility for a user calendar or csresource for a resource calendar. For example to disable the user with the user ID and calid bkamdar:
On the original server, export the calendar from the calendar database to a file using the csexport utility. For example:
csexport -c bkamdar calendar bkamdar.ics
If a user has more than one calendar, you must perform this step for each calendar.
Copy the exported calendar (*.ics) files from the original server to the new server.
On the new server, import the calendar from the file to the calendar database using the csimport utility. For example:
csimport -c bkamdar calendar bkamdar.ics
Again, you must perform this step for each of the calendars you exported.
On the LDAP directory server, update the calendar owner's icsDWPHost LDAP attribute to point to the new back-end server using the csattribute utility. To update an attribute, you must first delete the attribute and then add it with the new value. For example, to set the new server name to sesta.com:
On the new server, enable the calendar user using the csuser utility for a user calendar or csresource for a resource calendar. For example:
On the new server, use the following commands to verify that the attributes are correct and that each calendar has been moved correctly. For example:
On the original server, delete each calendar you just moved. For example:
Algorithmic CLD Plug-in
DWP is a proprietary protocol used by the Calendar Server to perform calendar database operations over a network. DWP uses HTTP as its transport mechanism and includes a subset of the calendar database API.
If the calendar database resides on the local server, the Calendar Server Database subsystem uses the calid to access a calendar in the database. However, if the calendar database is located over a network (such as, on a back-end server), the Calendar Server must use the Calendar Lookup Database plug-in to determine the network address of the server where a calendar actually resides. The request is then forwarded to the DWP service (csdwpd) on the other server for processing.
Front-End Machine and a Back-End Server
Figure 3-3 shows a Calendar Server configuration with a single front-end machine and a back-end server. To use DWP, the front-end machine and back-end server must be running the same operating system and the same version of the Calendar Server.
Figure 3-3    Calendar Server Configuration for a Front-End Machine and a Back-End Server
In the configuration shown in Figure 3-3, the front-end machine performs these functions:
Handles client requests for calendar data residing over a network
Makes requests to the back-end server for calendar data
Transforms the calendar data first into an XML document tree
Applies an XSL file to the XML document tree to produce HTML The back-end server performs these functions:
To configure DWP, you must set ics.conf parameters on both the front-end machine and back-end servers.
To Configure Algorithmic CLD Plug-in Parameters on a Front-End Machine:
On the front-end machine, log in as a user with administrator privileges.
Change to the server-root/cal/bin directory where the Calendar Server command-line utilities are located and stop the Calendar Server using the stop-cal command.
Change to the server-root/cal/bin/config/ directory and edit the ics.conf parameters shown in Table 3-5. (To configure multiple front-end machines that point to a single back-end server, see Multiple Front-End Machines.)
Change to the server-root/cal/bin directory where the Calendar Server command-line utilities are located and restart the Calendar Server using the start-cal command.
To Configure Algorithmic CLD Plug-in Parameters on a Back-End Server:
On the back-end server, log in as a user with administrator privileges.
Change to the server-root/cal/bin directory where the Calendar Server command-line utilities are located and stop the Calendar Server using the stop-cal command.
Change to the server-root/cal/bin/config/ directory and edit the ics.conf parameters shown in Table 3-6.
Change to the server-root/cal/bin directory where the Calendar Server command-line utilities are located and restart the Calendar Server using the start-cal command.
You can now access the Calendar Server database on the back-end server from the front-end machine using Calendar Express. Here's how it works:
When the cshttpd service starts on the front-end machine, it initializes the Database subsystem. It loads the caldb.dwp.server.host.ip and caldb.dwp.server.host.port parameters from the ics.conf file and attempts to contact the back-end server using the host IP address and port values. If the contact is successful, the cshttpd service creates a pool of connections with the csdwpd service on the back-end server that are to used exclusively for DWP transactions.
Initially, the size of this connection pool is set to the value of the caldb.dwp.initconns. parameter, but the pool can grow to the maximum value specified by the caldb.dwp.maxcons parameter. Each connection in the pool is an HTTP/1.1 persistent connection, and if any connection fails, an error message is written to the log file.
If a DWP connection between the front-end machine and back-end server is broken (for example, the back-end server is restarted), the front-end machine tries to reconnect with the back-end server. Requests for calendar data fail while the DWP connection is broken, and data is not available until the connection is restored.
Multiple Front-End Machines
Figure 3-4 shows a Calendar Server configuration with multiple front-end machines and a single back-end server. The configuration parameters for both front-end machines (cal1.example.com and cal2.example.com) are identical and are described in To Configure Algorithmic CLD Plug-in Parameters on a Front-End Machine:. You can add other front-end machines as well to distribute the front-end load.
Figure 3-4    Calendar Server Configuration for Multiple Front-End Machines and a Back-End Server
Managing LDAP Attributes
To manage the LDAP attributes used by Calendar Server, use the csattribute utility.
Note If your site is using the LDAP CLD plug-in, do not use csattribute to change the icsDWPHost attribute to specify a new back-end host server. Modifying icsDWPHost does not cause a new calendar to be created on the new back-end host. For more information, see "LDAP Calendar Lookup Database (CLD) Plug-in".
Listing LDAP Attributes
To list LDAP attributes for a user or resource, use the csattribute utility add command. For example, to list the LDAP attributes for the user TChang: Adding an LDAP Attribute
To add an attribute to the LDAP server, use the csattribute utility add command. For example, to add the LDAP attribute icsCalendar with the value Conference_Schedule to the user TChang:
csattribute -a icsCalendar=Conference_Schedule add TChang Deleting an LDAP Attribute
To delete an attribute to the LDAP server, use the csattribute utility delete command. For example, to delete the LDAP attribute icsCalendar from TChang:
csattribute -a icsCalendar delete TChang
Managing the Group Scheduling Engine (GSE) Queue
Group scheduling allows a Calendar Server user to create an event such as a meeting and then invite other attendees. By using the free/busy lookup feature, the user can determine when an invitee is actually available for an event.
If an attendee is on the same Calendar Server, the event is scheduled in the attendee's calendar. If an attendee is not on the same Calendar Server, the invitation is sent via email. The attendee can then accept or decline the invitation.
Calendar Server users can also compare a group schedule by viewing attendees' calendars side-by-side.
To manage entries in the GSE queue, use the csschedule utility. You must run csschedule on the local machine where the Calendar Server is installed.
Listing Entries in the GSE Queue
To list entries in the GSE queue, use the csschedule utility list command. For example, to list all entries in the GSE queue:
To list the first ten entries stored in the GSE queue:
To list all entries in the GSE queue for a calendar with the calid Holiday_Schedule:
csschedule -v list Holiday_Schedule Deleting Entries in the GSE Queue
To delete entries in the GSE queue, use the csschedule utility delete command. For example, to delete all entries in the GSE queue:
To delete the entry in the GSE queue for calendar calA with the first schedule time of 13:30:45 on 11/30/2001, an offset number of 1, the unique identifier 1111, the recurrence ID 0, and the sequence number 0:
csschedule -v -t 20011130T133045Z -o 1 -u 1111 -r 0 -n 0 delete calA
Monitoring the Calendar Server
To monitor Calendar Server activity, use the csstats and cstool utilities. This section describes the following tasks:
Listing Counter Statistics
The csstats utility displays statistical information from counter objects defined in the calendar configuration (counter.conf) files. Counter objects such as httpstat, authstat, wcapstat, or dbstat show information about the Calendar Server including:
Maximum number of concurrent connections and total number of connections
Total number of successful and failed logins and connections For more information about Calendar Server counter statistics, see Counters Configuration (counter.conf) File.
To list statistical information, use the csstats utility list command. For example, to display basic information about the counter objects and the types available:
To list statistics specifically about the httpstat counter object:
To list statistics about the wcapstat counter object every 10 seconds for one hour:
csstats -i 360 -s 10 list wcap Monitoring the Calendar Server Log Files
Each Calendar Server service writes status information to its own log file. Each log file is named after its associated service name, as shown in Table 3-7:
Table 3-7    Calendar Server Log Files
Service Name
Log File Name
Calendar Server log files are stored in the default log directory:
Each log file is rolled-over to a new log file with a new name based on the configured time and size limits as follows:
admin.20000801115354.1
http.20000801115354.2
Log Event Severity Levels
The Calendar Server provides eight levels of severity for events reported to the log files as described in Table 3-8.
A log event is represented by a single line that shows the associated timestamp, server host name, severity level, process name (process ID), type of event, priority, and description. You can specify the level of severity of the events that the Calendar Server reports to the log files by modifying certain configuration settings in the ics.conf file. For information, see Calendar Log Information Configuration.
You should inspect the log files on a regular basis for EMERGENCY, ALERT, CRITICAL, ERROR, and WARNING level errors and, if found, examine the events for possible problems with the operation of the Calendar Server. The NOTICE and INFORMATION level log events are generated during normal operation of the Calendar Server and are provided to help you monitor server activity.
Note When requesting technical support for Calendar Server, you might be asked to provide the log files for help in resolving problems.
Pinging the Calendar Server
To verify that a Calendar Server service is listening on a specified port number, use the cstool utility ping command. Pinging a service does not verify that a service is actually running but indicates if it can accept a socket connection.
The Calendar Server service options are:
http HTTP Service (cshttpd)
admin Administration Service (csadmind)
Note In the current release, you cannot ping the DWP service (csdwpd), Event Notification Service (enpd), or Notification Service (csnotifyd).
To run cstool, the Calendar Server must be running.
For example, to ping the machine with the host name calserver to see if the cshttpd service is listening on port 80:
cstool -p 80 -h calserver ping http
By default, cstool waits 120 seconds for a response; however, you can change by value by using the -t timeout option.
Refreshing the Calendar Server Configuration
To force a Calendar Server service to refresh its configuration, use the cstool utility refresh command. If no service is specified, the command refreshes the configuration of all Calendar Server services. To run cstool, the Calendar Server must be running.
For example, to force a local Calendar Server to refresh configurations for all services:
Note In the current release, do not use cstool refresh to refresh a configuration. Instead, use the stop-cal and start-cal commands. For more information, see "Starting and Stopping the Calendar Server".
Previous Contents Index Next
Copyright 2002 Sun Microsystems, Inc. All rights reserved.
Last Updated August 30, 2002