[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

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.RTitleUserPersonal
Name
DateLines
4644.1TOOK::GUERTINMCC: Legend or Nightmare?Mon Mar 08 1993 13:5914
    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.