<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SYS$PUTMSG logical name in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427951#M16734</link>
    <description>&lt;!--!*#--&gt;John, you said:&lt;BR /&gt;&lt;BR /&gt;"It's not really possible to document the specific behaviours of all potential stray logical names."&lt;BR /&gt;&lt;BR /&gt;That's a perfect description - it was a "stray" logical name that was left around when it should have been deleted by whatever created it.&lt;BR /&gt;&lt;BR /&gt;"Beware of creating any logical name containing "$", as it's reserved to OpenVMS use."&lt;BR /&gt;&lt;BR /&gt;Duh! But, I DIDN'T CREATE THE LOGICAL NAME!  VMS did!  That's the point I would like to address.&lt;BR /&gt;&lt;BR /&gt;"There doesn't need to be an explicit reference to a logical name, as file name processing can implicitly translate a logical name. I'm not sure if your experience with SYS$PUTMSG falls into this category."&lt;BR /&gt;&lt;BR /&gt;How could it?? SYS$PUTMSG is not the name of any file - it is the name of a VMS system service.&lt;BR /&gt;&lt;BR /&gt;I'm sorry that in my OP I brought up the well-known issue of "logical name definition silently dropping the mode in the absence of SYSNAM".  I didn't want to start another discussion about that.&lt;BR /&gt;&lt;BR /&gt;I mentioned it because here is my best guess about how this dangerous SYS$PUTMSG logical name got left in the SYSTEM table.  Whatever part of VMS defined it (trace back handler?) thought SYSNAM was enabled when it wasn't; it tried to create it in /EXEC mode; so when VMS tried to deassign the logical it didn't find the /USER mode logical.&lt;BR /&gt;&lt;BR /&gt;The obvious problem with my theory is why on earth would this logical be created in the system table?  I was not playing any games with logical table names or directories.&lt;BR /&gt;&lt;BR /&gt;I was really hoping someone could take a quick look at the source and see what tables and modes this SYS$PUTMSG logical is supposed to be created in, and what is supposed to delete it.&lt;BR /&gt;</description>
    <pubDate>Wed, 27 May 2009 23:11:56 GMT</pubDate>
    <dc:creator>Jess Goodman</dc:creator>
    <dc:date>2009-05-27T23:11:56Z</dc:date>
    <item>
      <title>SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427945#M16728</link>
      <description>&lt;!--!*#--&gt;A weird thing happened to my interactive process.  It stopped displaying any VMS messages.&lt;BR /&gt;&lt;BR /&gt;SYS$OUTPUT and SYS$ERROR were defined normally, and F$ENVIRONMENT("MESSAGE") showed everything enabled.&lt;BR /&gt;&lt;BR /&gt;I dimly remembered this happening once before and eventually having to log out and back in.  This time I decided to look a little deeper.  I found this logical name:&lt;BR /&gt;&lt;BR /&gt;$ SHOW LOGICAL/FULL SYS$PUTMSG&lt;BR /&gt;"SYS$PUTMSG" [user] = ".........." (LNM$SYSTEM_TABLE)&lt;BR /&gt;&lt;BR /&gt;The name translated to 10 binary bytes:&lt;BR /&gt;0000 00000000 0000011B&lt;BR /&gt;&lt;BR /&gt;$ DEASSIGN/SYSTEM/USER SYS$PUTMSG&lt;BR /&gt;fixed my process.  My questions are:&lt;BR /&gt;&lt;BR /&gt;1) This logical is an apparent undocumented VMS "feature".  I found no reference to it in the usual places, but I did find one old reference to it that pointed to VMS source module TRACE.MAR.  Can someone who has access to source listings check this out and let us know how this logical is used and what are its meaningful values?&lt;BR /&gt;&lt;BR /&gt;2) The fact that the logical name was left defined that way for my process is an apparent VMS bug (V7.3-2).  I have not been able to reproduce it, but just before I noticed the problem I was testing a program that used SYS$CRELNM to define various /EXECUTIVE logicals (not SYS$PUTMSG of course).  I turned SYSNAM privilege on and off for my process to check how the program would handle it.  Without SYSNAM, calling $CRELNM in user-mode always creates /USER mode logical names with no error.  So could this be related to the bug?&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 15:38:29 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427945#M16728</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2009-05-27T15:38:29Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427946#M16729</link>
      <description>Oh, I just remembered.  The SYS$PUTMSG logical was (as shown) defined in the SYSTEM table and so it affected not just my process, but all processes on the system - new and old.  So logging out and back in would not have helped this time, and I was close to having to reboot the system to fix the issue.  So this was pretty serious VMS bug.</description>
      <pubDate>Wed, 27 May 2009 15:44:03 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427946#M16729</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2009-05-27T15:44:03Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427947#M16730</link>
      <description>From memory...&lt;BR /&gt;&lt;BR /&gt;I tend to use lib$set_logical in preference to sys$crelnm for most cases, and it is most definitely necessary to have the correct privileges enabled when you're working with logical names; the requested access modes can get silently demoted even within the use of the DCL commands.&lt;BR /&gt;&lt;BR /&gt;The behavior of sys$putmsg in the area of Process Permanent Files (PPFs) is briefly discussed in an obscure corner of the OpenVMS manuals IIRC, but the topic and the specifics are discussed in more detail in the IDSM.  That prefix is the I/O channel.&lt;BR /&gt;&lt;BR /&gt;That user-mode logical names in shared tables don't get rundown as you might expect has been longstanding behavior.&lt;BR /&gt;&lt;BR /&gt;Whether or not this is considered a bug or a feature or whether or not (if it's a bug) it'll get fixed is a question for the OpenVMS engineering folks to answer.</description>
      <pubDate>Wed, 27 May 2009 17:33:39 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427947#M16730</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2009-05-27T17:33:39Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427948#M16731</link>
      <description>&lt;!--!*#--&gt;Well LIB$SET_LOGICAL can't handle /EXEC mode, but the program I was testing is, I'm sure, unrelated to the issue.  I mentioned it only to explain why I was toggling SYSNAM on and off, which might have been the trigger for this bug.&lt;BR /&gt;&lt;BR /&gt;And yes, since this SYS$PUTMSG logical was created by VMS in the system table, and left there to affect all processes, it was definitely a bug.</description>
      <pubDate>Wed, 27 May 2009 18:01:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427948#M16731</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2009-05-27T18:01:20Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427949#M16732</link>
      <description>Jess&lt;BR /&gt;&lt;BR /&gt;&amp;gt;This logical is an apparent undocumented VMS &lt;BR /&gt;&amp;gt;"feature". &lt;BR /&gt;&lt;BR /&gt;  It's not really possible to document the specific behaviours of all potential stray logical names. Beware of creating any logical name containing "$", as it's reserved to OpenVMS use. There doesn't need to be an explicit reference to a logical name, as file name processing can implicitly translate a logical name. I'm not sure if your experience with SYS$PUTMSG falls into this category.&lt;BR /&gt;&lt;BR /&gt; But the issue is worse than that. You should also beware of creating any logical name with the same name as any image in SYS$SYSTEM or SYS$SHARE. The classic examples are "DEBUG" and "TRACE". These are fairly obvious logical names to use for application signalling, but if defined, they break debugging and traceback handling.&lt;BR /&gt;&lt;BR /&gt; I've always considered logical name definition silently dropping the mode in the absence of SYSNAM to be a bug. I've had a few goes at getting it fixed, approaching from a few different angles. The answer is always "been that way forever, too late to change it now". Which I consider a cop out, and another example of OpenVMS compatibility fanaticism taken to illogical extremes. At the very least, it should be possible to leave the outcome the same, but issue a warning, (or even informational!) status &amp;amp; message.&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 22:11:41 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427949#M16732</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2009-05-27T22:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427950#M16733</link>
      <description>&amp;gt;That user-mode logical names in shared &lt;BR /&gt;&amp;gt;tables don't get rundown as you might expect &lt;BR /&gt;&amp;gt;has been longstanding behavior.&lt;BR /&gt;&lt;BR /&gt;  And, if you think about it, the only possible choice. Apart from the performance concern of searching all visible logical name tables for user mode logical names at image run down, there's the issue for shared tables. Should a user mode logical name be deleted when ANY process that can see the table does an image rundown? &lt;BR /&gt;&lt;BR /&gt;  That would make user mode logical names unusable in shared tables, as their lifetime would be unpredictable. (though, arguably, the purpose of user mode logical name in the system table is somewhat questionable!)</description>
      <pubDate>Wed, 27 May 2009 22:18:44 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427950#M16733</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2009-05-27T22:18:44Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427951#M16734</link>
      <description>&lt;!--!*#--&gt;John, you said:&lt;BR /&gt;&lt;BR /&gt;"It's not really possible to document the specific behaviours of all potential stray logical names."&lt;BR /&gt;&lt;BR /&gt;That's a perfect description - it was a "stray" logical name that was left around when it should have been deleted by whatever created it.&lt;BR /&gt;&lt;BR /&gt;"Beware of creating any logical name containing "$", as it's reserved to OpenVMS use."&lt;BR /&gt;&lt;BR /&gt;Duh! But, I DIDN'T CREATE THE LOGICAL NAME!  VMS did!  That's the point I would like to address.&lt;BR /&gt;&lt;BR /&gt;"There doesn't need to be an explicit reference to a logical name, as file name processing can implicitly translate a logical name. I'm not sure if your experience with SYS$PUTMSG falls into this category."&lt;BR /&gt;&lt;BR /&gt;How could it?? SYS$PUTMSG is not the name of any file - it is the name of a VMS system service.&lt;BR /&gt;&lt;BR /&gt;I'm sorry that in my OP I brought up the well-known issue of "logical name definition silently dropping the mode in the absence of SYSNAM".  I didn't want to start another discussion about that.&lt;BR /&gt;&lt;BR /&gt;I mentioned it because here is my best guess about how this dangerous SYS$PUTMSG logical name got left in the SYSTEM table.  Whatever part of VMS defined it (trace back handler?) thought SYSNAM was enabled when it wasn't; it tried to create it in /EXEC mode; so when VMS tried to deassign the logical it didn't find the /USER mode logical.&lt;BR /&gt;&lt;BR /&gt;The obvious problem with my theory is why on earth would this logical be created in the system table?  I was not playing any games with logical table names or directories.&lt;BR /&gt;&lt;BR /&gt;I was really hoping someone could take a quick look at the source and see what tables and modes this SYS$PUTMSG logical is supposed to be created in, and what is supposed to delete it.&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 23:11:56 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427951#M16734</guid>
      <dc:creator>Jess Goodman</dc:creator>
      <dc:date>2009-05-27T23:11:56Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427952#M16735</link>
      <description>I was really hoping someone could take a quick look at the source and see what tables and modes this SYS$PUTMSG logical is supposed to be created in, and what is supposed to delete it.&lt;BR /&gt;&lt;BR /&gt;-- &lt;BR /&gt;&lt;BR /&gt;If you have a support contract, I'd open a call with the information you've posted here.&lt;BR /&gt;&lt;BR /&gt;There should be enough information for someone to sort this out.&lt;BR /&gt;&lt;BR /&gt;-- Rob</description>
      <pubDate>Thu, 28 May 2009 00:50:13 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427952#M16735</guid>
      <dc:creator>Robert Brooks_1</dc:creator>
      <dc:date>2009-05-28T00:50:13Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427953#M16736</link>
      <description>I've just searched all .EXEs in SYS$SYSTEM and SYS$LIBRARY and found the following that contain the text string "SYS$PUTMSG".&lt;BR /&gt;&lt;BR /&gt;SYS$COMMON:[SYSEXE]ANALYZSSL.EXE&lt;BR /&gt;SYS$COMMON:[SYSEXE]PCA$ANALYZER.EXE&lt;BR /&gt;SYS$COMMON:[SYSEXE]RAID$CLI_MAIN.EXE&lt;BR /&gt;SYS$COMMON:[SYSEXE]RAID$SERVER_MAIN.EXE&lt;BR /&gt;SYS$COMMON:[SYSEXE]SCA$DECW.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]DBI$SHR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]LSESHR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]NSDS$DDI_RMS_SHR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]NSDS$SHR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]PCA$COLLECTOR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]SCA$SHARE.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]SYS$PUBLIC_VECTORS.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]SYS$SSISHR.EXE&lt;BR /&gt;SYS$COMMON:[SYSLIB]TRACE.EXE&lt;BR /&gt;&lt;BR /&gt;If none of these ring any bells then I wonder if your problem is related to running SYS$CRELNM just prior to noticing this problem.  Were you perhaps running some C code and picked up some old data on the stack?  (Or if you prefer, did you initialise the fields correctly in your routine that called SYS$CRELNM?)&lt;BR /&gt;</description>
      <pubDate>Thu, 28 May 2009 03:01:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427953#M16736</guid>
      <dc:creator>John McL</dc:creator>
      <dc:date>2009-05-28T03:01:30Z</dc:date>
    </item>
    <item>
      <title>Re: SYS$PUTMSG logical name</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427954#M16737</link>
      <description>Here is whtat the source listing for 7.2-1 say about how the SYS$PUTMSG logical is used:&lt;BR /&gt;&lt;BR /&gt;12751 ; TRANSLATE THE LOGICAL NAME SYS$PUTMSG TO SEE IF THE FILE IS ALREADY&lt;BR /&gt;12752 ; OPENED VIA A PREVIOUS CALL.  IF THE LOGICAL NAME EXISTS, ITS TRANSLATION&lt;BR /&gt;12753 ; CONSISTS OF THE ISI'S FOR THE OUTPUT AND ERROR RABS, SO RE-ESTABLISH&lt;BR /&gt;12754 ; THE EXISTING STREAM AND BYPASS THE OPENS.&lt;BR /&gt;12755 ;&lt;BR /&gt;12756 ; $TRNLOG is used rather than $TRNLNM, as it will not signal errors, despite&lt;BR /&gt;12757 ; system service failure mode being enabled ($SETSFM).&lt;BR /&gt;&lt;BR /&gt;I've created mischief at times with the discrepency between $TRNLOG and $TRNLNM.&lt;BR /&gt;12758 ;</description>
      <pubDate>Thu, 28 May 2009 14:48:45 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/sys-putmsg-logical-name/m-p/4427954#M16737</guid>
      <dc:creator>David Jones_21</dc:creator>
      <dc:date>2009-05-28T14:48:45Z</dc:date>
    </item>
  </channel>
</rss>

