Message content

An entry in the Blueworx Voice Response error log is shown here, with an indication of the line and column numbers:

Line 1 always has exactly the format shown—the details of the time vary but the type of information in each column does not change. The string, EE Entry, in the first eight columns identifies the start of a new error message.

Line 2 contains a brief description of the error. Its length varies but it always begins in column 1.

Line 3:

sequence (1- to 6-digit number left-justified in columns 16 through 21):
The sequence number of the error. This number begins at 1 each time Blueworx Voice Response is started, and is incremented for each subsequent error.
csec (1- to 2-digit number left-justified in columns 36 through 37):
The number of 1/100 seconds (centiseconds) that this error was generated after the time in line 1.
error_id (1- to 5-digit number left justified in columns 56 through 60):
The Blueworx Voice Response error message ID, as listed in Blueworx Voice Response messages identified by number.
Figure 1. Message information in the Blueworx Voice Response error log
            1    1    2    2    3    3    4    4    5    5    6    6    7    7
   1...5....0....5....0....5....0....5....0....5....0....5....0....5....0....5
 1 EE Entry Time: Fri Jan 14 10:30:04 1994
 2 OAM Problem with File Access
 3    sequence   = 74     csec      = 97      error_id  = 25022
 4    asi_id    = 1       appl_id   = 16      error_no  = 52
 5    severity  = WHITE   vpd_discr = VAE     module_id = GENVAE
 6    assoc_cls = NONE    alarm_thr = 0       assoc_alm = 0
 7    appl name = OAM
 8
 9    parameter    type    parameter value
10    ----------  ------  -------------------
11    process     string   OAM
12    routine     string   OAM_log_trace_string()
      file        string   /usr/lpp/dirTalk/db
      access      string   fflush

Line 4:

asi_id: In the current implementation, this field is always 1.
appl_id (1- to 4-digit number left-justified in columns 36 through 39):
The Blueworx Voice Response internal identifier of the process that generated the error.
errno (up to 6 digit number left justified in columns 56-610):
The value of the AIX-defined global variable, errno, at the time the error was generated. This is irrelevant for some errors, but an important parameter for others. You can find definitions for these errors in the errno.h in the /usr/include/sys directory.

Line 5:

severity: (1- to 6-character string in columns 16 through 21):
Indicates the severity of the error. Possible values are WHITE, GREEN, YELLOW and RED. The meanings of these severities are defined in “Message Categories”. This program examines the first character only, and converts to the numbers 1,2,3, and 4 respectively.
vpd_discr:
In the current implementation, this field does not provide useful information.
module_id:
In the current implementation, this field always contains GENVAE.

Line 6:

assoc_cls:
In the current implementation, this field is not used (contains NONE).
alarm_thr:
In the current implementation, this field is not used.
assoc_alm:
In the current implementation, this field is not used.

Line 7:

appl name (variable character string from column 16 to the end of the line)
This is the Blueworx Voice Response name of the process that raised the error.

Line 8 is always a blank line. The following lines occur only if the error has parameters. Otherwise the next line is blank followed by the start of the next error.

Line 9: If the error has parameters, this line is exactly as shown in Figure 1.

Line 10: This line is exactly as shown in Figure 1, underlining the previous line.

Line 11: The start of a parameter.

Columns 16 through 23:
The name of the parameter. The name is defined separately for each parameter of each error.
Columns 26 through 36:
The parameter type: decimal, integer, long, uinteger, ulong, hexadecimal, address, character, uchar, or string.
Columns 38 through the end of the line (and beyond):
The parameter value. This is always a character string, so numeric type parameters have been converted to strings, in the format you would expect. So for hexadecimal, for example, to extract the original value you could use sscanf() on the parameter value, specifying a number base of 16 for the conversion.
Note: The parameters can contain new-line characters, so parameters can span multiple lines. This is, however, very rare. This makes parsing harder, because it is not so obvious where the next parameter starts. This program only collects the first line of a parameter value, and detects the start of the next parameter by looking for three spaces at the start of the line, followed by a non-space, and a space in column 25 and non-space in column 26.
Line 12 onwards
Further parameters, until the end of the error, where there is a blank line followed by the start of the next error. The error log never contains partial error messages—all the information described is included for each error.