[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

815.0. "Can Register, Can't Deregister, Erase, Rename" by HLDG00::GOES () Wed Mar 20 1991 11:25

Here we are with a new problem.

With our home made Access Module we can register entities but we can't
Deregister, Erase or Rename them.

In our development of the Access Module we followed the rules for
minimal support for the Registration FM as described in the MM Programming
Manual:

We included the Reference attributes and the DIRECTORY, REGISTER, DEREGISTER,
RENAME, ERASE, SET and SHOW directives in our MSL.

We also provided the Access Module with an entry point for SHOW all IDENT.
This entry point takes the entity instance from the call_args by using the
MCC-routine MCC_AES_GET and returns the instance as identifier by 'putting' the
resulting descriptor in the ILV list by using the MCC_ILV_PUT routine.

An Example of an MCC-session that shows our problems:


$ Manage /Enterprise

MCC> Register WRIGHT 3

WRIGHT 3 
AT 20-MAR-1991 13:51:41 

Registration Successful



MCC> Register WRIGHT 3

WRIGHT 3 
AT 20-MAR-1991 13:52:12 

The requested operation cannot be completed
                  Entity Existence Info = Entity Exists



MCC> Deregister WRIGHT 3

WRIGHT 3 
AT 20-MAR-1991 13:52:30 

The requested operation cannot be completed
                      MCC Routine Error = %MCC-E-INV_DNSIDENT, specified 
                                          identifier attribute is not valid for 
                                          instance lookup


The response with the second Register directive shows (as far as we can see)
that the entity is registered in DNS.
This seems to be true when we activate dns$control: The object 1 is indeed
present in the root directory (.).

Another aspect is that a Directory directive shows the registered WRIGHT
instances and a SHOW WRIGHT * ALL REF shows the reference information of the
registered WRIGHT instances. But we still can not Deregister instances in a way
other than dns$control delete obj .1 (and that's not what we want).

Can somebody out there give us some information about these problem.

Explanation of the error message ?
Source of our problem ?
Eventually a solution to our problem ?


For completeness we supply a part of our MCC_WRIGHT_SHOW__IDENT.c routine:

(Our identifier part consists of 1 identifier attribute:
        Port Name Point Number of type Simple Name)


{
  unsigned long int         status = MCC_S_NORMAL;
  struct MCC_R_ILV_CONTEXT  ctx;
  unsigned long             mode = MCC_K_ILV_LIST_VALUE; /* mode of operation */
  unsigned long int         aes_level = 0;
  unsigned long int         type;
  MCC_T_IDCode              class;
  MCC_T_Descriptor          entity_descriptor;
  char                      entity_instance[255];


      /* determine identifier from arguments passed in mcc_call */
      entity_descriptor.mcc_w_maxstrlen = 254;
      entity_descriptor.mcc_b_dtype = DSC_K_DTYPE_T;
      entity_descriptor.mcc_b_class = DSC_K_CLASS_S;
      entity_descriptor.mcc_a_pointer = &entity_instance[0];
      entity_descriptor.mcc_w_curlen = 0;
      entity_descriptor.mcc_b_flags = 0;
      entity_descriptor.mcc_b_ver = 1;
      entity_descriptor.mcc_a_link = MCC_K_NULL_PTR;
      entity_descriptor.mcc_l_id = MCC_K_CLASS_WRIGHT;
      entity_descriptor.mcc_l_dt = MCC_K_DT_SIMPLE_NAME;

      status = mcc_aes_get( &p_callargs->p_in_entity,
                            &aes_level,
                            &class,
                            &entity_descriptor,
                            &type);

      /* create a descriptor for the reply out */
      if(status == MCC_S_NORMAL)
        status = mcc_desframe_create_descriptor(
                 &(*p_context)->alloc_mem_list, /*  Memory Allocation List  */ 
                 &(*p_context)->ReplyArg_p1,    /*  Descriptor Pointer      */ 
                                                /*  From Context block      */
                 &128,                          /*  Length                  */ 
                 &MCC_K_DT_ILV,                 /*  Datatype                */ 
                 0,                             /*  Initial Value           */ 
                 0,                             /*  Id                      */ 
                 0);                            /*  VMS datatype            */ 

      /* Begin building Reply-Output */
      if(status == MCC_S_NORMAL)
        status = mcc_ilv_put_param_begin(&ctx, (*p_context)->ReplyArg_p1);

      /* Begin Constructor, Id = Reply-Argument Id Value */
      if(status == MCC_S_NORMAL)
        status = mcc_ilv_put_cons_begin(&ctx, &MCC_K_ARG_SHOW_VALUES,
                                        MCC_K_NULL_PTR, MCC_K_NULL_PTR, &mode);

      /* List-Put the Component Id into the Reply-Output */
      if(status == MCC_S_NORMAL && 
                         *p_callargs->p_attribute == MCC_K_ATTR_PRT_IDENTIFIER)
    	status = mcc_ilv_put(&ctx, &entity_descriptor, &0);


      etcetera , etcetera .......


T.RTitleUserPersonal
Name
DateLines
815.1Look at 585.* and 653.*SIEVAX::TMJThe meek won't want itWed Mar 20 1991 12:550