As Research In Motion's (RIM's) BlackBerry Enterprise Server software has matured, so have its debug logs. In the most recent service pack, the logs have become more detailed. Web Figure A shows an example of a Service Pack 4 (SP4)—generated log. (I've added a number at the beginning of each entry to help distinguish the entries from one another and so that I can more easily refer to the entries. I've also added the bold type for emphasis.) Each log entry has four fields: the event ID, enclosed in square brackets; the date and time, enclosed in parentheses; the thread ID, enclosed in the first set of curly brackets; and the event description, which immediately follows the thread ID and which has several parts. This figure shows the types of entries that are typically associated with a message moving from a user's Exchange Server mailbox to the user's BlackBerry device.

Lines 1 through 4 of the log show that BlackBerry Enterprise Server has detected a new message in the user's Exchange Inbox. Line 5 shows that BlackBerry Enterprise Server is placing the message into its queue of messages to deliver and track. Line 6 tells you that BlackBerry Enterprise Server is using the Server Routing Protocol (SRP) host to transmit the message to the BlackBerry. Note that the common piece of information that ties together the entries in lines 1 through 6 is the EntryID number. In a typical BlackBerry Enterprise Server debug log, the entries aren't nicely grouped together the way you see them here, although they do appear chronologically. You must use the EntryID number to find and track the message you're interested in.

Another element that you should notice in line 6 is the Tag number. When BlackBerry Enterprise Server sends a message to the SRP host, it assigns the message a Tag number that it uses to correlate all message-related responses from the SRP. As you can see in lines 7 and 8, the Tag number is logged when BlackBerry Enterprise Server actually transmits the message to the SRP host and when the host confirms it has received the message.

To make the sample log interesting, I temporarily placed my BlackBerry into a radio wave—impervious tin cookie box to simulate the handheld being out of radio range. As line 9 shows, the BlackBerry Enterprise Server continued to scan my Inbox for messages, discovered that it hadn't received a delivery confirmation for this message, and logged an entry. After I took the BlackBerry out of the box and it received the message, the SRP sent a delivery confirmation message and BlackBerry Enterprise Server logged it, as lines 10 and 11 show.

In addition to using the debug logs to track what happens to a specific message, you can use them to get a feel for what's happening on the server. The event ID field contains a five-digit number. An event ID in the 10000 to 19999 range signals an error, an ID from 20000 to 29999 signals a warning, an ID from 30000 to 39999 signals an informational event, an ID from 40000 to 49999 signals debug data, and an ID of 50000 and up signals some other event. For example, BlackBerry Enterprise Server logs a dropped SRP connection as event 30155, logs various problems that prevent access to a mailbox or server with 20000 level codes, and logs hung threads with various 10000-level error codes or 50000-level diagnostic codes such as

\[50020\] (08/20 14:00:47):\{0x5A0\}
Some worker threads have been
ocked for 6 health checks

When you monitor the BlackBerry Enterprise Server logs, you can act quickly to solve or prevent problems that your system might encounter.