How to set up an EMS Filter for Discover ======================================== Here is a step by step method for developing an EMS filter for discover. First of all, you need a TACL file containing the Discover EMS definitions. This file is shipped with Discover, and is called DCVRTACL. If you do not have a copy, use the DCVRDDL file to create DCVRTACL. At TACL: DDL/IN MAKEDDL/ Here is a sample IN file (i.e. MAKEDDL) ?DICT ?SOURCE $SYSTEM.ZSPIDEF.ZSPITACL ?SOURCE $SYSTEM.ZSPIDEF.ZEMSTACL ?TACL $SYSTEM.DISCOVER.DCVRTACL ?SOURCE $SYSTEM.DISCOVER.DCVRDDL Write the filter, here is a sample which only shows messages for file/volumes starting with $CLX: FILTER DISC^CLX; BEGIN IF NOT (ZSPI^TKN^SSID = SSID(DCVR^VAL^SSID)) THEN FAIL; IF MATCH(DCVR^TKN^OBJNAME, "$CLX*") THEN PASS ELSE FAIL; END; Set Up the TACL environment: == get the SPI/EMS definitions attachseg shared $system.zspisegf.zspisegf :zspi attachseg shared $system.zspisegf.zemssegf :zems #set #uselist [#uselist] :ZSPI :ZEMS == Get the Discover Definitions #load/keep 1/$SYSTEM.DISCOVER.DCVRTACL == Set the Discover SSID #set DCVR^VAL^SSID:DCVR^VAL^SSID [DCVR^VAL^EXTERNAL^SSID] == compile the filter emf/in filter/ofilter Output looks like this: PID: 1,112 $SYSTEM.SYS01.EMFCOMP EMS Filter Compiler - T9634D30 - (15JAN96) - (19JUN90) COPYRIGHT TANDEM COMPUTERS INCORPORATED 1987-1994 Source file: [1] $CLX8.DISCDDL.FILTER 1998-08-31 14:55:52 1 2 FILTER DISC^CLX; 3 BEGIN 4 IF NOT (ZSPI^TKN^SSID = SSID(DCVR^VAL^SSID)) THEN 5 FAIL; 6 7 IF MATCH(DCVR^TKN^OBJNAME, "$CLX*") THEN 8 PASS 9 ELSE 10 FAIL; 11 END; 12 13 Object file name is $CLX8.DISCDDL.OFILTER Errors detected: 0 Warnings detected: 0 Use the filter, for example: emsdist type p,filter ofilter,textout $s.#JDFEMS,time 00:00,stop & eof,collector $0 Here is an example of the DCVRTACL file: == SCHEMA PRODUCED DATE - TIME : 8/31/98 14:32:51 == Constant DCVR-VAL-VERSION created on 08/31/98 at 14:32 ?Section DCVR^VAL^VERSION Text 17408 == Constant DCVR-VAL-EXTERNAL-SSID created on 08/31/98 at 14:32 ?Section DCVR^VAL^EXTERNAL^SSID Text DISCOVER.1.20 == Constant DCVR-TEXT-VERSION created on 08/31/98 at 14:32 ?Section DCVR^TEXT^VERSION Text 1.20 == Constant DCVR-VAL-DISCOVER created on 08/31/98 at 14:32 ?Section DCVR^VAL^DISCOVER Text DISCOVER == Constant DCVR-SSN-DCVR created on 08/31/98 at 14:32 ?Section DCVR^SSN^DCVR Text 1 == Definition DCVR-VAL-SSID created on 08/31/98 at 14:32 ?Section DCVR^VAL^SSID Struct Begin SSID DCVR^VAL^SSID; End; == Constant DCVR-TNM-OBJNAME created on 08/31/98 at 14:32 ?Section DCVR^TNM^OBJNAME Text 1 == Token Code DCVR-TKN-OBJNAME created on 08/31/98 at 14:32 ?Section DCVR^TKN^OBJNAME Struct BEGIN INT2 TOKEN^CODE VALUE 20054017; END; == Constant DCVR-EVT-TOOMANYEXTENTS created on 08/31/98 at 14:32 ?Section DCVR^EVT^TOOMANYEXTENTS Text 1 == Constant DCVR-EVT-FILEBROKEN created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEBROKEN Text 2 == Constant DCVR-EVT-FILECRASHOPEN created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILECRASHOPEN Text 3 == Constant DCVR-EVT-FILECORRUPT created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILECORRUPT Text 4 == Constant DCVR-EVT-FILEPROGID created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEPROGID Text 5 == Constant DCVR-EVT-FILELICENSED created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILELICENSED Text 6 == Constant DCVR-EVT-FILEFULL1 created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEFULL1 Text 7 == Constant DCVR-EVT-FILEFULL2 created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEFULL2 Text 8 == Constant DCVR-EVT-FILEFULL3 created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEFULL3 Text 9 == Constant DCVR-EVT-FILEFULL4 created on 08/31/98 at 14:32 ?Section DCVR^EVT^FILEFULL4 Text 10 == Constant DCVR-EVT-DISKFULL1 created on 08/31/98 at 14:32 ?Section DCVR^EVT^DISKFULL1 Text 11 == Constant DCVR-EVT-DISKFULL2 created on 08/31/98 at 14:32 ?Section DCVR^EVT^DISKFULL2 Text 12 == Constant DCVR-EVT-DISKFULL3 created on 08/31/98 at 14:32 ?Section DCVR^EVT^DISKFULL3 Text 13 == Constant DCVR-EVT-DISKFULL4 created on 08/31/98 at 14:32 ?Section DCVR^EVT^DISKFULL4 Text 14 == Constant DCVR-EVT-ALLOCATIONFAILURE1 created on 08/31/98 at 14:32 ?Section DCVR^EVT^ALLOCATIONFAILURE1 Text 15 == Constant DCVR-EVT-ALLOCATIONFAILURE2 created on 08/31/98 at 14:32 ?Section DCVR^EVT^ALLOCATIONFAILURE2 Text 16 == Constant DCVR-EVT-ALLOCATIONFAILURE3 created on 08/31/98 at 14:32 ?Section DCVR^EVT^ALLOCATIONFAILURE3 Text 17 == Constant DCVR-EVT-ALLOCATIONFAILURE4 created on 08/31/98 at 14:32 ?Section DCVR^EVT^ALLOCATIONFAILURE4 Text 18 == Constant DCVR-EVT-TOOMANYINDEXLEVELS created on 08/31/98 at 14:32 ?Section DCVR^EVT^TOOMANYINDEXLEVELS Text 19 == Constant DCVR-EVT-ROLLFORWARDNEEDED created on 08/31/98 at 14:32 ?Section DCVR^EVT^ROLLFORWARDNEEDED Text 20 == Constant DCVR-EVT-PREALLOCATE created on 08/31/98 at 14:32 ?Section DCVR^EVT^PREALLOCATE Text 21 == Constant DCVR-EVT-AUDITON created on 08/31/98 at 14:32 ?Section DCVR^EVT^AUDITON Text 22 == Constant DCVR-EVT-AUDITOFF created on 08/31/98 at 14:32 ?Section DCVR^EVT^AUDITOFF Text 23 == Constant DCVR-EVT-SAFEGUARDON created on 08/31/98 at 14:33 ?Section DCVR^EVT^SAFEGUARDON Text 24 == Constant DCVR-EVT-SAFEGUARDOFF created on 08/31/98 at 14:33 ?Section DCVR^EVT^SAFEGUARDOFF Text 25 == Constant DCVR-EVT-PROGIDON created on 08/31/98 at 14:33 ?Section DCVR^EVT^PROGIDON Text 26 == Constant DCVR-EVT-PROGIDOFF created on 08/31/98 at 14:33 ?Section DCVR^EVT^PROGIDOFF Text 27 == Constant DCVR-EVT-LICENSEON created on 08/31/98 at 14:33 ?Section DCVR^EVT^LICENSEON Text 28 == Constant DCVR-EVT-LICENSEOFF created on 08/31/98 at 14:33 ?Section DCVR^EVT^LICENSEOFF Text 29 == Constant DCVR-EVT-CLEARONPURGEON created on 08/31/98 at 14:33 ?Section DCVR^EVT^CLEARONPURGEON Text 30 == Constant DCVR-EVT-CLEARONPURGEOFF created on 08/31/98 at 14:33 ?Section DCVR^EVT^CLEARONPURGEOFF Text 31 == Constant DCVR-EVT-OWNERCHANGE created on 08/31/98 at 14:33 ?Section DCVR^EVT^OWNERCHANGE Text 32 == Constant DCVR-EVT-SECURITYCHANGE created on 08/31/98 at 14:33 ?Section DCVR^EVT^SECURITYCHANGE Text 33 == Constant DCVR-EVT-NEWSAVEABEND created on 08/31/98 at 14:33 ?Section DCVR^EVT^NEWSAVEABEND Text 34 == Constant DCVR-EVT-BUFFEREDON created on 08/31/98 at 14:33 ?Section DCVR^EVT^BUFFEREDON Text 35 == Constant DCVR-EVT-BUFFEREDOFF created on 08/31/98 at 14:33 ?Section DCVR^EVT^BUFFEREDOFF Text 36 == Constant DCVR-EVT-ORPHANFILE created on 08/31/98 at 14:33 ?Section DCVR^EVT^ORPHANFILE Text 37 == Constant DCVR-EVT-QUOTAEXCEEDED created on 08/31/98 at 14:33 ?Section DCVR^EVT^QUOTAEXCEEDED Text 38 == Constant DCVR-EVT-TOOMUCHSLACK created on 08/31/98 at 14:33 ?Section DCVR^EVT^TOOMUCHSLACK Text 39 == Constant DCVR-EVT-DISORDERED created on 08/31/98 at 14:33 ?Section DCVR^EVT^DISORDERED Text 40 == Constant DCVR-EVT-Y2KFILENAME created on 08/31/98 at 14:33 ?Section DCVR^EVT^Y2KFILENAME Text 41 == Constant DCVR-EVT-Y2KTAL created on 08/31/98 at 14:33 ?Section DCVR^EVT^Y2KTAL Text 42 == Constant DCVR-EVT-Y2KC created on 08/31/98 at 14:33 ?Section DCVR^EVT^Y2KC Text 43 == Constant DCVR-EVT-Y2KCOBOL created on 08/31/98 at 14:33 ?Section DCVR^EVT^Y2KCOBOL Text 44 == Constant DCVR-EVT-VOLUMEDIAGNOSE created on 08/31/98 at 14:33 ?Section DCVR^EVT^VOLUMEDIAGNOSE Text 45 == Constant DCVR-EVT-MONITORMSG created on 08/31/98 at 14:33 ?Section DCVR^EVT^MONITORMSG Text 500