[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

5571.0. "Duplicate Ident problem with Local Namespace" by EVTIS9::ROGGEBAND (While my guitar gently weeps) Tue Sep 07 1993 05:48

    Hello,
    
    Context: 	PNM200 V1.3 on Ultrix
    		Local Namespace
    		Developer's toolkit
    		Customer developped AM which talks to a proxy agent
    
    Problem:
    
    In MSL, we have a secondary identifer which is used to identify the
    proxy agent we want to talk to. When we modelled the object, we
    specified a unique object identifier as a primary ident, and we model the
    agent's name (datatype: Latin1 string) as an identifier attribute, but
    with DNS_IDENT = NOT_USED so as to (theoretically) allow duplicates, as
    several objects will be accessed through the same agent. This was done
    so as to have the "real" objects as global entities on the map. The
    agent's name is passed as an argument of the REGISTER directive, and
    the REGISTER entry point stores it in the local namespace using the
    mcc_dns_write_attribute_data routine.
    
    When we register two objects of the same class, with different primary
    idents, but with the same agent name, our code (register entry point +
    show all ident entry point) runs ok, but the registration fails with a
    DUPLICATE IDENTIFIER error message.
    
    We guess that it's the agent's name which is stored in the local
    namespace, despite the "NOT_USED" clause... Is this a bug?
    
    As a workaround, I suggested to the customer that we move the agent's
    name to the Characteristics partition. He will try this out, but I
    don't find this satisfactory. 
    
    Has anyone else used the DNS_IDENT=NOT_USED clause and experienced
    problems with it?
    
    Regards,
    
    Philippe.
T.RTitleUserPersonal
Name
DateLines
5571.1Known behaviorTAEC::LAVILLATTue Sep 07 1993 09:0360
     Philippe,

     A few answers, hope this helps...
    
>    
>    In MSL, we have a secondary identifer which is used to identify the
>    proxy agent we want to talk to. When we modelled the object, we
>    specified a unique object identifier as a primary ident, and we model the
>    agent's name (datatype: Latin1 string) as an identifier attribute, but
>    with DNS_IDENT = NOT_USED so as to (theoretically) allow duplicates, as
>    several objects will be accessed through the same agent. This was done
>    so as to have the "real" objects as global entities on the map. The
>    agent's name is passed as an argument of the REGISTER directive, and
>    the REGISTER entry point stores it in the local namespace using the
>    mcc_dns_write_attribute_data routine.
>    
     It seems that your agent name is more a characteristic attribute than
     an identifier. Do you plan to identify an object via its agent name ?


>    When we register two objects of the same class, with different primary
>    idents, but with the same agent name, our code (register entry point +
>    show all ident entry point) runs ok, but the registration fails with a
>    DUPLICATE IDENTIFIER error message.
>    
>    We guess that it's the agent's name which is stored in the local
>    namespace, despite the "NOT_USED" clause... Is this a bug?
>    

     Bug or feature ?

>    As a workaround, I suggested to the customer that we move the agent's
>    name to the Characteristics partition. He will try this out, but I
>    don't find this satisfactory. 
>    

     I do not see any inconvenient for this. Do you plan to use dns
     routines calls to retrieve remotely the agent name ?

>    Has anyone else used the DNS_IDENT=NOT_USED clause and experienced
>    problems with it?
>    
     Yes. We had the same problem.

     In fact we had this problem twice : the first time we *had* to use the
     identifier partition since we wanted to allow remote access for our 
     objects.
     This was for the Trouble Ticket Context object. We have implemented a
     patch consisting in building a unique identifier by concatenation of the
     object name and the node name (node name being the equivalent here of your
     agent name) so we have : "<nodename>::<object_name>" which is unique.

     The second time, we realized that in fact what was needed was a 
     characteristic attribute.

     Regards.

     Pierre.

5571.2EVTIS9::ROGGEBANDUnpluggedTue Sep 07 1993 11:168
    Thanks Pierre,
    
    Moving the attribute to the char partition worked, so the customer is
    (fairly) happy.
    
    Amicalement,
    
    Philippe