The following delivery modes: AK_ACK, WF_ACK, AK_CONF, and WF_CONF, may
only be confirmed by the receiving process. A process that is not the
receiving process may not issue a pams_confirm_msg request for
messages with these delivery modes.
3.1.17 P_ENTRY.H include file path usage for sys/types.h with the VAXC compiler
Using the VAXC compiler, the following error will be generated by applications using the P_ENTRY include file:
#include <sys/types.h> %CC-E-OPENIN, error opening //sys/types as input #include <sys/types.h> -RMS-F-SYN, file specification syntax error At line number 69 in P_ENTRY.H; #include <sys/types.h> %CC-F-FILENOTFOUND, Include file could not be opened. At line number 69 in P_ENTRY.H;
The workaround for this problem is to define the "sys" logical name to point to SYS$LIBRARY as shown below:
$DEFINE SYS SYS$LIBRARY
The following list of delivery mode and UMA combinations are not supported on OpenVMS MessageQ for Version 4.0A .
PCJ journaling requires that the GROUP_MAX_MESSAGE_SIZE be set to at
least 144 bytes larger than the message size to be journaled. For
example, to write a 70000 byte message to a PCJ file the
GROUP_MAX_MESSAGE_SIZE in the group initialization file must be set to
a minimum of 70144.
3.1.20 Restriction on dynamic updating of Message Byte Quotas
Dynamically changing a queues' Pool Quota Control from NONE to either BYTE or ALL on an attached queue with pending messages will not work as expected. This is because MessageQ is not monitoring the byte quotas on the pending messages when the quota control is set to NONE. Enabling byte quota controls will work, however, the pending messages are not included in the byte quota totals which determine when quotas have been exceeded.
It is recommended that the queues be drained before switching from NONE
to either BYTE or ALL to prevent this problem from ocurring.
3.1.21 Problem with x_putbig.c examples program
The x_putbig.c example program fails on Alpha platforms. The x_putbig.c example program may be used on Alpha after making the following modifications to the code before compiling.
in ExamplePut(), add static msg_area[MAX_MESSAGE_SIZE]; in the put loop, use: for (i = 0; i < 10; i++ ) { memset(msg_area,0,MAX_MESSAGE_SIZE); memcpy(msg_area,MessageList[i],strlen(MessageList[i])); dmq_status = pams_put_msg(msg_area, . . .
DMQ$MRQ_TEST.C and DMQ$QMENU.C will not link on Alpha platforms without making the following modifications to BUILD_EXAMPLES.COM:
$ link dmq$mrq_test,dmq$lib:msg/inc=(pams_copyright),dmq$lib:dmq/opt $ link dmq$qmenu,dmq$lib:msg/inc=(pams_copyright),dmq$lib:dmq/opt
The x_*.c modules provided in the [DMQ$V40.EXAMPLES] directory are supported and up-to-date. The x_*.c examples reflect the current supported API.
The following example programs are obsolete and are no longer supported:
DMQ$DISK:[DMQ$V40.EXAMPLES.MRS] JRN_CONTROL.C SRC.C SINK.C DMQ$DISK:[DMQ$V40.EXAMPLES.SBS] AVAILMSGDEF.H AVAIL_EXAMPLE.C BRDCST_EXAMPLE.C SBSMSGDEF.H SBS_EXAMPLE.C DMQ$DISK:[DMQ$V40.EXAMPLES.UCBS] CNTRLC.C MBX.C MBXRCV.C MBXSND.C TTSND.C DMQ$DISK:[DMQ$V40.EXAMPLES] COBOL_RECEIVER.COB COBOL_SENDER.COB PAMSAMPLE_C.C PAMSSLEEP.C PUT_WF_REPLY.C SENDER.C SIMPLE_CLIENT.C SIMPLE_SERVER.C WATCHDOG.C WATCH_SERVERS.C PRECOMPILED_SAMPLE.PAS SIMPLE_CLIENT.FOR SIMPLE_SERVER.FOR SIMPLE_CLIENT.ADA SIMPLE_SERVER.ADA PAMS_TASK_PKG.ADA PAMS_TASK_PKG_.ADA PAMS_TASK_SENDER.ADA PAMS_TASK_TESTER.ADA
Note:
Up-to-date (non-obsolete) objects for the MRS examples have been built into the MRS.OLB and LNK files are provided for these tools in the DMQ$EXE area.
An up-to-date DMQ$SBS_EXAMPLE image is delivered with the kit in DMQ$EXE.
This chapter contains corrections to errors and ommissions in the
documentation that ships with MessageQ for OpenVMS Version 4.0A .
4.1 Corrections to the Installation and Configuration Guide for OpenVMS
4.1.1 Addition to the "Running the CUSTOMIZE command procedure" section
It is recommended that when using the CUSTOMIZE procedure the previous
versions of the files should not be purged until the new configuration
files have been tested. Note, the default is to purge.
4.1.2 Correction to "Modifiable Parameters in the Group Initialization File" Table
The SECURITY_ENABLED parameter is listed as having no runtime
restriction. This is incorrect. No change may be made to the security
field unless the queue is empty and it has no attached processes.
4.2 Corrections to the Programmer's Guide
4.2.1 Correction to LINKMGT_REQ/LINKMGT_RESP "Message Data Fields" Table
The reference to PSYM_LINKMGT_ALL_LINKS as a valid "group_number" value
in the "Message Data Fields" table is incorrect. The correct symbol
value for indicating all links is PSYM_LINKMGT_ALL_GROUPS.
4.2.2 Correction to SBS_SEQUENCE_GAP Message Description
The SBS_SEQUENCE_GAP structure field definitions defined in Message Data Structure Table are not correct.
The following is a corrected table.
Fields | Data Type | Script Format | Description |
---|---|---|---|
num_msgs_missing | int32 | DL | Number of lost messages in sequence gap. |
sender_group | int32 | DL | Group number of sending SBS server. |
mot | int32 | DL | MOT address in which broadcast stream gap occurred. |
channel | int32 | DL | Source address of MOT; either SBS Server or Ethernet channel. |
If the AVAIL distribution queue is a temporary queue, then an automatic
AVAIL deregistration will occur when the temporary queue detaches. This
behavior is only supported on MessageQ for OpenVMS.
4.2.4 Default Selection Filter Always Reads from the Timer Queue First
When using the default selection filter in the pams_get_msg,
pams_get_msgw, or pams_get_msga API, the
documentation states that the behavior is to read the next pending
message from the message queue in FIFO order. The actual behavior is to
read from the Timer Queue (TQ) before reading from any other queue
regardless of priority.
4.2.5 Reusing handles after augmenting messages
In Chapter 1, Reusing Handles after augmenting a message, and
in Chapter 8, pams_set_msg_position, the documentation states
that the flag (PSDM_ANY|PSDM_LAST) sets position at the end of the
message which implies that a handle may be reused without being
re-encoded. This is not correct. MessageQ requires the use of two
separate messages so the user should decode the message and then
re-encode it, adding whatever fields are needed.
4.2.6 Addition to the SBS_STATUS_REQ Message description
The SBS_STATUS_REQ message will only return information on MOTs defined
with the RP/ETH COMM_SERVICE. MOTs that are not defined under the
RP/ETH COMM_SERVICE will not be returned in the SBS_STATUS_RESP message.
4.2.7 Correction to PAMS_EXIT API description
When an application calls pams_exit, all pending messages are purged from the queue. The only exception to this are multireader queues which are never purged by pams_detach_q or pams_exit. To flush multireader queues use the DMQ$MGR_UTILITY Flush Queue Option.
On OpenVMS the logical DMQ$EXIT_PURGE can be set to NO to prevent messages from being flushed from the queue on pams_exit.