[Info-vax] Network mailbox
VAXman- at SendSpamHere.ORG
VAXman- at SendSpamHere.ORG
Fri Oct 28 14:03:56 EDT 2011
In article <j8eq7o$71k$1 at speranza.aioe.org>, Snowshoe <no at spam.please> writes:
>On 10/28/2011 1:34 PM, VAXman- @SendSpamHere.ORG wrote:
>> In article<j8ejh2$js5$1 at speranza.aioe.org>, Snowshoe<no at spam.please> writes:
>>> On 10/28/2011 11:21 AM, VAXman- @SendSpamHere.ORG wrote:
>>>
>>>> Why are you using RMS to read and write the mailbox? The mailbox driver
>>>> has special function modifiers (ie. IO$M_NOW) that can be used with $QIO
>>>> IO$_READVBLK and IO$_WRITEVBLK when the target device is a mailbox. The
>>>> $QIO IO$_READVBLK would normally wait and only complete when there's been
>>>> a message deposited into the mailbox. This you apparently have correct.
>>>>
>>>> I'd lose the $PUT and use IO$_WRITEVBLK|IO$M_NOW. I think you can still
>>>> use the $OPEN but you'll probably want to specify UFO and then, there is
>>>> no need for the $CONNECT. Just issues $QIO IO$_WRITEVBLK|IO$M_NOW to the
>>>> channel returned in the FAB's STV.
>>>>
>>>
>>> I would be more than glad to do that -- if there was a way to do so over
>>> the network.
>>>
>>> Right now there are two processes on one system (an old VAX) that
>>> communicate with each other via Mailboxes. My task is to move one
>>> process to a new system and communicate with the second process's
>>> mailboxes over the network (DECnet). I am creating an additional
>>> process that transfers data from clones of the mailboxes on the new
>>> system over the network to the old system.
>>
>> D'oh. There it is... a node spec in the FNM.
>>
>> So, if you've opened a DECnet connection to a remote mailbox, why are
>> you not using $PUTs and $GETs on the local side? You're using DECnet
>> so you should see record I/O.
>
>I am using $GET and $PUT for the DECnet connection. I suspect I am using
>it incorrectly somehow. The snippet of code reads data from a local
>mailbox and writes it (using $PUT) a remote mailbox at the other end of
>a DECnet link.
That should work.
>Another piece of code gets messages (using $GET) from a remote mailbox
>via DECnet and writes it to a local mailbox.
That too.
I just created a mailbox in DCL with the following on node QUISP::
$ SPAWN/NOLOG/NOSYMBOLS/NOLOGICAL_NAMES/PROCESS=DCLMBX_'F$getjpi("","PID") -
ATTACH/IDENTIFICATION='F$getjpi("","PID")
$ X = F$context("PROCESS",CTX,"PRCNAM","DCLMBX_''F$getjpi("","PID")'","EQL")
$ OPEN/READ/WRITE DCLMBX _MBA'F$getjpi(F$pid(CTX),"TMBU")':
$ STOP DCLMBX_'F$getjpi("","PID")
I then issued a SHOW LOGICAL DCLMBX for the mailbox device name.
On QUAKE:: I issued:
$ OPEN/READ/WRITE REMOTE_MBX QUISP::_MBA5311:
Then I entered:
$ READ REMOTE_MBX MBX_DATA
and the read hangs until I go to QUISP and type:
$ COPY SYS$INPUT DCLMBX
this is a test for for Snowshoe.
As soon as I enter the carriage return, the read on the node QUAKE::
completes and the symbol MBX_DATA contains:
this is a test for for Snowshoe.
--
VAXman- A Bored Certified VMS Kernel Mode Hacker VAXman(at)TMESIS(dot)ORG
All your spirit rack abuses, come to haunt you back by day.
All your Byzantine excuses, given time, given you away.
More information about the Info-vax
mailing list