|  | 
	Hi,
	You must use one data collector by domain to provide this function.
	
	
	Typically if you have to survey the lost of adjacency from a router,you 
	have to know to which domain the adjacent node belongs("source" of the 
	event).
	
	The best way is to set up a rule looking for the event and dealing with
	the parameters,you know the "source" of the event and  you can find the 
	domain.
	
	Then you send your message to the data collector in the appropriate
	domain and target to the source.
	restrictions:
	-you have to create a separate domain(not part of you tree)and your 
	routers must be members.
	-don't enable notification on that domain.
		(you will get only one notification through your collector)
	
	-enable collectors 
	-enable the rule in batch 		
	 
	I have used  one part of the save_set MCC_REACH found in note # 28
        (noted::mcc-tools)
	 I not very confident with DCL so if you to improve the procedure ...
	 Regards 
						Fabrice.
  CREATE DOMAIN MCC_REACH RULE  PERTE_ADJACENCE_GLOBALE_ADP     -
  EXPRESSION         =  (OCCURS(NODE4 * CIRCUIT * ADJACENT NODE *       -
                          ANY CONFIGURATION EVENTS))                        ,-
  CATEGORY           =  "ADJACENCE"                                    ,-
  DESCRIPTION        =  "Cette r�gle d�tecte la perte d'accessibilit�   ,-
                         de ce Node par son routeur d'aire"             ,-
  ALARM FIRED PROCEDURE     =  MCC_REACH_dir:ADJACENCE_RULE_FIRED.com        ,-
  ALARM EXCEPTION PROCEDURE =  MCC_COMMON:MCC_ALARMS_MAIL_EXCEPTION.COM     ,-
  BATCH QUEUE               = "ALARMS"                                      ,-
  ALARM FIRED PARAMETER     =  "system"                                     ,-
  SEVERITY           =      Critical
		 
	
			
				
	
$!	Procedure executee en batch sur detection de l'alarme ADAJACENCE_MCC_REACH
$!	autorisee sur le DOMAIN MCC_REACH.
$! 	
$!	
$ set noon
$ @mcc_reach_dir:mcc_reach_symbols.com
$ domain_members = "MCC_REACH_DIR:DOMAIN_MEMBERS.IDX"
$ member_excepts = "MCC_REACH_DIR:NONOTIFY_MEMBERS.IDX"
$ set proc/priv=grpnam
$ set def mcc_reach_dir
$ mcc_node = "0" 
$!  test des parametres
$ data1:='p1
$ data2:='p2
$ data3:='p3
$ data4:='p4
$ data5:='p5
$ data6:='p6
$ data7:='p7
$ data8:='p8
$! P8 contient plus d'infos :
$!		  translation address --> node name
$!		  managed object
$! copy 'p8 MCC_REACH_DIR:param8.log
$ 
$!
$!
$ pid=f$getjpi ("","PID")
$ gosub get_event
$ gosub get_reason
$ gosub get_adjacent_node
$ gosub get_domain
$ gosub send_event
$ goto end
$!
$!.........................................................................
$!
$ GET_EVENT:
$!
$ search/output=osi_event_'pid.tmp 'p8 EVENT_ARGUMENTS:
$ open/read event osi_event_'pid.tmp
$ read/err=end_event_read event event_args
$ END_EVENT_READ:
$ close event
$ event_args = f$edit(event_args,"COMPRESS,TRIM,UPCASE")
$ sh sym event_args
$ delete osi_event_'pid.tmp;
$ return
$!.........................................................................
$!
$ GET_REASON:
$!
$ 	severity = "CRITICAL" 
$ event_reason1 = f$element(2," ",event_args) 
$ event_reason2= f$element(3," ",event_args)
$ reason= event_reason1 + " " + event_reason2
$ if   f$edit(event_reason2,"UPCASE") .eqs. "UP" then 	severity = "CLEAR" 
$ sh sym severity
$ return
$!
$!.........................................................................
$!
$ GET_ADJACENT_NODE:
$!
$ I=0
$ CHERCHE:
$ if f$element(I," ",event_args) .eqs. " " 
$ Then Target="DNA_NODE." + f$element(I-1," ",event_args)
$ sh sym TARGET
$ return
$ else
$ i=I+1
$ goto Cherche
$ endif
$!                                                                        
$!
$!.........................................................................
$!
$ GET_DOMAIN:
$!
$ open/read members 'domain_members
$ read/key="''TARGET'"/end_of_file=end_domain/err=end_domain members member_line
$ NEXT_DOMAIN_READ:
$ member_line=f$edit(member_line,"COMPRESS,TRIM")
$ sh sym member_line
$ read_object = f$element(0," ",member_line)
$ show sym read_object
$ if  f$edit(TARGET,"UPCASE") .nes. f$edit(read_object,"UPCASE") -
  then goto end_domain
$ domain=f$element(1," ",member_line)
$ sh sym domain
$ read/end_of_file=end_domain/err=end_domain members member_line
$ goto next_domain_read
$ END_DOMAIN:
$ close members
$ return
$!
$!.........................................................................
$!
$ SEND_EVENT:
$ send_event :== $MCC_SYSTEM:MCC_EVC_SEND.EXE
$ send_event "''mcc_node'" "collecteur_''domain'" -
"NODE4 ''TARGET'"  "''P3' " "''reason'" "''severity'"
$ return
$!.........................................................................
$!
$!
$ END:
$ DEL 'P8;
$ purge/keep=10 sys$login:ADJACENCE_RULE_FIRED.log
$ exit
 |