Skip Headers
Oracle® Communications Calendar Server System Administrator's Guide
Release 7.0.5

E54935-01
Go to Documentation Home
Home
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

9 Troubleshooting Calendar Server

This chapter describes troubleshooting strategies for Oracle Communications Calendar Server.

Troubleshooting Calendar Server Initial Configuration

If you experience trouble configuring Calendar Server while running the initial configurator script, init-config, and you are receiving an error from Oracle GlassFish Server, make sure that you running at least Java 7 and that your environment is correctly configured. For more information, see Glassfish Server Installation Guide.

Troubleshooting GlassFish Server and Java

If you upgrade your Java SE to Java SE Development Kit 7, Update 7 (JDK 7u7) or later, you must also upgrade GlassFish Server to the recommended patch level. Otherwise, you may encounter problems running the davadmin command.

Troubleshooting Tips

Begin troubleshooting by making sure that the GlassFish Server web container is running and that Calendar Server is deployed. You can use either the GlassFish Server Administration Console or the asadmin command-line utility.

Topics in this section:

Using the asadmin Command to Specify GlassFish Server Port

If you have more than one GlassFish Server instance installed, use the asadmin -p to specify the instance's administrative port number.

Using the GlassFish Server Administration Console to Check Calendar Server Status

  1. Start the console.

  2. Navigate to Web Applications under the Applications tab.

  3. Make sure that davserver is deployed and enabled.

Using the asadmin Command-line Utility to Check Calendar Server Status

Run the following commands:

./asadmin list-components -p admin-port --type=web
davserver web-module
Command list-components executed successfully.

./asadmin show-component-status -p admin-port davserver
Status of davserver is enabled. 
Command show-component-status executed successfully.

Troubleshooting the Calendar Server davserver Process

Follow these steps to troubleshoot the davserver process.

  1. If davserver is not enabled, check the GlassFish Server log, server.log, in the GlassFish_home/domains/domain1/logs directory.

  2. If davserver is deployed and enabled but clients have trouble connecting, check the davserver log, calendar.*, in the /var/opt/sun/comms/davserver/logs or equivalent directory. To increase the log level, use the davadmin command, for example:

    ./davadmin config modify -o log.dav.errors.loglevel -v FINE
    

    See "Calendar Server Command-Line Utilities" for more information on the davadmin command.

Troubleshooting a Failing davadmin Command

If a davadmin command fails to run, use the -e option to get more details about the failure. For example:

./davadmin version
Enter Admin password:*********
DAV server connection failed. Is the server running?

./davadmin version -e
Enter Admin password:*********
JMXconnection exception for url service:jmx:rmi:///jndi/rmi://commsuite.example.com:46633/jmxrmi - Exception creating connection to: 1.1.1.1; nested exception is:
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)

This example shows SSL errors. In this case, you would make sure that the truststore file pointed to by the command through the -s option, or the commandfile option, or the default one, if none were specified explicitly, exists and is valid. The default truststore file, .asadmintruststore, is located in the config directory.

To verify:

  1. As root, run an asadmin command on the GlassFish Server host on which Calendar Server is deployed. An .asadmintrustore file is created under the root (/) directory.

  2. Make sure that this file is the same as the one in the Calendar Server config directory.

Also, see "Troubleshooting GlassFish Server and Java."

Troubleshooting MySQL Server Errors

If you find a MySQL Server back-end error, make sure MySQL Server is running by pinging the JDBC connectionpool.

  1. Start the GlassFish Server Administration Console.

  2. Select JDBC Resources from Resources, then select Connection Pools.

  3. Choose the caldavPool and perform a ping.

  4. If the ping fails, check the Pool properties to make sure they are all correct.

  5. You can also perform a command-line ping as follows:

    ./asadmin list-jdbc-connection-pools -p admin-port
    __CallFlowPool
    __TimerPool
    DerbyPool
    caldavPool
    Command list-jdbc-connection-pools executed successfully.
    
    ./asadmin ping-connection-pool -p admin-port caldavPool
    Command ping-connection-pool executed successfully.
    
  6. Even if you ping the pool, sometimes Calendar Server is not able to load the back end. In this case, you see errors similar to the following:

    SEVERE  [2009-09-03T22:00:53.310-0700] <...JdbcBackend.getDataSource> Cannot lookup DataSource: javax.naming.NameNotFoundException: defaultbackend1 not found
    
    SEVERE  [2009-09-03T22:00:53.313-0700] <...DavServer.loadBackend> failed to instantiate or create backend com.sun.comms.davserver.backends.BackendException: Cannot get DataSource: javax.naming.NameNotFoundException: defaultbackend1 not found(OPERATION_NOT_SUPPORTED)
    
  7. To see the pool and resource data clearly, view the GlassFish Server configuration file, for example:

    GlassFish_home/domains/domain1/config/domain.xml
    
  8. If cause of error is not clear, delete and recreate the Connection Pool and JDBC resource by using the asadmin command, for example:

    ./asadmin delete-jdbc-connection-pool -p admin-port caldavPool
    ./asadmin create-jdbc-connection-pool -p admin-port --user admin --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource --restype javax.sql.DataSource --property "DatabaseName=caldav:serverName=mysqlhost:user=caldav:password=mysqlpass:portNumber=3306:networkProtocol=jdbc" caldavPool
    
    ./asadmin create-jdbc-resource -p admin-port --user admin --connectionpoolid caldavPool jdbc/defaultbackend
    

    If you recreate the JBDC resource, be sure to use the same user name and password that you initially used to create the resource. Restart GlassFish Server after recreating the connectionpool and resource.

Importing a Convergence ics File

You might see the following error when importing an ics file that was created in Convergence.

./davadmin calresource import -u admin -a caluser6@example.com -m convergence_caluser6_2.2.ics
Unable to import the resource into 'calendar'. DUE: 20090905T000000Z is before or equal to DTSTART: 20090905T000000Z

This is likely a Convergence problem, because it creates the todo by setting DTSTART and DUE to the same time. This is due to the restrictions described in RFC5545. The description section states that DUE must be later than DTSTART.

The workaround is to manually fix the iCal data to have DTSTART before DUE.

Refreshing Domain Information

Calendar Server fetches and caches some domain information that is stored in LDAP, such as domain status. The system does not periodically refresh domain information, unlike user and group information.

If you need to refresh domain information, you can use one of the following methods:

  • Restart the GlassFish Server.

  • Using the davadmin command, make a change to any of the LDAP-related configuration options (base.ldapinfo.*), which causes the server to refresh all cached LDAP data.

Troubleshooting the iSchedule Back End on MySQL Server

If you are unable to do a POST command to /davserver/dav/ischedule/, check the following:

  1. Verify that the davcore.scheduling.ischedulebackendid=ischedulebackendid parameter has been set in the davserver.properties file.

  2. Verify that you can ping the ischedulepool in GlassFish Server. If you get the error "Access denied for user 'mysql'@'localhost' to database 'ischedule'," then run the following MySQL Server command:

    GRANT ALL ON ischedule.* TO 'mysql'@'localhost'
    
  3. Verify that you can now ping ischedulepool.

  4. Restart GlassFish Server and do a "clean and build" in NetBeans.

Enabling Telemetry Logging

To troubleshoot issues with a particular calendar user or client, it is useful to log all protocol interactions. You can force all telemetry logs by setting the service.dav.telemetry.forcetelemetry parameter to true. Do not use this setting unless required as it generates lots of data.

To enable telemetry logging at a reduced level, set the service.dav.telemetry.filter parameter. This parameter takes a space separated list of request URI prefixes that should be logged. For example:

  • /wcap/ logs all WCAP access.

  • /dav/principals/caluser1/ /dav/home/caluser1/ logs all Calendar Server access to caluser1's account (both principals and home collections, and all the resources underneath).

Common Errors in Log Files

This section presents common errors that you might see in the Calendar Server log files. For more information about using log files, see "Managing Logging."

Topics in this section:

Using the Same Start and End Date for an Event

FINE    [2009-08-24T19:28:57.020-0700] <...DavServlet.service> Got a non standard condition: DTEND: 20090829T000000 is before or equal to DTSTART: 20090829T000000
INFO    [2009-08-24T19:28:57.021-0700] <...DavServerServlet.service> [RES] [403]    Command execution time: 0.041 secs

Same UID Already in Use

FINE    [2009-08-24T19:30:50.044-0700] <...DavServlet.service> Got a non standard condition: uid q3EfPB0C4EHHj918X2GVU1 already in use in /dav/home/modendahl/calendar/765345.ics
INFO    [2009-08-24T19:30:50.046-0700] <...DavServerServlet.service> [RES] [403]    Command execution time: 0.063 secs

No Specification of Content-type Header

FINE    [2009-08-24T19:32:07.803-0700] <...DavServlet.service> Got a non standard condition: unsupported content-type: application/octet-stream
INFO    [2009-08-24T19:32:07.805-0700] <...DavServerServlet.service> [RES] [403]    Command execution time: 0.019 secs

Deleting a Non-existing File

FINE    [2009-08-24T19:32:58.098-0700] <...DavServlet.service> Got a non standard condition: getNode returned null for uri /dav/home/modendahl/calendar/teeeest.ics
INFO    [2009-08-24T19:32:58.099-0700] <...DavServerServlet.service> [RES] [404]    Command execution time: 0.012 secs

Posting to Calendar Collection Without a File Name

FINE    [2009-08-24T19:33:39.239-0700] <...DavServlet.service> Got a non standard condition: Invalid Resource Type in POST:CALENDAR_RESOURCE
INFO    [2009-08-24T19:33:39.241-0700] <...DavServerServlet.service> [RES] [403]    Command execution time: 0.02 secs

Using a Non-implemented HTTP Method

INFO    [2009-08-24T19:35:10.416-0700] <...DavServerServlet.service> [REQ] CONNECT /dav/home/modendahl/calendar/ 192.18.127.57 ics-s6.sfbay.example.com:8080
INFO    [2009-08-24T19:35:10.418-0700] <...DavServerServlet.service> [RES] [501]    Command execution time: 0.0020 secs

Using the Browser Servlet

You can use a browser servlet to view an account's properties stored in collections and resources. You might find this helpful when troubleshooting calendar problems.

To access this browser servlet, take any valid dav URI and replace the dav prefix following davserver with browse. For example, in a browser, change the following:

http://example.com:3080/davserver/dav/home/smithj/calendar/

to:

http://example.com:3080/davserver/browse/home/smithj/calendar/

The servlet returns a a view of the account's properties stored in collections and resources. You can navigate among properties and delete them as well. The servlet also has some import function if you want to use a server-side import instead of a client-side import.

The delete and file import features are enabled only when the logging level is set at FINE or lower. To specify the logging level, use the log.dav.errors.loglevel configuration parameter.

Tip:

You can log in with Calendar Server administrator (the default is calmaster) credentials to view multiple accounts with one login. Also, when viewing multiple accounts, clear your browser cache before viewing the next account.

Troubleshooting CalDAV Clients

This section describes client issues.

Topics in this section:

Lightning

Lightning does not support more than one calendar account. It allows only one account per server at a time.

Lightning 0.9 does not support multiple reminders for single events. Lightning 1.0 beta 1 does support multiple reminders.

Lightning is not able to create an account if the user name contains special characters.

If Lightning 1.0 beta1 is installed with Thunderbird 3, and you try to go back to Thunderbird 2 and Lightning 0.9, when starting Thunderbird the following error occurs:

The Calendar data in your profile was updated by a newer version of Lightning, and continuing will probably cause the information to be lost or corrupted. Lightning will now be disabled and Thunderbird restarted.

To fix this error:

  1. Export all your calendar data in iCalendar format.

  2. Remove the calendar database storage.sdb file from your profile.

  3. Restart the Thunderbird and import the iCalendar file.

    Thunderbird on Solaris needs to be reloaded twice to get the newly created Todo.

Inviting users on Thunderbird for Solaris and checking their availability does not show free/busy check properly. Instead, the invitee is always shown as free even when the invitee is busy.

Calendar import is failing with Thunderbird on Windows and Solaris. The failed import displays the "Modification_failed" error message. Logging back in to the profile loads the imported data to the calendar.

Apple iCal

Apple iCal adds its own default reminder to an event if you select the "Add a default alarm to all new events and invitations" option. Thus, if calendar1 exports the event (with no reminder) and calendar2 imports it, the imported reminder has a default alarm set.

Apple iCal is not able to create an account if the user name contains special characters.

If the event is created with "Repeat on Weekdays only" option from Lightning or Convergence, the Apple iCal will convert it to "Every day" and display it.

iPod touch

The following information was found with iPod touch 3.1.3 firmware.

Supported Features:

  • Event is supported.

  • Reminders are supported with iPod touch, up to a maximum of two reminders for a single event.

  • Recurrence is supported.

  • iPod touch client enables you to a create duplicate calendar.

Unsupported Features:

  • Todos.

  • [AppleiPhone]STATUS not being taken into account when invitation event canceled by organizer.

  • Invitations can be viewed by not accepted, declined or rejected.

  • When the organizer of the event cancels the event, invitees do not have any information that event is canceled.

  • Attachments.

  • Free/busy.

  • Availability check.

  • Import-Export functionality.

  • Share/Subscribe of calendar.

Known Issues

Apple iPhone STATUS not being taken into account when invitation event canceled by organizer

When an iPhone 3 user gets an invitation from a Lightning user, there is no option to accept, reject, or decline the event. Additionally, when the inviting user deletes the event, the iPhone user does not receive an event notification, nor is the event deleted from the user's calendar. The event is in read-only mode. This issue is fixed starting with the iPhone 4 release.

Connector for Microsoft Outlook

See "Connector for Microsoft Outlook and Event Time Modifications."

Troubleshooting Clients Running iOS 5 and Mac OS 10.7

For correct setup and data synchronization to occur on devices running iOS 5 and Mac OS 10.7, make sure that you have installed at least Calendar Server 7 Update 2 Patch 5.

Mac OS 10.9 iCal Client Not Able to Delete Events

Currently, the Mac OS 10.9 iCal Client enables you to create or move events, but not delete events.

Checking Active Calendar Users

See "Checking for Active Calendar Users."

Troubleshooting Calendar Server Agent Alerts in Instant Messaging Server

You can configure Instant Messaging Server for Java Message Service (JMS) to support Calendar Server 7 Agent alerts. If you find that you are not receiving event reminders (alarms) in an XMPP-enabled instant messaging client, verify that the password configuration has been properly configured.