home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / os / vms / 22213 < prev    next >
Encoding:
Internet Message Format  |  1993-01-28  |  2.6 KB

  1. Path: sparky!uunet!crdgw1!rpi!usc!sdd.hp.com!saimiri.primate.wisc.edu!ames!decwrl!pa.dec.com!engage.pko.dec.com!nntpd.lkg.dec.com!e2big.mko.dec.com!adserv.enet.dec.com!winalski
  2. From: winalski@adserv.enet.dec.com (Paul S. Winalski)
  3. Newsgroups: comp.os.vms
  4. Subject: Re: Mailbox access
  5. Message-ID: <1993Jan27.234319.15802@e2big.mko.dec.com>
  6. Date: 27 Jan 93 23:43:19 GMT
  7. References: <20303.2b5bb282@ul.ie>
  8. Sender: usenet@e2big.mko.dec.com (Mr. USENET)
  9. Reply-To: winalski@adserv.enet.dec.com (Paul S. Winalski)
  10. Organization: Digital Equipment Corporation, Nashua NH
  11. Lines: 38
  12.  
  13.  
  14. In article <20303.2b5bb282@ul.ie>, 9120092@ul.ie writes:
  15. |>
  16. |>So far I can create mailboxes and pass data
  17. |>to a subprocess of my account but can not do the same to a mailbox in
  18. |>another account. This is primerily caused by VMS which takes a mailboxes
  19. |>name and places the pointer to that device in the PCB. So when a mailbox
  20. |>is created instead of being "My-Mailbox" and being open for group
  21. |>access it is infact "My-PID.My-Mailbox" which tends to throw a spanner
  22. |>in the works for me as I can not get around that protection.
  23. |>I think IO$Write_Attention gets involved some where but I'm not sure.
  24. |>Am I right about the mailbox protection. any suggestions on getting
  25. |>around it?
  26.  
  27. IO$_WRITEATTN doesn't enter into it at all.
  28.  
  29. You haven't told us exactly what fails when you try to run your application
  30. from another user account.  Your analysis above is completely wrong.  There
  31. are no pointers to any devices (let alone mailboxes) in the PCB for a
  32. process.
  33.  
  34. What does happen is that the $CREMBX service creates logical names for
  35. temporary mailboxes in the LNM$TEMPORARY_MAILBOX logical name table.
  36. Normally, LNM$TEMPORARY_MAILBOX is defined to point to LNM$JOB, your process's
  37. job logical name table.  Thus, if you use $CREMBX to create a mailbox and
  38. assign logical name XXX to the mailbox, the XXX logical name is defined in
  39. LNM$JOB, and therefore only visible to your login process and all of its
  40. subprocesses.  If you try to open the mailbox from another process, not in
  41. the same job, using the logical name, it will fail because that process
  42. cannot see the logical name.  One way to get around this is to use the
  43. physical device name for the mailbox rather than the logical name.  You
  44. can find the physical device name by doing a $GETDVI call on the channel that
  45. was returned by $CREMBX, asking for the physical device name.  Then you can
  46. use whatever means you wish to communicate that device name to the other
  47. process (such as defining a group-wide or system-wide logical name, or writing
  48. it to a file that the other process opens and reads, or whatever.
  49.  
  50. --PSW
  51.