Skip Headers
Oracle Hierarchical Storage Manager and QFS Software Command Reference
Section 4: File Formats
Release 6.1.1
E70305-03

NAME

sefsysevent - SEF sysevent

SYNOPSIS

∕etc∕sysevent∕config∕SUNW,SUNWsamfs,Device,sysevent.conf

AVAILABILITY

SUNWsamfs

DESCRIPTION

In Oracle HSM environments, tape drive SCSI log sense error counter pages 2 and 3 for media analysis are available to the user via a Solaris sysevent. SEF (System Error Facility) sysevents are enabled by default with a default polling interval of once before unload. SEF sysevents behavior is controlled by defaults.conf and samset.

How to add a sysevent handler for SEF sysevents:

A simple SEF sysevent handler should be executable and may look like this:

#!∕bin∕ksh
echo "$@" >> ∕var∕tmp∕xx.dat
exit 0

To add the SEF sysevent handler to the syseventd (1M):

# syseventadm add -vSUNW -pSUNWsamfs -cDevice -sSEF ∕var∕tmp∕xx \"\$VENDOR\" \"\$PRODUCT\" \"\$USN\" \"\$REV\" \$TOD \$EQ_ORD \"\$NAME\" \$INQ_TYPE \"\$MEDIA_TYPE\" \"\$VSN\" \$LABEL_TIME \$LP2_PC0 \$LP2_PC1 \$LP2_PC2 \$LP2_PC3 \$LP2_PC4 \$LP2_PC5 \$LP2_PC6 \$LP3_PC0 \$LP3_PC1 \$LP3_PC2 \$LP3_PC3 \$LP3_PC4 \$LP3_PC5 \$LP3_PC6 \$WHERE \$sequence

The syseventadm (1M) add command above creates the ∕etc∕sysevent∕config∕SUNW,SUNWsamfs,Device,sysevent.conf file and a path to your SEF sysevent handler ∕var∕tmp∕xx. Note the double quotes are required when using the syseventadm (1M) command because the strings can be empty and the data is positional.

To load the SEF sysevent handler:

# syseventadm restart

SEF sysevent event handler data looks like this:

# cat ∕var∕tmp∕xx.dat
"HP      " "Ultrium 2-SCSI  " "HUL2M00585" "F45H" 1094048112 82
"∕dev∕rmt∕2cbn" 0x1 "li" "000750" 1091738029 0x0 0x0 0x0 0x0 0x0 0x70b1
0x0 0x0 0x0 0x0 0x322 0x322 0x4645 0x0 0x1 0x282
"HP      " "Ultrium 2-SCSI  " "HUL2M00617" "F5AH" 1094048116 81
"∕dev∕rmt∕1cbn" 0x1 "li" "NAB975" 1092691221 0x0 0x0 0x0 0x0 0x0 0x35c
0x0 0x0 0x0 0x0 0x0 0x0 0x4a 0x0 0x1 0x283

A C language program to convert time of day $TOD and $LABEL_TIME sysevent macros from digits to text:

#include stdio.h
#include sys∕types.h
#include stdlib.h
#include time.h
void main(int argc, char *argv)
{
         char str[100];
         time_t tm = atol(argv[1]);

         cftime(str, "%C", &tm);
         printf("%s\n", str);
}

The complied sefsysevent_time program then can be used to determine the label time of $VSN 000750.

# .∕sefsysevent_time 1091738029
Thu Aug  5 14:33:49 MDT 2004

To change the default polling cycle from once at unload to once every five minutes use:

# samset sef all on 300
# samset
…
device 80: tapealert on and supported, sef not applicable
device 81: tapealert on and supported, sef on and supported 300s
device 82: tapealert on and supported, sef on and supported 300s
device 90: tapealert on and supported, sef on and supported 300s
…

Or use ∕etc∕opt∕SUNWsamfs∕defaults.conf to change the default behavior:
# cat defaults.conf
sef=all on 300

The SEF sysevent macros are available in the ∕opt∕SUNWsamfs∕include∕sefvals.h file. The following is a description of the variables:

Field

Value

Class

Device

Subclass

SEF

Vendor

SUNW

Publisher

SUNWsamfs

SEF sysevent handler macros about Oracle HSM configuration and the SCSI Log Sense Error Counters for pages 2 and 3 and parameters 0-6.

Name

Value and Data Type

VENDOR

Inquiry vendor. Data type is string.

PRODUCT

Inquiry product. Data type is string.

REV

Inquiry revision. Data type is string.

USN

Inquiry unit serial number. Data type is string.

TOD

Time of day. Data type is int32.

EQ_ORD

mcf file Equipment Number. Data type is int16.

NAME

Device name. Data type is string.

VERSION

Inquiry version. Data type is byte.

INQ_TYPE

Inquiry peripheral device type. Data type is byte.

MEDIA_TYPE

Oracle HSM media type. Data type is string.

VSN

Volume serial name. Data type is string.

LABEL_TIME

VSN label timestamp. Data type is integer.

SET

mcf file Family Set. Data type is string.

FSEQ

mcf file Family Set Equipment Number. Data type is int16.

WHERE

SEF location poll=1 or unload=0. Data type is byte.

Write log sense page 2:

Name

Value and Data Type

LP2_PC0

Errors corrected without substantial delay. Data type is uint32.

LP2_PC1

Errors corrected with possible delays. Data type is uint32.

LP2_PC2

Total rewrites. Data type is uint32.

LP2_PC3

Total errors corrected. Data type is uint32.

LP2_PC4

Total times correction algorithm processed. Data type is uint32.

LP2_PC5

Total bytes processed. Data type is uint64.

LP2_PC6

Total uncorrected errors. Data type is uint32.

Read log sense page 3:

Name

Value and Data Type

LP3_PC0

Errors corrected without substantial delay. Data type is uint32.

LP3_PC1

Errors corrected with possible delays. Data type is uint32.

LP3_PC2

Total rereads. Data type is uint32.

LP3_PC3

Total errors corrected. Data type is uint32.

LP3_PC4

Total times correction algorithm processed. Data type is uint32.

LP3_PC5

Total bytes processed. Data type is uint64.

LP3_PC6

Total uncorrected errors. Data type is uint32.

To do simple media analysis, the captured sef data in the ∕var∕tmp∕xx.dat file can be formatted for StarOffice spreadsheet analysis and graphing.

SEE ALSO

samset (1m), defaults.conf (4), sefdata (4), sefreport (1m), tapealert (1m).