I. Synopsis Messages provide a way to give a synopsis of EDT activity and errors placed into a flat text file, redirected to syslog, or sent to an email account. Typically, the messages provide a message number, a severity level, process id, a time stamp, and error status, information, or warnings. By default, no messages are active. You as an administrator, must decide what messages you wish enabled. You will see in the configuration of messages that the flexibility allows you to enable messages by class, type, range, specific numbers, severity levels, and even to change or create new severity levels. II. Quick Message Guidelines Messages as stated allow you to pick up errors and monitor EDT processes. The following guidelines show how to quickly manipulate the messages classes to your best advantage. - Severity 1 messages are restricted to reporting any errors directly effecting a request from the data storage manager. MSG CLASS MELM TYPE TMEM TCMD - To gain greater insight into EDT errors interprocess and errors reported by the media manager. MSG CLASS MENT TYPE TMEM TINV TCMD TIPROC MSG CLASS MSUB - To see all tape operator notifications MSG CLASS MELM TYPE TOPN MSG CLASS MENT TYPE TOPN - To get the best overall coverage of error reporting, and operator notification, combine types. MSG CLASS MELM TYPE TMEM TCMD TOPN MSG CLASS MENT TYPE TMEM TINV TCMD TIPROC TOPN - To monitor EDT processes MSG CLASS MELM TYPE TPROC MSG CLASS MENT TYPE TPROC - To pick up errors, get process information, and see all tape operator notifications, combine all the above methods. MSG CLASS MELM MENT MSUB - To redirect messages to a text based file, place the following into a library description. MSG FILE destination for example: MSG FILE /tmp/edtmsg.txt - LIMIT_MSG_TIME # The value represents duration of logs in hours. At each time duration limit the active log is copied using the current log name and the extension ".bak". The active diag log starts anew. The total duration of trace is from 0 bytes to two times the duration limit. Between the active and back log, you will have access from the time you collect trace back through the time duration. LIMIT_MSG_SIZE # The value represents size in MB. Each time one half the size limit is reached, the log is copied using the current name and the extention ".bak". The active diag log starts anew. Total size of the trace is 0 bytes to size limit. Once bak log is established, total amount of trace varies from one half to the full size. Size limitation overrides time duration limit. Therefore if using both options, it is suggested that size limit be set to stop trace from filling a filesystem, but high enough not to restrict the time duration limit from effectively collecting trace. III. Configuration Message Destination ------------------- By default, messages go to standard error. You can redirect messages to a text based file, the system syslog, and to a mail account. - To redirect messages to a text based file, place the following into a library description. MSG FILE destination where destination is the full path and file name. For example: MSG FILE /tmp/edtmsg.txt If you run run elm_testlibdesc against the library description, you will see the output FOUND MESSAGE redirection file, /tmp/edtmsg.txt - To redirect messages to the system syslog, place the following into a library description. MSG SYSLOG NOTE: Only sev level 1 critical error messages are passed to the syslog file. If you run run elm_testlibdesc against the library description, you will see the output FOUND MESSAGE SYSLOG command - To redirect messages to an email account, place the following into a library description. MSG MAIL mail_command The "mail_command" to use is your decision and the users and aliases to include are also your decision. * Using sendmail as the mail command The suggested command to use is the sendmail command. Depending on the OS platform, sendmail is found in the following directory: AIX: /usr/sbin Solaris: /usr/lib HP-UX: /usr/sbin - Include the full path to the sendmail command. - The sendmail daemon does not need to be running on the host machine on which the EDT is operating. - Sendmail needs to be running on your host machine that is acting as your mail server. - When using aliases or user names always include the hostname of the mail server, i.e. user@mailhost or alias@mailhost - Never include the domain name with the hostname, i.e. user@mailhost.domain.com. Sendmail does not like this and will bounce the message. * How to set up and aliases to send email to multiple users, and to send to an alpha pager. Edit the /etc/aliases file on the mail server as in the following example: #set up mail alias for admin edtadmin: john_doe,jane_doe #set up pager alias for admin edtadmin-pager: 8005551212.55555@pageme.net In the above example, the edtadmin alias can be used to mail the messages to the users you wish, and the edtadmin-pager alias is used to send messages to the pager address, which in the example represents the form of a legitimate pager address belonging to an on call administrator. It is necessary to place the pager address in the mail server's /etc/aliases file as an alias because of the guideline rule that sendmail does not respond correctly when a domain name is included. This aliasing of the pager address in the mail servers /etc/aliases file also assumes that the mail server has connectivity to the "outside" address. * Example: Using the example names in the /etc/aliases file, the MAIL command inserted into a library description in the elm.conf file could look like: MSG MAIL /usr/sbin/sendmail edtadmin@mailhost edtadmin-pager@mailhost * NOTE: Only sev level 1 critical error messages are sent to the mail command. * If you run run elm_testlibdesc against the library description, you will see the output FOUND MESSAGE MAIL /usr/sbin/sendmail edtadmin@mailhost edtadmin-pager@mailhost Message Classes --------------- A message class represents a specific process level within EDT. For example, MDRV enables messages that deal with tape I/O. - The available message classes are listed along with a brief descriptions as to their purpose: MSUB Command level to and from ACSLS media manager MENT Specific library type process level for requests for mount, dismount, release, eject, and volume query. MELM Common library type process level for requests for mount. Elm initialization level. - To enable a message class, insert the following into a library description. MSG CLASS class For example, MSG MSUB Multiple classes can be set on one line, for example MSG MENT MELM If you run elm_testlibdesc against the library description, these classes will appear as enabled: ENABLED MSG CLASS or TYPE: CLASS MSUB enabled CLASS MELM enabled CLASS MENT enabled Message Types ------------- - Each class has different types of messages for example, memory allocation errors, invalid parameters, that are common across all classes, and possibly some types which are valid only within a given class. You can enable message types throughout all classes or you can enable types within a specific class. - For each class, the associated types are listed. Class Type MSUB TMEM, TCNV, TINV, TCMD MENT TMEM, TINV, TCMD, TIPROC, TOPN, TPROC, TDRVSTAT MELM TMEM, TCMD, TOPN, TPROC - An explanation of each type TMEM Memory allocation errors TCNV Conversion errors TINV Invalid parameter errors TCMD Media Manager Command errors and Function call errors TIPROC Inter Process errors and warnings TOPN Tape operator notification TPROC Process information TDRVSTAT Drive status - To enable message types throughout all classes, insert the following into a library description. MSG TYPE type Example: MSG TYPE TMEM You can list multiple types on one line, for example MSG TYPE TMEM TINV If you run elm_testlibdesc against the library description, these types will appear as enabled for each of the classes ENABLED MSG CLASS or TYPE: CLASS MELM TYPE: TMEM on TCMD off TOPN off TPROC off CLASS MENT TYPE: TMEM on TINV on TCMD off TIPROC off TOPN off TPROC off CLASS MSUB TYPE: TMEM on TCNV off TINV on TCMD off - To enable specific types within a class, include the following in a library description MSG CLASS class TYPE type type ... Example: MSG CLASS MENT TYPE TMEM TCMD If you run elm_testlibdesc against the library description, these types will appear as enabled: ENABLED MSG CLASS or TYPE: CLASS MENT TYPE: TMEM on TINV off TCMD on TIPROC off TOPN off TPROC off - You can combine the two methods. For instance say you wish to enable types TMEM and TCMD and only have TPROC enabled in class MENT Example: MSG TYPE TMEM TCMD MSG TYPE CLASS MENT TYPE TPROC If you run elm_testlibdesc against the library description, these types will appear as enabled: ENABLED MSG CLASS or TYPE: CLASS MELM TYPE: TMEM on TCMD on TOPN off TPROC off CLASS MENT TYPE: TMEM on TINV off TCMD on TIPROC off TOPN off TPROC on CLASS MSUB TYPE: TMEM on TCNV off TINV off TCMD on - Message Hierarchy - Classes over Types If a class is enabled, inherently all message types within the class are enabled. In any of the aforementioned examples of enablement by message type, if you also have an entry that enabled by class, the output of elm_testlibdesc shows the class override; types are no longer individually listed. Example: MSG TYPE TMEM TCMD MSG TYPE CLASS MENT TYPE TPROC MSG CLASS MENT ENABLED MSG CLASS or TYPE: CLASS MENT enabled Message Severity ---------------- The message all feature a severity level, 1 through 5. You must consult later sections on message classes to see the default severity level set for individual messages. - By default message severity levels are as follows 1 - Critical error 2 - Error 3 - Warning 4 - Information 5 - Tape Operator console - To enable messages by severity level, place the following entry in a library description MSG SEVNO_ENABLE sevno Example: MSG SEVNO_ENABLE 1 You may place more than one severity level in the entry and have multiple entries. MSG SEVNO_ENABLE sevno sevno ... Example: MSG SEVNO_ENABLE 1 2 If you run elm_testlibdesc against the library description, these severity levels will appear as enabled ENABLED MSG SEVERITY: 1 2 - Enabling by severity works in union with enabling by class and type. If you enable classes and/or types, and enable by severity level, the effect is all messages encompassed by your settings are enabled. Change Message Severity ----------------------- You have the opportunity to change the severity of any message or even to create a new severity level. - To change the severity level of a message place the following into a library description MSG SEVNO_CHANGE EDT#_# where the first number represents the message number, 4 digits 0000-9999, and the the second number represents the severity level. You will have to know legitimate message numbers. This information is detailed in this document in discussion of individual message classes and their associated message numbers. You can place multiple numbers for an entry and have multiple entries. MSG SEVNO_CHANGE EDT#_# EDT#_# ... Example: You wish to change message EDT0100 and EDT0150 to critical severity level. MSG SEVNO_CHANGE EDT0100_1 EDT0150_1 If you run elm_testlibdesc against this library description, you will see the output CHANGED MSG SEVERITY: EDT0100_1 EDT0150_1 - You can create a new severity level using the change option and then enable that severity level as previously shown. Enable by Message Number or Range --------------------------------- You can enable single message numbers or ranges of message numbers. To do so, you will have to know legitimate message numbers. This information is detailed in this document in discussion of individual message classes and their associated message numbers. - To enable by message number, place the following entry into a library description MSG ENABLE EDT# where # is a 4 digit message number 0000-9999 - To enable by range, place the following entry into a library description MSG ENABLE EDT#-EDT# - You can intermingle message numbers and ranges. You can place as many numbers and ranges as you wish for a single entry. You can have multiple entries. Example: You wish to enable message number 0100 and range 0150-0199 MSG ENABLE EDT0100 EDT0150-EDT0199 If you run elm_testlibdesc against this library description, you will see the output ENABLED MSG # or range: EDT0100 EDT0150-EDT0199 - Enabling by number and range works in union with enabling by severity level, classes and types. If you enable classes and/or types, enable by severity level, and number and/or ranges, the net effect is all messages encompassed by your settings are enabled. Disable by Message Number or Range ---------------------------------- If you have set rules that use enablement of messages by any of the methods previously set forth, you have the ability to disable specific message numbers or ranges of numbers. This ability is provided in case you have one or more messages that keep being seen in the message file and its presence is overwhelming the flow of the message file, filling it up, or just plain irritating you. - To disable by message number, place the following entry into a library description MSG DISABLE EDT# where # is the message number, 4 digits 0000-9999 - To disable by range, place the following entry into a library description MSG DISABLE EDT#-EDT# - You can intermingle message numbers and ranges. You can place as many numbers and ranges as you wish for a single entry. You can have multiple entries. Example: You wish to disable message number 0100 and range 0160-0165 MSG DISABLE EDT0100 EDT0160-EDT0165 If you run elm_testlibdesc against this library description, you will see the output DISABLED MSG # or range: EDT0100 EDT0160-EDT0165 IV. Message Class MELM This class handles messages reflecting EDT's interaction with the data storage manager, TSM, reporting error, activity, and any informational notification for the requests mount, dismount, return scratch, query volume status, and eject volume from the library. The error messages at this level have severity level 1 so that any interruption to TSM activity can be more easily identified. The activity messages reflect EDT's processing of commands from the data storage manager listing a command identifying message at the start and completion. Tape operator messages can be sent from the data storage manager on the mount and eject commands. EDT posts these messages with severity level 5, again ease of enablement and identification. - The assigned range of message numbers is 0400-0499 - The message types for this class and their assigned range TMEM Memory Allocation Errors 0400-0419 TCMD Command and Function Errors 0420-0459 TOPN Tape Operator Notification 0460-0469 TPROC Process activity 0470-0494 - The format of the message is as follows EDT# SEV # date time diagnostic statement source file (line no) Typically, the diagnostic statement includes a description of the error as well as an error code. Example: <19530> EDT0424 SEV 1 05-11-2003 22:36:43 MOUNT Failure 000999 STATUS: ELM_VOLUME_UNAVAILABLE elm_mount.cpp (367) - Memory Errors EDT0400 SEV 1 Memory allocation error - Command Errors EDT0420 SEV 1 Dismount failure EDT0421 SEV 1 Release failure EDT0422 SEV 1 Query failure EDT0423 SEV 1 Eject failure EDT0424 SEV 1 Mount failure EDT0425 SEV 1 Start failure EDT0426 SEV 2 Check Label failure - Tape Operator Notification EDT0460 SEV 5 Eject location info EDT0461 SEV 5 Mount location info - Process activity EDT0470 SEV 4 Dismount begin EDT0471 SEV 4 Release begin EDT0472 SEV 4 Query begin EDT0473 SEV 4 Eject begin EDT0474 SEV 4 Mount begin EDT0475 SEV 4 Start begin EDT0476 SEV 4 Check Label begin EDT0477 SEV 4 Dismount complete EDT0478 SEV 4 Release complete EDT0479 SEV 4 Query complete EDT0480 SEV 4 Eject complete EDT0481 SEV 4 Mount complete EDT0482 SEV 4 Start complete - License Error and Information EDT0495 SEV 1 Temporary license expired EDT0496 SEV 1 Permanent license invalid EDT0497 SEV 1 No valid license found EDT0498 SEV 4 Temporary license set to expire in named days and hours. Message is shown starting 10 days prior to expiration. V. Message Class MENT This class handles the layer in which commands to the media manager are are manipulated in order to fill the requests coming from the data storage manager. - The assigned range of message numbers is 0200-0399 - The message types recognized by this class and their assigned range TMEM Memory Allocation Errors 0200-0219 TINV Invalid Parameter 0220-0249 TCMD Command Error 0250-0299 TIPROC Interprocess Activity 0300-0349 TOPN Tape Operator Notification 0350-0369 TPROC Process Activity 0370-0389 TDRVSTAT Drive Status 0390-0399 - The format of the message is as follows EDT# SEV # date time diagnostic statement source file (line no) Typically, the diagnostic statement includes a description of the error as well as an error code. Some messages are purely informational, like those in the message type TDRVSTAT. Example: <17390> EDT0390 SEV 4 03-23-2004 17:02:33 Drive Stat: 0,0,0,4 status STATUS_DRIVE_IN_USE state STATE_ONLINE lock 29915 owner duff.LIB1.18314 vol ISV007 acsls_m_choose_drive.cpp (110) - Memory Errors EDT0200 SEV 2 Memory Allocation Error - Invalid Parameter EDT0220 SEV 2 Invalid volume size - Command Errors from the media manager EDT0250 SEV 2 Initialization error EDT0251 SEV 2 Query Volume error EDT0252 SEV 2 Query Drive error EDT0253 SEV 2 Unload error EDT0254 SEV 2 Mount error EDT0255 SEV 2 Dismount error EDT0256 SEV 2 Vary Offline error EDT0257 SEV 2 Unlock Drive error EDT0258 SEV 2 Lock Drive error EDT0259 SEV 2 Query Lock Drive error EDT0260 SEV 2 Eject error EDT0261 SEV 2 Eject Vol error EDT0262 SEV 2 Query Lock Vol error EDT0263 SEV 2 Query Pool error EDT0264 SEV 2 Set Scratch error EDT0265 SEV 2 Set Scratch Vol error - Inter Process Errors EDT0300 SEV 3 Communications retry EDT0301 SEV 2 Communications failure EDT0302 SEV 3 Volume not found in a drive. EDT0303 SEV 2 Volume not found in a drive in EDT configuration. EDT0304 SEV 2 Drive not in EDT configuration. EDT0305 SEV 3 Device is busy, will not open for data I/0 EDT0306 SEV 3 Device will not open. Look to errno for diagnostic. EDT0307 SEV 3 No Device opens for this drive. EDT0308 SEV 3 Drive found in locked or owned state. May use volume in drive, but will not dismount or unlock drive EDT0309 SEV 3 Error has triggered mechanism that leaves drive in a locked and drive will not be cleared. EDT0310 SEV 3 Drive in error state, status toggling from in use to empty. EDT0311 SEV 3 Drive in error state, status toggling from empty to in use. EDT0312 SEV 3 Drive found in use on mount attempt. EDT0313 SEV 4 Drive found empty on dismount attempt. EDT0314 SEV 4 Dismount retry triggered. EDT0315 SEV 2 Scratch pool empty. EDT0316 SEV 3 Volume found in drive with status dictating EDT can take control. EDT0317 SEV 2 Take control of volume failure. EDT0318 SEV 4 Volume all ready in a drive. Wait for volume to be freed and request mount. EDT0319 SEV 4 Volume in transport. Delay mount request until status change. EDT0320 SEV 2 Volume not in library; report as an error. EDT0321 SEV 2 Volume all ready in drive; report as an error. EDT0322 SEV 2 Volume not home. Catch all for remaining no mountable volume status. EDT0323 SEV 2 Volume is owned by other client. Access denied. EDT0324 SEV 3 Volume found in drive with controlling elmdt no longer active. Clear drive. EDT0325 SEV 3 Volume found in drive with active controlling elmdt process. Do not clear drive. EDT0326 SEV 2 Drive index return is zero. Abort mount. EDT0327 SEV 4 Drive status: status, state, lockid, userid, vol in drive. EDT0328 SEV 3 Mount failure. Drive found offline. EDT0329 SEV 3 Test open on device failed. EDT0330 SEV 2 No devices available for the drive. EDT0331 SEV 4 No drives available. Wait and retry mount. EDT0332 SEV 4 Mount failure. Retry triggered. EDT0334 SEV 3 Drive being cleared. EDT0335 SEV 3 Movement between lsms on scratch mount. - Tape Operator Notification EDT0350 SEV 5 Volume Not In Library. Please place named volume in the library import area and insert into home slot. EDT0351 SEV 5 Volume volname being ejected to cap capID. - Process Activity EDT0370 SEV 4 Clear Drives process begin. EDT0371 SEV 4 Drive being cleared by clear drives process. - Drive Status EDT0390 SEV 4 Drive Status - status, state, lockid, userid, vol, vol in drive. EDT0392 SEV 4 Drive Status EDT0393 SEV 4 Drive State EDT0394 SEV 4 Drive Lock Status EDT0395 SEV 4 Drive Accessed VI. Message Class MSUB This class handles the layer in which commands are sent and received from the ACSLS media manager. - The assigned range of message numbers is 0100-0199 - The message types recognized by this class and their assigned range TMEM Memory Allocation Errors 0100-0109 TCNV Conversion Errors 0110-0129 TINV Invalid Parameter 0130-0149 TCMD Command Error 0150-0199 - The format of the message is as follows EDT# SEV # date time diagnostic statement source file (line no) Typically, the diagnostic statement includes a description of the error as well as an error code. - Memory Errors EDT0100 SEV 2 Memory allocation error - Conversion Errors EDT0110 SEV 3 error converting drive to ACS driveID EDT0111 SEV 3 error converting volume range to ACS volID EDT0112 SEV 3 error converting cap to ACS capID EDT0113 SEV 3 error converting acs to ACS acsID EDT0114 SEV 3 error converting lsm to ACS lsmID EDT0115 SEV 3 error converting port to ACS portID - Invalid Parameters EDT0130 SEV 2 invalid volume length - Command Errors EDT0150 SEV 3 Receive response retry EDT0151 SEV 3 Receive response unsequenced EDT0152 SEV 2 Receive response pending error