[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

278.0. "MCC MIR bugs?" by CLUSTA::YANG () Thu Aug 23 1990 17:55

    A bug?
    
    When I issued a MCC_MIR_CREATE_REPOSITORY call by passing a logical
    name which is a MIR location, then later on I tried to issue a 
    MCC_MIR_CREATE_INSTANCE call to create an instance repository and a
    MCC_MIR_WRITE_ATTR_DATA call to write attributes in the attribute
    repository.
    
    Now, things happened as follows:
    1) if the logical name is not defined, then MCC_MIR_CREATE_INSTANCE
    call will create the logical_name.DAT in the default directory, and
    MCC_MIR_WRITE_ATTR_DATA call will write attributes in the
    logical_name.DAT file without creating another attribute.DAT file.
    Then, I issued a MCC_MIR_READ_INSTANCE_KEY call, I get access
    violation.
    
    2) if the logical is defined, then MCC_MIR_CREATE_INSTANCE call will
    create instance.DAT in the directory pointed to by the logical, and
    MCC_MIR_WRITE_ATTR_DATA call will create the attribute.DAT file and
    write attributes in there. Then, I issued a MCC_MIR_READ_INSTANCE_KEY
    call, everything went smoothly.
    
    I believe MCC MIR got confused when no logical is defined. My API
    should work regardless of the logical being defined or not.
    
    ---------------------------------------------------------------------
    Another problem is the side effect generated by MCC MIR.
    If no instance and attribute .DAT files have been created, then
    trying to read the instance key by a MCC_MIR_READ_INSTANCE_KEY call
    will result in a %MCC_E_NOENTITY error and generate an instance.DAT file.
    It is supposed to have the NOENTITY error because the instance has not
    been created, but generating the instance.DAT file is a side effect, I
    doubt if it is another bug?
    
    Yah-Kong,                                                 
    
    
    
T.RTitleUserPersonal
Name
DateLines
278.1You shouldn't create_repository more than onceTOOK::GUERTINWherever you go, there you are.Thu Aug 23 1990 20:3018
    The mcc_mir_create_repository() routine is designed to be used once to
    effectively "register" your repository with the MIR.  From that point
    on, the repository is known to MIR (saved in the mcc_mir_directory.dat
    and mcc_mir_attribute.dat files).  Presumably, you need to remove it
    when you de-install your MM.  In other words, why remove it?  Just stop
    using it.
    
    The mcc_mir_get_repository() routine is used to return to you your
    repository-ID which is used to access the repository you have
    "registered" with the MIR.
    
    I understand that from a development view-point, it is useful to have
    a delete_repository routine, however from a product viewpoint, it
    shouldn't be needed.  In short, I believe we should have one (we do,
    but it is not documented), for symetry as well as debugging.  Maybe
    for V1.1?
    
    -Matt.
278.2I just call RMSTOOK::GUERTINWherever you go, there you are.Mon Aug 27 1990 18:3714
    Sorry.  Reply .1 was for the wrong note (should have been for note 272).
    
    I am just calling RMS.  So I support what RMS supports.  I pass to RMS
    the "location" as the RMS file-name, and repository-name.DAT as the
    RMS default-name.  RMS should expand the file-name and fill in the
    gaps with repository-name.DAT.
    
    When you specify the location, do you specify it with the colon or
    without?  Is the logical name the same as the repository name?
    
    I will also be trying some combinations to see if I can reproduce what
    you saw.
    
    -Matt.
278.3Is this a clue?CLUSTA::YANGTue Sep 11 1990 16:2713
    Thanks for the answer of Note 272.
    
    The location has colon in it, but not the same as the
    instance-repository-name.
    
    I believe that RMS takes the logical name and translates it because
    if the logical is defined everything goes well. But a clue is that no
    attribute-repository.dat is created if the logical is NOT defined. Is
    that something causing you to bypass the creation of the
    attribute-repository.DAT file?
    
    
    Yah-Kong,
278.4Maybe, I will try itTOOK::GUERTINWherever you go, there you are.Wed Sep 12 1990 17:3318
    
    Yes the colon may be causing the problem.  I tried reproducing the
    problem, but I could not.  However, I tried it without a colon in the
    location.  I will try it again with the colon.  Note, however that
    what you pass in for the location is passed directly to RMS as the
    filename (fab$l_fna field), that is to say, the string is not modified
    in any way.  What you pass in for the repository name gets .DAT appended
    and is passed to RMS as the default file name (fab$l_dns field), so it
    should still work, assuming RMS expands before filling the default
    fields.
    
    
    If the logical is not defined, you should get back either an RMS error
    message, RMS$_DEV (error in device name or inappropriate device type
    for operation), or an MCC error message MCC_S_LOGNOTDEF (logical name
    not defined).
    
    -Matt.
278.5no error if no logicalCLUSTA::YANGThu Sep 13 1990 13:056
    The fact is that if no logical is defined, I do not get any error back.
    And, the logical name (unexpanded name) was used to generate the 
    repository-name.DAT file under the default directory.
    
    Yah-Kong,