[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

211.0. "How to dispatch ALL ATTRIBUTES?" by COOKIE::KITTELL (Richard - Architected Info Mgmt) Fri Jul 27 1990 14:39

(Geez, this guy asks a lot of questions...)

The only MCC_K_ATTR_PRT_ symbol that looks close is MCC_K_ATTR_PRT_ALL, so
I have a dispatch table entry:

        mcc_dispatch_entry -
                SHOW,-
                <mcc_entity <PBD,* >>,-
                ALL,-
                DHSM_AM__PBD_SHOW

But I still get:

MCC> show pbd x all attr
%MCC-E-NOTFOUND,  Dispatch entry for the specified entity does not exist
T.RTitleUserPersonal
Name
DateLines
211.1It's quite simple really :-} :-}TOOK::STRUTTColin StruttFri Jul 27 1990 15:0522
    You should not need to provide an entry point for any GROUPS of
    attributes (including ALL ATTRIBUTES), only entry points for PARTITIONS
    of attributes.
    
    The PMs have enough smarts so that when a user requests, say, a display
    of a group of attributes (say ALL ATTRIBUTES), then it determines, via
    the dictionary, which attribute partitions are involved, and makes a
    series of requests for each of the partitions individually, then it
    combines the information from each partition, sucking out only those
    that comprise the requested group, and displays them to the user.
    
    So, in summary, as it was described recently:
    	Partitions are used for dispatch purposes
    	Groups are used for user interface purposes.
    
    [If you're still following this, note that ALL COUNTERS when specified
    by the user, is an ATTRIBUTE GROUP, that just happens to have the same
    definition as the ATTRIBUTE PARTITION of the same name - thus the PM
    algorithm determines which partitions are involved in ALL COUNTERS, and
    it determines that there is only one, ie. the COUNTERS partition.]
    
    Colin
211.21 disp entry/partitionMKNME::DANIELEFri Jul 27 1990 15:5017
       But as far as dispatch entries go, you can't wildcard the attribute 
       partition part of the dispatch entry macro.                         
                                                                           
       So even if you have 1 routine to handle class FOOB subclass BAR's   
       counters and characteristics, you'd need 2 dispatch entries.        
                                                                           
mcc_dispatch_entry -                                                       
             SHOW,-                                                        
             <MCC_ENTITY <FOOB, *>, <BAR, *> >,-                           
             COUNTERS,-                                                    
             show_routine                                                  
                                                                           
mcc_dispatch_entry -                                                       
             SHOW,-                                                        
             <MCC_ENTITY <FOOB, *>, <BAR, *> >,-                           
             CHAR,-                                                        
	     show_routine
211.3Not working as advertised...COOKIE::KITTELLRichard - Architected Info MgmtSat Jul 28 1990 14:3512
Thanks for the replies. I had noticed by trial that attribute partitions
can't be wildcarded. But the only reason I even tried that is this:

$ mcc
DECmcc (T1.0.1)

MCC> show pbd x all attributes
%MCC-E-NOTFOUND,  Dispatch entry for the specified entity does not exist

Colin, could I have somehow broken the implicit ALL ATTRIBUTES group you
described in .1? Should that group be defined in my MSL?
211.4MKNME::DANIELESun Jul 29 1990 19:4721
	MCC> show FOOB X all attributes

	causes the FCL module to search the dictionary for any attribute
	partitions defined for entity FOOB.  It then issues separate
	requests for each of those partitions.  Assume for instance you have
	defined FOOB to have characteristics, counters, and identifiers.  The
	above request has the same effect ( on the AM ) as if you had typed

	MCC> show FOOB X all ident
	MCC> show FOOB X all counters
	MCC> show FOOB X all char

	Sounds like you haven't defined a dispatch entry for one of the
	partitions you've defined.  It also sounds like the symbol
	MCC_K_ATTR_PRT_ALL is treated as just another partition code in the
	dispatch tables.  I don't know if it was ever intended to signify
	what you want to do ( dispatch any request for attributes to this
	entry point ).

	Regards,
	Mike	
211.5no ident partition yet COOKIE::KITTELLRichard - Architected Info MgmtMon Jul 30 1990 03:436
Thanks, Mike.

I don't have an identifiers partition yet (I'm just now getting out of
pseudo-entity mode and writing to the MIR). So when ALL ATT tried
to dispatch to ALL IDENT it failed.
211.6MARVIN::COBBGraham R. Cobb (Wide Area Comms.), REO2-G/H9, 830-3917Mon Jul 30 1990 12:4118
Re: .1.

>    So, in summary, as it was described recently:
>    	Partitions are used for dispatch purposes
>    	Groups are used for user interface purposes.

So, Colin,  you  are  saying  that  there is no way for MCC to request a DNA
Phase  V  entity  to  return  any of the DNA attribute groups (which are not
partitions  because an attribute may be a member of more than one group)? Or
are  the MCC *partitions* mapped, by the P5 AM to DNA *groups* (which sounds
like it could confuse some FM or PM)?

It seems  unacceptable,  to  me, that a director has no mechanism to request
that  an entity return all attributes that the entity knows about (including
ones  that the director doesn't know about).  It is unlikely that a director
will always be up to date with the entity implementations.

Graham
211.7FCL processing flowGOSTE::CALLANDERMon Jul 30 1990 14:59213
    
    As it currently stands, and there are proposals on the table for
    future changes, the interface between modules only allows for the
    requesting of a single partition at a time.
    
    To debug problems with getting ALL ATTRIBUTES or groups to work,
    use the MCC_FCL_PM_LOG logical (value 8) to see what partition is
    being requested when the failure is detected. An example is attached.
    
    A quick review of how things work for groups. First the terms that
    I will be using are NOT the same so those used in our end user
    docuementation. In the manuals NO distinction is drawn between groups
    and partitions. Here though I will use the following:
    
    partition - each attribute belongs to one and only one partition,
    these group by type each and EVERY attribute that CAN be returned
    by a module/entity
    
    group - these are logical groupings of attributes where any attribute
    many belong to any group. An attribute may belong to many groups
    or none (ALL ATTRIBUTES is a special case group defined by the FCL
    on the users behalf, it is NOT defined in the MS file)
 
    To get a group to work you must do the following:
    
    	- define your attr partitions in you management spec
    	- define the group in you management spec (except for all attrs)
    	- make sure you have entry points for ALL of your partitions
    	- run MSL/DAP/PTB and your off.
    
    What is done when the user enters a request for a group is the
    following (starting in the FCL):
    	
    	- FCL detects user requested a group
    	- group is broken out based upon the partitions represented
	  in the request
    	- one call is made for each partition
    	- as each partition returns, using the list broken out
    	  by partition, the specific attributes are pulled from
    	  the partition (out_p) and displayed
    	- if an attribute isn't returned, it is ignored
    	- if ALL REFERENCE fails the exception is surpressed
        - if the request for a specific partition (other than REFERENCE)
          fails, only the first exception is printed all others are
    	  surpressed
    
------------------------------- SAMPLE RUN -------------------------------------
    
    GOSTE$ def mcc_Fcl_pm_log 8
    GOSTE$  manage/enter
    DECmcc (V1.0.0)
    
    MCC> show mcc 0 all attr
    FCL PM Arguments before call_function:
    AES DUMP of ENTITY IN:
    
    depth=1 class code= 7 instance = 0
    
    ILV DUMP of INP: in_p is NULL
    ILV DUMP of INQ: in_q is NULL
    ATTRIBUTE PARTITION: 1
    
    *******************************************
    
    FCL PM Arguments on return from call_function:
    ILV DUMP of OUTP:
    
    [  1 ] (
        [  1 ] (
            [  1 ] (
                [  1 ]             05
                [  2 ]             aa 00 04 00 74 12 a0 88 3b 9e 94
    6b 93 00 17 00 0
    1 03 4d 43
                43 01 0e 47 4f 53 54 45 5f 44 49 52 45 43 54 4f 52 00
    00
                [  3 ]             00
                )
            )
        )
    AES DUMP of ENTITY OUT:
    
    depth=1 class code= 7 instance = 0
    
    CVR returned:
    %MCC-S-RESPONSE, Success with response reply
    
    MCC 0
    ALL ATTRIBUTES
    AT 30-JUL-1990 10:14:03
    
    
                             Component Name = KAJUN_NS:.MCC.GOSTE_DIRECTOR
    FCL PM Arguments before call_function:
    AES DUMP of ENTITY IN:
                                          
    depth=1 class code= 7 instance = 0
    
    ILV DUMP of INP: in_p is NULL
    ILV DUMP of INQ: in_q is NULL
    ATTRIBUTE PARTITION: 2
    
    *******************************************
    
    FCL PM Arguments on return from call_function:
    ILV DUMP of OUTP:
    
    [  2 ] (
        )
    AES DUMP of ENTITY OUT:
    
    depth=1 class code= 7 instance = 0
    
    CVR returned:
    %MCC-S-RESPONSE, Success with response reply
    
    FCL PM Arguments before call_function:
    AES DUMP of ENTITY IN:
                            
    depth=1 class code= 7 instance = 0
    
    ILV DUMP of INP: in_p is NULL
    ILV DUMP of INQ: in_q is NULL
    ATTRIBUTE PARTITION: 3
    
    *******************************************
    
    FCL PM Arguments on return from call_function:
    ILV DUMP of OUTP:
    
    [  2 ] (
        )
    AES DUMP of ENTITY OUT:
    
    depth=1 class code= 7 instance = 0
    
    CVR returned:
    %MCC-S-RESPONSE, Success with response reply
    
    FCL PM Arguments before call_function:
    AES DUMP of ENTITY IN:
                            
    depth=1 class code= 7 instance = 0
    
    ILV DUMP of INP: in_p is NULL
    ILV DUMP of INQ: in_q is NULL
    ATTRIBUTE PARTITION: 4
    
    *******************************************
    
    FCL PM Arguments on return from call_function:
    ILV DUMP of OUTP:
    
    [  1 ] (
        [  1 ] (
            [  3 ] (
                [  1 ]             09
                [  2 ]             56 01 00 00
                [  3 ]             00
                )
            [  4 ] (
                [  1 ]             03
                [  2 ]             44 45 43 6d 63 63  -- DECmcc
                [  3 ]             00
                )
            )
        )
    AES DUMP of ENTITY OUT:
    
    depth=1 class code= 7 instance = 0
    
    CVR returned:
    %MCC-S-RESPONSE, Success with response reply
    
                   Component Identification = "DECmcc"
                          Component Version = V1.0.0
    FCL PM Arguments before call_function:
    AES DUMP of ENTITY IN:
    
    depth=1 class code= 7 instance = 0
    
    ILV DUMP of INP: in_p is NULL
    ILV DUMP of INQ: in_q is NULL
    ATTRIBUTE PARTITION: 5
    
    *******************************************
    
    FCL PM Arguments on return from call_function:
    ILV DUMP of OUTP:
    
    [  3 ] (
        [  6 ] (
            [  0 ] (
                [  1 ]             01
                [  2 ]             07
                [  3 ]             01
                [  4 ]             05
                [  5 ]             aa 00 04 00 74 12 a0 88 3b 9e 94
    6b 93 00 17 00 0
    1 03 4d 43
                43 01 0e 47 4f 53 54 45 5f 44 49 52 45 43 54 4f 52 00
    00
                )
            )
        )
    AES DUMP of ENTITY OUT:
    
    depth=1 class code= 7 instance = 0
    
    CVR returned:
    %MCC-S-COMMON_EXCEPTIO, Success with common exception reply
    
    MCC>
211.8TOOK::STRUTTColin StruttTue Jul 31 1990 02:4924
    re: .6
.6> So, Colin,  you  are  saying  that  there is no way for MCC to request a DNA
.6> Phase  V  entity  to  return  any of the DNA attribute groups (which are not
.6> partitions  because an attribute may be a member of more than one group)? Or
.6> are  the MCC *partitions* mapped, by the P5 AM to DNA *groups* (which sounds
.6> like it could confuse some FM or PM)?
    No, not true - however, to get at a (MCC) GROUP of attributes (which may
    reside in more than one partition) will require more than one mcc_call.
    Whether the AM is smart enough to get more than one partition's worth
    of attributes in one fell swoop, and hold them in abbeyance, is up to 
    the AM designer.
    
    
.6> It seems  unacceptable,  to  me, that a director has no mechanism to request
.6> that  an entity return all attributes that the entity knows about (including
.6> ones  that the director doesn't know about).  It is unlikely that a director
.6> will always be up to date with the entity implementations.
    What problem(s) do you anticipate this "restriction" will cause?
    As defined, what passes across the MCC interfaces must be defined in
    the MCC dictionary in advance - it is invalid to pass information for
    which there is no dictionary data. (There are ways to 'encode' around
    this apparent restriction, but the rule still stands).
    
    Colin
211.9MARVIN::COBBGraham R. Cobb (Wide Area Comms.), REO2-G/H9, 830-3917Tue Jul 31 1990 12:1328
One of  the  major  advantages of EMA over previous management architectures
(Phase IV in particular) is the easy and quick extensibility.

Even if we were to solve the problem of distributing dictionary updates in a
timely  fashion  (and it doesn't look like it *is* going to be solved in the
near  future  for  MCC  or the NCL implementations) there will always be the
problem that the director, at the network manager's location, is unlikely to
be  up  to  date  on  the extensions implemented by the entity that is being
managed.    Your  scheme  requires  full  management  knowledge.   It  seems
unrealistic,  to me, to expect the manager to upgrade his MCC software every
time  someone on his network upgrades the software for one of the systems he
is managing.

The NCL architecture goes to great lengths to attempt to deal with (at least
displaying)  attributes  that  NCL  has  never heard of but which the entity
returns  unexpectedly.  The scheme MCC seems to have chosen makes the notion
of attribute groups in EMA and CMIP completely unnecessary: by the principle
of  putting  complaxity  in the director, not the agent, the only reason for
putting  attribute  groups  in the agent is an expectation that the director
won't know which attributes go in which groups!

Of course,   I   am   not   suggesting  that  your  mechanism  violates  any
architectures  (except  NCL  but I have long since given up expecting MCC to
replace  NCL) -- it is purely a product decision.  I just think you will get
customer  feedback  to be able to at least display things that aren't in the
dictionary.

Graham
211.10TOOK::STRUTTColin StruttTue Jul 31 1990 22:0117
.9> Even if we were to solve the problem of distributing dictionary updates in a
.9> timely  fashion  (and it doesn't look like it *is* going to be solved in the
.9> near  future  for  MCC  ...
    
    I'm confused. MCC is perfectly able to allow rapid dictionary updates.
    When we first compared MCC and NCL (for VMS) in 1987, that was one of
    the key differences: NCL required parse tables to be re-built and no
    dictionary was shipped, whereas MCC relied on a dictionary which could
    be dstributed as often as needed - we dicussed monthly distribution via
    CDROM or even hourly distribution via satellite as possibilities).
    [BTW this is not an indictment of NCL on VMS - VMS does not *need* to
    have rapid updating of parse tables.]
    
    So why don't you think we can update MCC dictionaries before the
    entity that implements them (and the related access module) ships?
    
    Colin
211.11(V,E,A) -> (*,E,*) is also needed for managing DECtradeTRADE::ASHRAFGone today, here tomorrowWed Aug 01 1990 15:0921
RE: .9 and .10

.9> there will always be the
.9> problem that the director, at the network manager's location, is unlikely to
.9> be  up  to  date  on  the extensions implemented by the entity that is being
.9> managed.    Your  scheme  requires  full  management  knowledge. 

DECtrade has a similar problem!  The home-brewed director recognizes an
entity but doesn't know (and doesn't care) what verb-attribute combinations 
the latter supports.  This directory simply dispatches the command to the 
entity which either returns the response or an exception (one of which 
could be "Command not supported").

To be able to migrate to the DECmcc director, with its "easy and quick 
extensibility", what we need is the exact capability Graham requests in .9,
so that any command can be dispatched to an entity - (V,E,A) can thus take
the form of (*,E,*) - without necessarily having to first define the V's
and the A's first in the dictionary.

Muhammad
211.12there are ways...GOSTE::CALLANDERWed Aug 01 1990 20:0330
    
    Well, one of the options you have is to do something along the lines
    of what the Alarms FM did. The FM needed to be able to support new
    entity classes and attributes as they plugged in, with no prior
    knowledge. To do this they took the approach of using what they
    call an "expression", The expression has a predefined format, but
    does NOT have a predefined set of values. Instead the user enters
    an "expression" in the format of ( <entity> <attribute> <operation>
    <value> <qualifier> ). The predefined format is what allows them
    to parse the input and pass the entity and attribute down to an
    AM for evaluation **and yes I have simplied what they actually do
    so as to be easier to understand.
    
    You could do something similar. There are many options available,
    this is only one.
    
    Remember to do what you want your MM would need to support a function
    for passing the command through to the entity it is managing. (Please
    ignore my choice of command verbage, I am only trying to get the
    idea across) What you are supporting is the ability to:
    
    	MCC> TELL <entity class> <entity instance> DO=<command>
             ^     ^                               ^
             verb  entity                          argument    
    
    With this type of approach you now have a way of getting to new
    commands, or all the commands, supported by your entity without
    having to modify your interface/ms. 
    
    Again this is only one idea, MCC supports many others.
211.13and?MKNME::DANIELEWed Aug 01 1990 20:597
>    With this type of approach you now have a way of getting to new
>    commands, or all the commands, supported by your entity without
>    having to modify your interface/ms. 
 
	I think the point is, what happens when a new command, or the same 
	command, now send back new attributes?

211.14MARVIN::COBBGraham R. Cobb (Wide Area Comms.), REO2-G/H9, 830-3917Thu Aug 02 1990 08:4526
.9> Even if we were to solve the problem of distributing dictionary updates in a
.9> timely  fashion  (and it doesn't look like it *is* going to be solved in the
.9> near  future  for  MCC  ...
    
.11>    I'm confused. MCC is perfectly able to allow rapid dictionary updates.

The "problem"   isn't   technical   --   it   is  process/product/political.
Technically  the MCC dictionary can be distributed as frequently as desired:
the problem is making that happen (and agreeing the desired frequency).

From where  I  am,  I  don't see *any* progress being made on that.  I would
love  to  learn  that  I  am wrong.  In fact I am currently discussing (with
Wally)  the issue of how we get the dictionary updates that will be required
for  Hastings out given your schedules around V1.1 and V2.0.  Of course that
discussion  will  (continue  to) be conducted off-line but the general issue
remains.

Actually, I  don't  consider  this  point  to  be  key to my argument in .9,
anyway.  Even if MCC were to issue a dictionary CD monthly or fortnightly, I
still  believe  there will be a problem in assuming that the network manager
has  put the latest CD up -- he is probably still using the CD from 6 months
ago  and it will take forms in triplicate, counter-signed by the head of the
DP  department  to  get the most recent one brought up ("we can't do that in
case it causes a problem with management of the rest of the network")!!

Graham
211.15Minimal support is better than no support!TOOK::PLOUFFEJerryThu Aug 02 1990 14:4129
  RE: Note 211.14 by MARVIN::COBB "Graham R. Cobb"

  I understand what you are saying, Graham.  This *is* a process, not a 
  technical question.  It just isn't always *practical* to get the updates
  out to the whole world when the agents change.    

  MCC should be as robust as possible, else the management of DECmcc 
  becomes worse than the managment of the network/system/application/etc.!

  On a small network, this point is somewhat moot, but on big networks 
  software installations can be a process nightmare.  Remember, we are not
  selling DECmcc as a centralized network management solution (though it may
  be used this way).  We are claiming that it is a *DISTRIBUTED* management
  solution - i.e., it (or pieces of it) will be installed on many systems.

  At one point in time, a suggestion floated around to allow access modules
  to pass up what they received from the agents directly to the PM.  Some 
  probably already do this today.  Then the PM would interpret the data as 
  best it could.  If no data was found in the dictionary for a particular
  attribute, the PM could use some sort of generic presentation name (e.g.,
  "Unknow attrbute ID: xx = 23456".  What ever happenned to this idea.  

  I realize that this kind of solution needs more work than I've described,
  but it could be furthur developed and minimal support is better that not
  providing any support.

                                                                     - Jerry