SpyderByte.com: OpenVMS.org dcl.OpenVMS.org de.OpenVMS.org fr.OpenVMS.org Tru64.org
   
Home Contribute News, Jobs, Press Releases, etc. Advertise on OpenVMS.org About/Contact Search News Archives
More Links
  • (Part 1)
  • Logical Names (Part 3) >>
  • << Logical Names (Part 1)
  • www.rlgsc.com
  • gezelter@rlgsc.com
  • Printer friendly version
    Share this story

    Navigation
    OpenVMS.org Features
    Hobbyist Registration
    Featured Articles
    VMS Audio Update (archives)
    Golden Eggs
    Need Help
    Forums, Lists & Groups
    Docs, Manuals & Tutorials, etc.
    VMS Beginners
    Documentation
    FAQs/How-to/Journals
    Books
    Developer Resources
    Misc. Resources
    For Hire
    Hardware Vendors
    Training & Education
    Software
    Commercial
    Opensource & Freeware
    Security, Patches, ECOs
    Security Advisories
    Patches/Updates
    Alpahaserver firmware
    Older Alpahaserver firmware

    Forums
    HPSC: OpenVMS
    Hobbyist Forums
    Usenet: comp.os.vms
    StackOverflow (VMS)

    OpenVMS.org Info
    OpenVMS.org Staff:
    Ken Farmer Follow OpenVMS.Org on Twitter
    Ian Miller Follow Ian Miller on Twitter
    Susan Skonetski Follow MamaVMS on Twitter
    About
    Search
    Archives
    Mobile
    Submit News
    Advertising

    Google Ads


    OpenVMS.org Polls
    What brand of smartphone do you use?
    iPhone
    Android-based
    Blackberry
    Other
    Don't have smartphone

    [ results | polls ]



    Latest News

    The OpenVMS Consultant: Logical Names (Part 2)
    Posted by Robert Gezelter on Thursday October 17 2002 @ 05:16PM EDT
    The previous column (Part 1) examined the basics of the OpenVMS logical name facility. This installment focusses on how applications use and misuse logical names.

    Logical names are used implicitly via Record Management Services (RMS); or explicitly via the $TRNLNM system service and associated run time library routines. Logical names can appear almost anyplace that a filename can appear; thus logical names potentially affect the opening of every file on an OpenVMS system. Iterative translation can be combined with differing user contexts to greatly leverage the logical name facility.

    Logical names provide great leverage, but like most leverage, can be mis-used, leading to poor performance and wasted resources. While today's systems often have greater resources than yesterday's, workloads are often correspondingly higher, supporting larger numbers of users with more complex and numerous tasks.

    Once, at a client site, I was asked to look at a "login performance" problem. What I found was several inter-related problems, some of which I will write about in later columns. However, the "login performance" was rather straightforward, and it also gave rise to an inefficient logical name structure.

    The first problem was that each user, when logging in, executed a common procedure which defined upwards of 40 logical names. Virtually every user created the exact same logical names, bit for bit. In this particular case, the involved users covered several different UIC groups, and the particular application was the primary use of the system (if the user community had been more diverse, I would have designed a slightly more sophisticated solution, with the same effect, but not imposing the overhead of more logical names on each user).

    Thus, each user's login command file referenced a common command file which contained a multitude of

    $ ASSIGN string logical-name

    commands, each one for a different logical name used by the application. A lexical function was used in some cases to generate the component of the logical name equivalence string which referred to the directory path.

    The first step could have been creating Group logical name tables (created and populated at system startup), however, the nature of the definitions permitted a different approach.

    I first modified the common procedure so that the names would be placed in the System logical name table, and invoked the command file at system startup; thus eliminating the need for the names to be defined for each user at the time of login. This noticeably shortened the time required to login. However, we were not finished. In actuality, not all of the groups were using the exact same logical names. Some groups were using parallel logical name structures, as shown below (one name used as an example without sacrificing generality):

    CommunityName Equivalence String
    Group ADATABASEDISK$DUCK1:[PRODUCTION.DATA]DATABASE.FIL
    Group BDATABASEDISK$DUCK1:[TESTING.DATA]DATABASE.FIL
    Group CDATABASEDISK$DUCK1:[SUBPRODUCTION.DATA]DATABASE.FIL

    Taking advantage of iterative translation, we were able to normalize all groups to use the common logical name:

    CommunityName Equivalence String
    Groups A, B, CDATABASEDATADISK:[DATA]DATABASE.FIL

    with different definitions for DATADISK contained in each Group logical name table.

    CommunityNameEquivalence String
    Group ADATADISKDISK$DUCK1:[PRODUCTION.]
    Group BDATADISKDISK$DUCK1:[TESTING.]
    Group CDATADISKDISK$DUCK1:[SUBPRODUCTION.]

    Thus, the multitude of translations actually depended on the particulars of the value of the DATADISK logical name contained in the Group logical name table. Thus when using the directory command, the results illustrate the efects of the iterative translations:

    Community Actual File Name
    for Group A DISK$DUCK1:[PRODUCTION.][DATA]DATABASE.FIL
    for Group B DISK$DUCK1:[TESTING.][DATA]DATABASE.FIL
    for Group C DISK$DUCK1:[SUBPRODUCTION.][DATA]DATABASE.FIL

    For a single logical name (DATABASE), the results are purely semantic. The payoff is the elimination of the duplicative names on a per-user basis, and the resulting conversion to a per incarnation of the application basis. As the late Senator Dirksen is reported to have said, “A million here, a million there, sooner or later it is real money”.

    If you have been counting, there are now a single copy of the application specific logical names, plus a single logical name in each Group logical name table to identify the particular directory tree, a substantial savings in memory space, login overhead, spawn overhead, and complexity.

    This is actually one of the simpler uses of the logical name facility. In our next installment, we will look at a more complex example.


    Next article in this series by Robert Gezelter:
    Logical Names (Part 3) >>

    Previous article in this series by Robert Gezelter:
    << Logical Names (Part 1)


    Biography:

    Robert Gezelter is the Founding Principal of the consulting firm that bears his name (www.rlgsc.com).

    The consulting practice emphasizes in-depth technical expertise in computer architectures, operating systems, networks, security, APIs, and related matters. Mr. Gezelter has worked with OpenVMS since the initial release of VAX/VMS in 1978.

    His clients have ranged from small businesses to the Fortune 10 locally, nationally, and internationally.

    He can be reached at gezelter@rlgsc.com.


    < Books: "Linux and OpenVMS Interoperability" now available | Siliconvalley.internet.com: Sun Slashing 11% of Jobs >



    ADVERTISEMENT:
    Mailing Lists
    OpenVMS.org News:
    (Low volume newsletter)
    Subscribe | Unsubscribe
    OpenVMS.org Alerts:
    (Security & Patch Alerts)
    Subscribe | Unsubscribe

    Sponsors






    Virtual VAX & Alpha

    HoffmanLabs.com

    The OpenVMS Consultant


    Interested in Advertising?
    Contact us...


    Friends of VMS
    HP usergroups...
    Encompasserve/DECUServe
    OpenVMS Hobbyist
    Itanium Solutions Alliance
    Aaron's OpenVMS blog
    Alexey Chupahin
    Arne Vajhoej
    DECUS Library Compendium
    DJE Systems
    Dr OpenVMS blog
    Francesco Gennai
    Eight-Cubed blog
    Free OpenVMS Software
    Galen Tackett
    HoffmanLabs
    Hunter Goatley
    Ian Miller
    Influential Software
    Itanium Solutions Alliance
    Jeff Cameron
    John Fisher
    Syltrem VMS Page (French)
    Kednos PL/I
    Keith Parris
    Migration Specialties
    Noetic Systems, Inc
    OpenOffice Port to VMS
    OpenVMSPlanet.org
    OpenVMS Rocks
    Preatorian.net
    Retrobeep
    Steven M. Schweda
    SYSMGR Blog
    TMESIS Software
    Trends That Matter
    VAMP (VMS, Apache, MySQL, PHP)
    VIM
    Vaxination
    Visio Cafe (HP Templates)
    VMSresource.org.uk
    XDelta
    Free VMS Accounts:
    Deathrow Public OpenVMS Cluster
    DECUServe/EISNER
    Polarhome
    Fafner
    Poetry Hacklab
    Marway.Org


    In Memory: John Wisniewski
    In Memory:Terry Shannon


    Add, edit, report problems here...

    OpenVMS Ring

    OpenVMS Webring

    Prev

    Random

    Next

    Prev5

    List

    Next5



    Home About & Contact Search Archive Mobile Submit News Sponsorship & Advertising
         Copyright © 2001-2012 SCORSE, LLC
    OpenVMS® is a trademark of HP
    All other trademarks are those of their owners.
        
      SpyderByte.com ;Technical Portals