[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::pwv50ift

Title:Kit: Note 4229; Please use NOTED::PWDOSWIN5 for V4.x server
Notice:Kit: Note 4229; Please use NOTED::PWDOSWIN5 for V4.x server
Moderator:CPEEDY::KENNEDY
Created:Fri Dec 18 1992
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:4319
Total number of notes:18478

4142.0. "Why Just PATHWORKS?" by VMSNET::P_NUNEZ () Mon Feb 03 1997 15:55

    I've got a customer pushing back on the problem whereby a circular
    logical name is preventing pwrk$lmsrv from running (you get the error
    in the log about it giving up after attempting 50 times to translate
    the logical).  For example,
    
    $ define/system/exec dsa500 dsa500:
    
    They'd like a detailed explanation as to why it seems to only break
    PATHWORKS.  
    
    My contact indicates his VMS administrator says they have other
    applications which _require_ the use of this logical name.  This makes
    no sense to me - remove the logical and you still have a valid
    reference for DSA500:.  But while he's gone off to get a
    detailed/specific example from this VMS administrator on how removing
    this logical will break something (anything).  I offered to try
    to get more information on why this condition is such a problem for
    PATHWORKS.
    
    Can someone comment?
    
    thanks,
    
    Paul
T.RTitleUserPersonal
Name
DateLines
4142.1alternative(?)CPEEDY::KENNEDYSteve KennedyMon Feb 03 1997 16:3264
    .0> They'd like a detailed explanation as to why it seems to only break
    .0> PATHWORKS.  
    
    This type of definition doesn't only break PATHWORKS ... seems file
    access to DCL trying to use the logical name doesn't work either:
    
    mgoblu> sh dev dka300
    
    Device                  Device           Error    Volume         Free  Trans Mnt
     Name                   Status           Count     Label        Blocks Count Cnt
    MGOBLU$DKA300:          Mounted              0  WORK1          1089561    73   1
    mgoblu> define/system/exec/nolog DKA300 DKA300:
    mgoblu> dli dka300:[000000]*.*
    %DIRECT-E-OPENIN, error opening DKA300:[000000]*.* as input
    -RMS-F-LNE, logical name translation error
    mgoblu> deassign/system/exec DKA300
    mgoblu> dli dka300:[000000]*.*
    
    Directory DKA300:[000000]
    
    BACKUP.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BADBLK.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BADLOG.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BITMAP.SYS;1                       107/108     20-SEP-1996 10:11:05.45
    CONTIN.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    CORIMG.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    INDEXF.SYS;1                     24426/24426   20-SEP-1996 10:11:05.45
    SECURITY.SYS;1                       1/6       20-SEP-1996 10:11:05.45
    VOLSET.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    
    Total of 9 files, 24534/24540 blocks.
    
    =-=-=-=-=-=-=-=-=-=-=-=-=
    
    Is that really the format needed? I'm not sure how PATHWORKS would
    handle it, but could they use the following definition format instead:
    
        $ define/system/exec dsa500 _dsa500:
    
    The above at least doesn't break DCL:
    
    mgoblu> define/system/exec/nolog DKA300 _DKA300:
    mgoblu> dli dka300:[000000]*.*
    
    Directory _DKA300:[000000]
    
    BACKUP.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BADBLK.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BADLOG.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    BITMAP.SYS;1                       107/108     20-SEP-1996 10:11:05.45
    CONTIN.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    CORIMG.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    INDEXF.SYS;1                     24426/24426   20-SEP-1996 10:11:05.45
    SECURITY.SYS;1                       1/6       20-SEP-1996 10:11:05.45
    VOLSET.SYS;1                         0/0       20-SEP-1996 10:11:05.45
    
    Total of 9 files, 24534/24540 blocks.
    
    =-=-=-=-=-=-=-=-=-=-=-=-=
    
    Perhaps PATHWORKS would also handle it correctly in this case? (sorry,
    I don't have time to test it out).
    
    \steve
4142.2Learn somethin' new every day...VMSNET::P_NUNEZTue Feb 04 1997 10:1125
    
    Appreciate the time you spent on this, Steve...it was the wake up call
    I needed ;0)
    
    I've been doing testing all morning and am seeing some very interesting
    results.  I'll be back when I've completed my testing, but for now
    suffice to say you CAN make it work using /TRANSLATION=CONCEALED 
    
    AS LONG AS THE PHYSICAL DEVICE REFERENCE INCLUDES THE LEADING UNDERSCORE 
    
    These work (sorta, more on that later ;o):
    
    	$ DEFINE/SYSTEM/EXEC/TRANS=CONCEALED DKA300 _DKA300:
    	$ DEFINE/SYSTEM/EXEC		     DKA300 _DKA300:
    
    These don't work:
    
    	$ DEFINE/SYSTEM/EXEC/TRANS=CONCEALED DKA300 DKA300:
    	$ DEFINE/SYSTEM/EXEC		     DKA300 DKA300:
    
    
    But I see problems reported in lmsrv log and event log on certain
    operations, despite those operations completing successfully. 
    
    Paul
4142.3CPEEDY::FLEURYTue Feb 04 1997 11:2621
    RE: .2
    
    Paul,
    
    I suspect a few things are happening behind the scenes here.
    
    1) The _ character has some history from early versions of VMS where it
    	was used as the indicator of a device.  Many applications searched
    	the result of a logical name translation for this character as an
    	indicator of when to stop translating.
    
    2) The /TRANS=CONCEALED has no meaning here.  Perhaps /TRANS=TERM might
    	work as this would prevent further iterations of translation.
    
    3) The failure is due to the detection by the SYS$TRNLNM service of the
    	circular reference.  Any "modern" application which uses the TRNLMN
    	service rather than the obsolete TRNLOG service would probably see
    	the same problem.  Older applications which use the TRNLOG jacket
    	"hide" the problem via the jacket.
    
    Dan
4142.4Official Support Statement?VMSNET::P_NUNEZTue Feb 04 1997 11:508
    
    Based on Dan's .3 reply, I guess I gotta ask if we support using the
    circular definition when the _ character is used?  If we do, it
    deserves at least a QAR for some minor problems I've run into thus far.  
    If not, I'll stop here and be done with this subject (hopefully once
    and for all)...
    
    Paul
4142.5Circuar logical definitions are not allowedDUNKLE::MCDERMOTTChris McDermott - Software Janitorial ServicesTue Feb 04 1997 11:592
That being said, $DEFINE FOO _FOO is not a circular definition.  The underscore
(_) indicates that the name translations should not proceed any further.
4142.6No Circular=Supported?VMSNET::P_NUNEZTue Feb 04 1997 12:237
    
    Then if using the _ negates a circular definition, we shouldn't have
    problems with it, eh?  
    
    Just want to be clear on what's allowed...
    
    Paul
4142.7Back 2 steps, ahead 1VMSNET::P_NUNEZTue Feb 04 1997 14:1919
    
    Ok, time to back track a bit.  I think I see where the customer came up
    with the statement "Why does it seem to only affect PATHWORKS?".
    
    The key, as Dan alluded to, is using /TRANSLATION_ATTRIBUTE=TERMINAL
    instead of /TRANSLATION_ATTRIBUTE=CONCEALED
    
    VMS ($ DIR command) has no problems when the logical is defined using
    the former, yet PATHWORKS (pwrk$lmsrv) blows up on startup because it
    can't translate the logical name PWRK$PRINT. 
    
    With that, can engineering provide an answer to the customer's question?
    
    Also need a response regarding support for using the underscore to
    avoid a circular logical name definition...
    
    Paul
    
    
4142.8Lets start overDUNKLE::MCDERMOTTChris McDermott - Software Janitorial ServicesWed Feb 05 1997 15:4919
I'm no longer sure what the question is.


If the question is:

>They'd like a detailed explanation as to why it seems to only break
>PATHWORKS.  

As demonstrated, circularly defined logicals break more than PATHWORKS.


If not:

What exactly is the logical name the customer is having a problem with
(PWRK$PRINT?) and exactly how is it defined?  To determine this please do
a SHOW LOGICAL/FULL on the offender.

Thanks,
Chris
4142.9VMSNET::P_NUNEZThu Feb 06 1997 10:0559
    Chris,
    
    The logical is circular but defined with /trans=terminal which means
    don't attempt to translate past this iteration.  With /trans=terminal,
    you CAN use the logical in DCL commands w/o problem.  But even with the
    logical defined /trans=terminal, PATHWORKS (pwrk$lmsrv) aborts during 
    startup (see errors from pwrk$lmsrv log below).  It's easily
    reproducible - find the disk where pwrk$commonroot is stored and define
    a logical by the same name as the device:
    
    	$ define/system/exec/trans=term dev dev:
    
    Paul
    
    4-FEB-1997 12:42:56.47 0000056C:001E11C0 PFSResolveRootName: unable to
    translate logical after 50 attempts!
    PPS_jdb_open: Directory for PWRK$PRINT: does not exist
    4-FEB-1997 12:42:56.63 0000056C:001E11C0 PPS Initialization failure:
    Cannot read job database!
    4-FEB-1997 12:42:56.63 0000056C:001E11C0 PANIC: aborting from module
    LM$BLD_ROOT:[LM.SERVER.UTIL.SRC]PPS_UTIL.C;1 at line 105!
    %SYSTEM-F-ABORT, abort
    %TRACE-F-TRACEBACK, symbolic stack dump follows
    module name     routine name                     line      rel PC   abs PC
    
    PPS_UTIL        PPS_init                        33712     00000077 00040D7F
    MAIN            fsp1$main                       58195     00000298 000357D8
                                                              0011AE85 0011AE85
    MTS$MAIN        main                             2972     0000001B 0003481F
    
    
       ================= EVENT #67 ==================
    
    Event Time:   4-FEB-1997 12:42:56.62       Node:  SWEETY
    Process Id:   0000056C
    Event:        Initialization error
    Event Source: Print Services (PPS)
    Event Class:  Error
    
          Text:   Cannot read job database
    
    
       ================= EVENT #68 ==================
    
    Event Time:   4-FEB-1997 12:44:04.85       Node:  SWEETY
    Process Id:   00000563
    Event:        Unexpected System Error Encountered
    Event Source: LAN Manager Utility
    Event Class:  Error
    
          Status:   %SYSTEM-F-ABORT, abort
          Text:     PWRK$LMSRV process terminated
    
    
    We've always told customers you can't define a logical this way; up
    until now they haven't pushed back.  So I need to either explain why it
    kills PATHWORKS (but is otherwise useable) or IPMT it so it gets fixed.
    
    Paul
4142.10CPEEDY::FLEURYThu Feb 06 1997 10:4131
    RE: .-1
    
    Paul,
    
    After examining the code, I think I can explain this a bit...
    
    1) The Pathworks code does not make use of the recursive aspects of
    	logical name translation provided by OpenVMS.  This is why the
    	/TRANS=TERMINAL has no effect.
    
    2) The "_" character is stripped off.
    
    3) The translations are done within a loop checking for a translation
    	failing or the number of translations exceeding a maximum.
    
    4) Defining the circular translation as it is, results in Pathworks
    	continually attempting to translate DEV as the logical name.
    
    5) Since DEV translates to DEV, the process goes on until the count is
    	exceeded.
    
    To answer the as yet un asked question...  No this can not easily be
    changed.  The easiest way to "fix" this is to use the define shown
    below:
    
    	DEFINE dev _DEV:
    
    Using the "_" should resolve this because of other code in this same
    area which will detect the "_" and do the right thing.
    
    Dan