[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | DECmcc user notes file. Does not replace IPMT. |
Notice: | Use IPMT for problems. Newsletter location in note 6187 |
Moderator: | TAEC::BEROUD |
|
Created: | Mon Aug 21 1989 |
Last Modified: | Wed Jun 04 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 6497 |
Total number of notes: | 27359 |
4644.0. "Problem with %DCL-W-DEFOVF error in alarm procedure." by VCSESU::WADE (Bill Wade, VAXc Systems & Support Eng) Fri Mar 05 1993 15:58
I'm having a problem with an alarm procedure crashing with the error,
"%DCL-W-DEFOVF, too many command procedure parameters - limit to eight"
It looks like a problem with passing parameters between
MCC_ALARMS_SECURITY.COM and MCC_ALARMS_MAIL_ALARM.COM. Notification is
working.
I modified MCC_ALARMS_SECURITY.COM so the data file would not be deleted.
The MANAGED OBJECT: line in the data file is very long and has a "1" at
the end. No idea where the "1" came from. Notes would not let me include
the data file so you'll have to copy it from -
VCSESU::USERDISK2:[WADE.public]MCC_ALARMS_DATA_15264743.DAT;1
The alarm rule:
MCC> show domain termtest rule OMS_TS_SITE2-DS200_PORT_1_state all charac
Domain LOCAL_NS:.termtest Rule OMS_TS_SITE2-DS200_PORT_1_state
AT 5-MAR-1993 15:36:34 Characteristics
Examination of attributes shows:
Alarm Fired Procedure =
SYS$COMMON:[MCC]MCC_ALARMS_MAIL_ALARM.
COM;2
Alarm Exception Procedure =
SYS$COMMON:[MCC]MCC_ALARMS_MAIL_EXCEPT
ION.COM;2
Description = "MDF003 console line changed
state"
Alarm Fired Parameters = "SYSTEM"
Expression = (CHANGE_OF (TERMINAL_SERVER
TERM.SITE2-DS200 PORT 1 INPUT
SIGNALS, *,*), AT
EVERY=00:01)
Severity = Critical
Probable Cause = Unknown
The log file:
$!
$! This command procedure is always run when anybody on the entire system
$! logs in. It is equivalent to LOGIN.COM except that the instructions
$! contained herein are executed everytime anyone on the VMS system
$! logs in to their account.
$!
$! For interactive processes, turn on Control T, and set the terminal type
$!$ IF (F$MODE() .EQS. "INTERACTIVE") THEN SET CONTROL=T
$! IF (F$MODE() .EQS. "INTERACTIVE") THEN SET TERMINAL/INQUIRE
$! The previous command was replaced by what follows on 13-APR-92
$! for OMS install requirements. TomL.
$! lower case additions by steve branam 4-AUG-92
$!
$ IF F$GETDVI("SYS$OUTPUT:", "TRM" )
$ ENDIF
$!
$! For MicroVAX systems only, use the command MOUNT/NOASSIST.
$!
$ IF (.NOT. F$TRNLNM("SYS$MICROVAX")) THEN GOTO SKIP_MICROVAX_COMMANDS
$SKIP_MICROVAX_COMMANDS:
$!
$! Place your site-specific LOGIN commands below
$!
$Set Prompt=OMSONE$
$define MDF$LOG $1$dia1:[test_findings]
$MDF$LOG == "set def $1$dia1:[test_findings]
$!
$! This command procedure is a framework for building an individual
$! login command procedure. It is executed every time that you log
$! into your account.
$!
$ IF F$MODE() .NES. "INTERACTIVE" THEN GOTO ENDINTER
$ENDINTER:
$ IF F$MODE() .NES. "BATCH" THEN GOTO ENDBATCH
$!
$! Put commands you want executed only in batch mode between this comment
$! and the "ENDBATCH:" symbol.
$!
$
$ENDBATCH:
$!
$! Put commands that you want executed in any mode of login below.
$!
$ showp == "@sys$manager:show_procs"
$ showvcs == "@sys$manager:show_procs vcs"
$ showmdf == "@sys$manager:show_procs mdf"
$ showmv == "@sys$manager:show_procs mdf,vcs"
$!
$ assign vcsesu::oms$dsk:[development.user.steele.iodl] vcsesu_iodl
$ assign vcsesu::oms$dsk:[development.user.steele.shd] vcsesu_shd
$ assign vcsesu::oms$dsk:[development.user.steele.oms] vcsesu_oms
$! FILE: MCC_ALARMS_SECURITY.COM
$!
$! **************************************************************
$! * ********************************************************** *
$! * * * *
$! * * Copyright (c) Digital Equipment Corporation, 1990 * *
$! * * All Rights Reserved. Unpublished rights reserved * *
$! * * under the copyright laws of the United States. * *
$! * * * *
$! * * The software contained on this media is proprietary * *
$! * * to and embodies the confidential technology of * *
$! * * Digital Equipment Corporation. Possession, use, * *
$! * * duplication or dissemination of the software and * *
$! * * media is authorized only pursuant to a valid written * *
$! * * license from Digital Equipment Corporation. * *
$! * * * *
$! * * RESTRICTED RIGHTS LEGEND Use, duplication, or * *
$! * * disclosure by the U.S. Government is subject to * *
$! * * restrictions as set forth in Subparagraph (c)(1)(ii) * *
$! * * of DFARS 252.227-7013, or in FAR 52.227-19, as * *
$! * * applicable. * *
$! * * * *
$! * ********************************************************** *
$! **************************************************************
$!
$! FACILITY:
$! MCC -- Management Control Center
$!
$! ABSTRACT:
$!
$! This purpose of this command file is to normalize DCL symbols, set
$! user's privileges to NOALL, restrict logical trasnlation to searching
$! on the system logical translation table, all as a security measure.
$!
$! When a RULE fires, this command file will be queued to the SYS$BATCH
$! or user specifed execution queue. This file will call the user's
$! specified command file after taking the above security precautions.
$! It will then set the user's environment back to its original state.
$!
$! The LOGFILE for the execution of the batch job is written to the
$! directory where the user specified command procedure is located.
$!
$! The parameters p1-p8 are displayed if the MCC_ALARMS_FM_LOG debug mask
$! is set to ??
$!
$! ========================================================================
$!++
$! If the MCC_ALARMS_FM_LOG set to ALARMS$M_LOG_SECURITY_WRITELNS then write
$! the values of P1 through P8
$!--
$!
$ ALARMS$M_LOG_SECURITY_WRITELNS = %X08
$!
$ ALARMS$STR_MASK = f$trnlnm ("MCC_ALARMS_FM_LOG")
$ ALARMS$INT_MASK = f$integer ("%x"+ ALARMS$STR_MASK)
$ ALARMS$BIT = ALARMS$INT_MASK .and. ALARMS$M_LOG_SECURITY_WRITELNS
$!
$ queue = f$getqui ("DISPLAY_JOB", "QUEUE_NAME",, "THIS_JOB")
$ write sys$output "Current queue: ",queue
Current queue: SYS$BATCH
$!
$ if ALARMS$BIT .gt. 0
$ endif
$!
$!++
$! Delete all the users symbols. This is done to NORMALIZE the DCL symbols
$!--
$ D == "DELETE"
$ D/SYMBOL/GLOBAL/ALL
$!++
$! DELETE user defined logicals in PROCESS and JOB tables
$!--
$ if ALARMS$BIT .gt. 0 then SHOW LOG
$!
$! DEASSIGN/PROCESS/ALL !For Debug - removed by RJS, 18-May-92
$! DEASSIGN/JOB/ALL !For Debug - removed by RJS, 18-May-92
$!
$! Restrict logical translation to the PROCESS, JOB and SYSTEM logical
$! translation tables. GROUP is not used.
$ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV LNM$PROCESS,-
LNM$JOB, LNM$SYSTEM
$!
$ if ALARMS$BIT .gt. 0 then SHOW LOG
$!
$!++
$! Save all users privileges and turn them off
$!--
$ SAVEPRIVS = F$SETPRV ("NOALL,TMPMBX, NETMBX")
$!
$!++
$! Split the DATA filename off from the User's Procedure name
$!--
$ COMMAND_PROCEDURE = F$ELEMENT(0, "/", P8)
$ DATA_FILE = F$ELEMENT(1, "/", P8)
$!
$! The below 4 lines are to remove any trailing dot that have been
$! known to show up in some cases.
$ FILE_NAME = f$parse(data_file,,,"NAME")
$ DATA_FILE = "SYS$SCRATCH:" + file_name + ".DAT"
$!++
$! Set ON incase user's command procedure returns error
$!--
$ on sever_error then continue
$ on error then continue
$ on warning then continue
$
$!++
$! Run the User's Command Procedure
$!--
$ @SYS$COMMON:[MCC]MCC_ALARMS_MAIL_ALARM.COM;2 "Domain LOCAL_NS:.termtest Rule OMS_TS_SITE2-DS200_PORT_1_STATE "- !rulename
"MDF003 console line changed state"- !category
""- !description
"(CHANGE_OF (TERMINAL_SERVER TERM.SITE2-DS200 PORT 1 INPUT SIGNALS, *,*), AT EVERY=00:01)"- !expression
" 5-MAR-1993 15:26:47.43"- !time
"Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = "CD, CTS, DSR" 5-MAR-1993 15:25:27.14<EOS>Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = "CTS" 5-MAR-1993 15:26:27.12"- !dtcrtf or error
"SYSTEM"- !notification params
"SYS$SCRATCH:MCC_ALARMS_DATA_15264743.DAT" !file that contains more info about the rule
%DCL-W-DEFOVF, too many command procedure parameters - limit to eight
$ !++
$ ! Delete the data file
$ !--
$! DELETE 'DATA_FILE';
$ !++
$ ! clean exit point
$ !--
$ clean_exit:
$ !
$ !----------------------------------------------------------------------------
$ exit
SYSTEM job terminated at 5-MAR-1993 15:26:53.27
Accounting information:
Buffered I/O count: 30 Peak working set size: 436
Direct I/O count: 40 Peak page file size: 2455
Page faults: 466 Mounted volumes: 0
Charged CPU time: 0 00:00:00.72 Elapsed time: 0 00:00:05.04
T.R | Title | User | Personal Name | Date | Lines |
---|
4644.1 | | TOOK::GUERTIN | MCC: Legend or Nightmare? | Mon Mar 08 1993 13:59 | 14 |
| With my admittedly limited knowledge of Alarms-FM command file
processing, I would say it is a problem with the following DCL
command procedure parameter being treated as multiple parameters:
>>> "Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = "CD, CTS, DSR" 5-MAR-1993 15:25:27.14<EOS>Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = "CTS" 5-MAR-1993 15:26:27.12"- !dtcrtf or error
I believe they just need another set of double quotes:
"Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = ""CD, CTS, DSR"" 5-MAR-1993 15:25:27.14<EOS>Rule fired: Terminal_Server LOCAL_NS:.term.site2-ds200 Port 1 Input Signals = ""CTS"" 5-MAR-1993 15:26:27.12"- !dtcrtf or error
It sounds like an easy fix to alarms (to one who does not know that
much about it :-).
-Matt.
|