[Info-vax] Mailbox driver analysis regarding greater than 65535 messages in mailbox
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Tue Dec 1 13:25:08 EST 2020
On 2020-12-01 17:42:29 +0000, Marc Van Dyck said:
> Hein RMS van den Heuvel submitted this idea :
>> But still they can keep writing and reading peaking above 64K messages
>> only getting a non-success status when the mailbox is empty. Correct?
>> If so, IMHO that behaviour should not be willingly broken. Maybe an
>> alternate success status, but even that could break applications
>> testing for status == SS$_NORMAL.
>>
>
> No. If you look at the test I described in my original copy, you can
> write any number of messages you want, but you can't read them all
> back. The next time that the message count 16 bits field gets back to
> zero, the read operation returns an "end of file" status and the
> messages still remaining in the mailbox become inaccessible. In my
> test, I stored 1.000.000 messages, but could only read back some 16.000
> of them.
>
> I would also agree with the proposal to refuse the creation of a
> mailbox with more than 65535 positions.
Seems there's a bug here, based on the reported behavior.
That count-messages-and-reject fix will work. ADAWI, etc.
So too will fixing the API and simply, well, lying API callers, err,
redefining and documenting that 65535 is now used as "many" in this API
as is common with some other OpenVMS API hackery
For status updates where the latest update is the one that matters,
I'll repeat my earlier reply that using mailboxes is ill-suited. For
status messages and performance counters and ilk, a lossy LIFO is
appropriate, and mailboxes are currently a somewhat-buggy FIFO. UDP and
DTLS are choices for that, SNMP messages, RedFish, etc. Hmmmm, haven't
seen SNMP on the roadmap, and SNMPv2 is somewhere between stale and
insecure, and OpenVMS SNMP is far too mixed up with the morass that is
SMH. But I digress.
Or it's possible here write a mailbox driver that follows the mailbox
model you want, and that implements LIFO. This is a pseudo driver and
lacks hardware and any need for an interrupt context, which reduces the
effort involved for the design and operation and debugging.
Thee's also the OpenVMS Zabbix client around, and a client for Nagios.
This if the remote display already works with SNMP or Zabbix or Nagios
or ilk.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list