![]() |
Software > OpenVMS Systems > Ask the Wizard ![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: Hello Mr. Wizard, When issuing the command "show dev/full mba389" the following information is displayed: Device MBA389:, device type local memory mailbox, is online, record-oriented device, shareable, mailbox device. Error count 0 Operations completed 184 Owner process "" Owner UIC [TFI_EXEC] Owner process ID 00000000 Dev Prot S:RWPL,O:RWPL,G:RWPL,W:RWPL Reference count 7 Default buffer size 1536 My question deals with the "Reference Count". Is there a way that I can find out what processes are connected to this mailbox? As noted above, there are 7 channels connected to this mailbox. What process(es) owns or are connected to these channels. If at all possible, could you provide sample "C" code or references that show what I'm trying to achieve (I'm a mailbox trying to find out who's connected to me before I receive any messages). Thank you, Terry D. Frierson The Answer is : The usual approach when working with mailboxes does not involve determining who is connected (as a mailbox is not a connection-oriented device), but who sent the message. The PID of the sender of the mailbox message is included in the IOSB given to the reader to facilitate this. The OpenVMS Wizard strongly recommends using pairs of mailboxes for each process, with only one process reading from any particular mailbox and zero or more processes writing to it. This approach simplifies the application design and the debugging that can be required. You can clearly determine if there are any read or write channels open, using the READERCHECK or WRITERCHECK itemcodes. It is conceivable (but rather difficult) to use security alarms and ACLs and the security auditing mailbox to detect any accesses to the mailbox. For new code running on recent OpenVMS releases, the Intra-Cluster Communications Services will be of interest. As for locating the I/O channels that are currently attached to the mailbox, this entails some familiarity with kernel-mode structures. The simplest approach involves the SDA command: SHOW PROCESS/CHANNEL/INDEX=* from 0 to MAXPROCESSCNT or (depending on the OpenVMS version) the SDA command: SHOW PROCESS ALL/CHANNEL There is no user-mode interface to this function.
|