BEA MessageQ for OpenVMS Release Notes for Version 4.0A

BEA MessageQ for OpenVMS
Release Notes for
Version 4.0A


Previous | Contents

3.1.16 CONF and ACK delivery modes may only be confirmed by the receiving process

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 

3.1.18 Unsupported delivery mode and undeliverable message action (UMA) combinations

The following list of delivery mode and UMA combinations are not supported on OpenVMS MessageQ for Version 4.0A .

3.1.19 PCJ large message journaling restriction

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,    
       . 
       . 
       . 
 

3.1.22 Problem with linking examples program

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 

3.1.23 Example programs

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.



Chapter 4
Corrections To Documentation

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.

4.2.3 Automatic AVAIL Deregistration of Temporary Queues on OpenVMS Only

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.

Previous | Contents