| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 4142.1 | alternative(?) | CPEEDY::KENNEDY | Steve Kennedy | Mon Feb 03 1997 16:32 | 64 | 
|  |     .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.2 | Learn somethin' new every day... | VMSNET::P_NUNEZ |  | Tue Feb 04 1997 10:11 | 25 | 
|  |     
    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.3 |  | CPEEDY::FLEURY |  | Tue Feb 04 1997 11:26 | 21 | 
|  |     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.4 | Official Support Statement? | VMSNET::P_NUNEZ |  | Tue Feb 04 1997 11:50 | 8 | 
|  |     
    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.5 | Circuar logical definitions are not allowed | DUNKLE::MCDERMOTT | Chris McDermott - Software Janitorial Services | Tue Feb 04 1997 11:59 | 2 | 
|  | That being said, $DEFINE FOO _FOO is not a circular definition.  The underscore
(_) indicates that the name translations should not proceed any further.
 | 
| 4142.6 | No Circular=Supported? | VMSNET::P_NUNEZ |  | Tue Feb 04 1997 12:23 | 7 | 
|  |     
    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.7 | Back 2 steps, ahead 1 | VMSNET::P_NUNEZ |  | Tue Feb 04 1997 14:19 | 19 | 
|  |     
    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.8 | Lets start over | DUNKLE::MCDERMOTT | Chris McDermott - Software Janitorial Services | Wed Feb 05 1997 15:49 | 19 | 
|  | 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.9 |  | VMSNET::P_NUNEZ |  | Thu Feb 06 1997 10:05 | 59 | 
|  |     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.10 |  | CPEEDY::FLEURY |  | Thu Feb 06 1997 10:41 | 31 | 
|  |     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
 |