BEA MessageQ for OpenVMS Release Notes for Version 4.0A

BEA MessageQ for OpenVMS
Release Notes for
Version 4.0A


Previous | Contents

1.2.5 AVAIL/UNAVAIL Messages Now Work Over Networks With Cross Group Routing

Prior to this release, cross group AVAIL/UNAVAIL messages only worked for adjacent groups that were directly linked to the subscribing group. In Version 4.0A , a process can register to receive AVAIL/UNAVAIL messages containing queue state information for queues that are on remote groups that have routing table entries and are not directly linked to the group of the subscribing process.

Note that the SBS Server must be enabled in order for the message queuing group to provide AVAIL services services, this includes routing groups. AVAIL and SBS services can only support routing if the routing groups have the SBS Server enabled.

1.2.6 Self-Describing Messaging (SDM)

Self-describing messaging is a new form of MessageQ messaging that provides automatic data marshaling between platforms that have different data formats. SDM provides an API for building messages that carry both data content and description. The internal message format is opaque to user applications. Fields are inserted as TAG/VALUE pairs into an SDM message buffer using the SDM API, and then extracted by the receiver in a similar fashion.

The SDM API consists of the following new functions:

For information on how to use SDM, refer to the BEA MessageQ Programmer's Guide .

1.2.7 Support for Large Messages

MessageQ can now send and receive messages of up to 4MB using buffer-style and handle-style messaging. For information on how to send and receive messages larger than 32K, refer to the BEA MessageQ Programmer's Guide .

1.2.8 Changes to The Global Buffer Allocation Algorithm

The size of the largest message buffer has been increased from 32,000 to 65,000 bytes. Messages may now span global buffer pool buffers, a feature that was added to support message sizes of up to 4MB. The algorithm that fits a message into a buffer in global memory has been changed so that all pools are searched to find buffers for a given message. This changes the meaning of the return code PAMS:REMQUEFAIL to mean that insufficient global memory buffers were found to contain a particular message request.

1.2.9 Dynamic Binding of Queue Addresses to Local and Global Queue Name

MessageQ Version 4.0A adds a new API function called pams_bind_q. This API function has been added to enable applications to associate a queue address, including temporary queues, with local and global queue names that may be referenced by pams_attach_q and pams_locate_q. See the BEA MessageQ Programmer's Guide for details.

1.2.10 Global Naming

Global naming enables MessageQ applications to refer to message queues in remote groups by name without having to define the name in each referring group's initialization file. With MessageQ V4.0A, global name lookups have been moved out of the process's context and into a Naming Agent (NA) Server. The Naming Agent Server can be configured to use a large distributed namespace such as DNS, or can be set up to use a MessageQ namespace based on flat configuration files.

If DNS is chosen, it need only be installed on the network nodes where the Naming Agent is located, reducing the licensing and configuration requirements associated with the namespace.

If a flat file namespace is chosen, it can reside on a system where files may be shared either via VAX cluster sharing or NFS. Multiple Naming Agents may share these files.


Note:

A %NAM section has been added to DMQ$INIT.TXT to specify access to a Naming Agent and a backup Naming Agent. In addition, a new field, DEFAULT_NAMESPACE_PATH has been added to the %PROFILE section.

See the BEA MessageQ Installation and Configuration Guide for OpenVMS for details on configuring the MessageQ Naming Agent.

1.2.11 Changes to MessageQ Application Programming Interface (API) Functions

The following MessageQ API functions have been changed for Version 4.0A . Refer to the BEA MessageQ Programmer's Guide for complete reference descriptions of these new and changed programming functions.

1.2.11.0.1 PAMS_ATTACH_Q and PAMS_LOCATE_Q

These routines have changed to allow look up of global queue references. As a result, the first null argument has been replaced with a timeout argument so that the time allotted for this function to complete can be controlled. The data type for this argument has changed from char * to int32 * which should not affect the running of existing applications.

Depending upon the programming language and compiler you are using, you may receive warning or error messages. To eliminate these warnings or error messages during compilation or runtime, update your applications to use the correct data type for this argument and rebuild your application.

Beginning with Version 4.0A , the settings to the name_space_list argument have been changed as follows.

Table 1-1 name_space_list settings forpams_attach_qandpams_locate_q
Obsolete New
PSEL_TBL_DNS_CACHE PSEL_TBL_BUS
PSEL_TBL_DNS_LOW PSEL_TBL_BUS_LOW
PSEL_TBL_DNS_MED PSEL_TBL_BUS_MED
PSEL_TBL_DNS_HIGH PSEL_TBL_BUS_HIGH

The previous name_space_list settings are obsolete but are still supported for this release.

The maximum queue name length has been increased from 31 to 255 characters and names are now case sensitive.


Note:

This can impact your existing applications. Alias names can be set up in the %GNT section of the DMQ$INIT.TXT file to match all usages that your application's need. So "Freds_Queue" and "FREDS_QUEUE" can both refer to the same queue.


1.2.11.0.2 PAMS_LOCATE_Q Can be Called Prior to Attach

With this release, pams_locate_q can be called prior to attaching to the MessageQ Bus. The pams_locate_q routine will cause an attachment to the bus but will not assign a queue which means that the process must either complete the attachment with pams_attach_q at later time or call pams_exit to detach from MessageQ.

1.2.11.0.3 Changes to The Messaging Routines to Enable SDM Encoded Messages

The pams_get_msg(a,w) routines have extended the meaning of the len_data argument to allow a new setting of PSYM_MSG_HANDLE and the pams_put_msg routine's meaning of msg_size. When this argument is set to PSYM_MSG_HANDLE it indicates that the message buffer contains a message handle and not a buffer. Message handles are used to send SDM messages. Please see the BEA MessageQ Programmer's Guide for details on SDM messaging.

1.2.11.0.4 PAMS_PUT_MSG Eliminates The Restriction of an MRQ as a Response Queue

The pams_put_msg function has been enhanced to allow multireader queues (MRQs) to be specified as response queues when a WF_xxx delivery mode is used.

1.2.12 Enhancements to Message Recovery Services

Message Recovery Services on MessageQ for OpenVMS systems offer significant performance improvements over Version 3.2 in journal file creation (i.e. DQFs and SAFs). This change significantly reduces the chance of a message recovery stream having to wait for a journal file to be created.

Journaling file management has been enhanced in support of large messages. If a message spans multiple chunks that cannot all fit into the current journal file then the file will be extended to hold the entire message. This applies DQF, SAF, PCJ, & DLJ journal files.

1.2.13 Automatic Synchronized Cluster Group Failover

Support has been added to allow automatic synchronized cluster group failover. The logical DMQ$GROUP_SYNCHRONIZE with the default of YES has been added to the COM section of DMQ$SET_SERVER_LOGICALS.COM. Setting this logical to "NO" will require that failover be managed by the system manager.

This new feature allows for a Primary group and up to two Secondary groups. The Primary group will startup normally posting a message in the EVL log indicating that this group is the primary group. The Secondary groups will only start the EVL and COM Servers, posting a message in the EVL log which indicates that this group is waiting to become the primary.

Secondary groups can perform local messaging while they are waiting to become the primary group. However, only the primary group is allowed to do cross group messaging.

When the primary goes down the Secondary group will gain the lock and start any necessary servers (i.e. LD, MRS, SBS, NA, etc) now becoming the primary. When the original primary group comes back up it will become a secondary group.

The name of the cluster lock used to control automatic synchronized failover is DMQ$PRIMARY_GRP_bbbb_ggggg.

1.2.14 Distribution of Documentation Online

The online documentation for MessageQ for OpenVMS consists of the BEA MessageQ Introduction to Message Queuing , the BEA MessageQ Programmer's Guide , the BEA MessageQ Installation and Configuration Guide for OpenVMS , and these release notes available in HTML format. These books replace the standard OpenVMS help file found in prior MessageQ kits. You can read MessageQ Online Documentation with a World Wide Web browser. Two browsers, Mosaic, and Netscape are available on the OpenVMS Internet Products Suite CD that ships with along with OpenVMS.

1.2.15 Runtime Loading of PAMScript Symbols

The PAMScript Facility has been enhanced to allow the run-time loading of script symbols rather than building them into the group specific RTL DMQ$PSSRTL. This change results in the simplification of system management, elimination of a group specific RTL, and utilization of the group namespace for queue name lookups.

1.2.16 Start and Stop Commands for Queues

MessageQ Version 4.0A adds features for starting and stopping queues using the DMQ$MGR_UTILITY program. This feature allows a system manager to externally control the queuing activity in one or more queues on a running system.

1.2.17 Start and Stop Commands for Client Library Services (CLS)

MessageQ Version 4.0A adds features for starting and stopping CLS using the DMQ$MGR_UTILITY program. This feature allows a system manager to externally control the Client Library Services on a running system.

1.2.18 Added Support For Process Software Corporation (PSC) TCPware

In this release, the MessageQ Link Drivers and Client Library Services supports PSC TCPware TCP/IP network software. See BEA MessageQ Installation and Configuration Guide for OpenVMS for details on how to select this support. The minimum version of PSC TCPware supported is V5.0-4.

1.2.19 Changes to Group Initialization File

The following changes have been made to the group initialization file, DMQ$INIT.TXT:

MessageQ Version 4.0A provides a command procedure called DMQ$CVT.COM that converts a Version 3.2 group initialization file into a Version 4.0A group initialization file. Refer to BEA MessageQ Installation and Configuration Guide for OpenVMS for complete information on how to configure MessageQ and how to convert existing configuration files.


Note:

Refer to Section 3.1.1 for a information on a known problem with the DMQ$CVT.COM utility.

1.2.20 Graceful group shutdown

MessageQ Version 4.0A supports graceful group shutdown. During a graceful shutdown MessageQ waits until all queues have been drained before stopping the group.

A new parameter, "stop_fast", has been added to the DMQ$SHUTDOWN.COM procedure to support graceful group shutdown. Setting this parameter to NO will enable graceful shutdown. This parameter is optional with a default of YES.

$DMQ$EXE:DMQ$SHUTDOWN bus_id group_id [rtl_deinstall] [stop_fast] 

1.2.21 Queue names are now NULL terminated

Queue names are no longer padded with blanks. Instead they are NULL terminated.

1.2.22 MessageQ Client for OpenVMS support

The MessageQ Client is now supported on OpenVMS and is automatically included in the MessageQ base kit installation. However, the MessageQ Client for OpenVMS may be installed independently of the MessageQ Server for OpenVMS kit.

The MessageQ Client is a light-weight implementation of the MessageQ Application Programming Interface that utilitizes a MessageQ Server to perform the queueing operations.

1.2.22.1 Using the OpenVMS MessageQ Client with the Server kit installed

The OpenVMS MessageQ Client users can easily co-exist with those using the standard MessageQ Server installation however careful attention must be paid to keeping the DMQ$LNM_TBL logical name tables separated. If, for example, you are using the standard MessageQ and want to switch to an application that has been linked with the MessageQ client, the recommended way is to logoff your current process, then login again and obtain the client logical names using DMQ$CL_SET_LNM_TABLE. An alternate method is to use "@DMQ$SET_LNM_TABLE bus group UNSET" to remove the standard logical names from your process before executing DMQ$CL_SET_LNM_TABLE. Please refer to the OpenVMS MessageQ Client Guide in the section called post-installation tasks, for additional information on this subject.

1.2.23 PAMS V2.5 compatible DECnet object is no longer supported

The PAMS V2.5 compatible DECnet object is not supported in this release of MessageQ for OpenVMS. MessageQ groups must switch to using the default DMQ DECnet objects.

The PAMSV25_MODE parameter has been removed from the V4.0A group initialization file.

1.2.24 Client Library Server no longer supports same-client reconnect

In previous version the CLS supported same-client reconnect to permanent queues. This allowed a client to attach multiple times to the same queue without receiving the PAMS:DECLARED error status. This capability has been removed from the CLS because it was non-standard behavior.

The primary impact of this change will be on Visual Basic developers who run their application in design mode, attach to a permanent queue,and then stop the application without detaching. They will receive PAMS:DECLARED the next time they run the application.

We recommend that Visual Basic developers always perform a pams_exit from the Form_Load event before calling any other MessageQ API functions. This action will terminate any previously open connection and allow the pams_attach_q to succeed.

1.2.25 MessageQ for OpenVMS has been tested to be fully Year 2000 compliant

BEA MessageQ Version V4.0A has been fully tested to be Year 2000 compliant on the shipping versions of Unix, NT and OpenVMS.

1.2.26 CUSTOMIZE command procedure updated to ask before purging files

The CUSTOMIZE command procedure has been updated to prompt before purging. Previously, the CUSTOMIZE common procedure automatically purged the modified files without asking. It is recommended that modified configuration files not be purged until after they have been tested.


Chapter 2
Corrections to Known Problems

The corrections described in this chapter include all of the software modifications, corrections, and updates that have been made to MessageQ for OpenVMS since the original V3.2-00 kit.

2.1 Message Recovery Services (MRS)

This section describes corrections to the Message Recovery Services for Version 4.0A .

2.1.1 Recoverable Messaging Intermittently Stops to Older MessageQ Versions

MessageQ for OpenVMS V2.x uses state notification and a "pull" protocol to drive recoverable messaging to adjacent nodes. This protocol can be fragile if control messages or state notification events are lost due to insufficient queuing resources, causing recoverable messaging to stop. While messaging usually starts after a link transition, in some cases a group must be restarted to cause messages to flow properly. Support has been added to allow deadlock detection and restart for stopped message streams that are using the older protocol.

2.1.2 Corrections to Target Presentation Quota And Journal File Cleanup

This version of MessageQ for OpenVMS incorporates a change to the way the MRS Server calculates the Target Presentation Quota. First, this change allows the quota to be calculated based on the specified pool quota control, specifically:

Secondly, this change calculates the byte quota according to the RCV_MSG_QUOTA_METHOD setting in the PROFILE section of the MessageQ group initialization file. Prior to this release, only the "MIN" style was used.

Another MRS change facilitates faster startup of the MRS Server when large numbers of queues with DQFs exist which may have empty journals within a DQF file set. A new logical name, DMQ$MRS_CLEANUP_ON_CLOSE, has been added to request that the MRS Server perform the file cleanup on an explicit DQF close request.

When this logical is set to "YES" the MRS server will do file cleanup (delete the journal file if it is empty) on an explicit close request from the user. This request could be from the disable ALL journaling command or from the DQF or SAF set CLOSE request. The MRS section of the DMQ$SET_SERVER_LOGICALS.COM procedure in [DMQ$V40.USER.TEMPLATE] has been updated to allow the setting of this logical name. Valid settings are YES and NO.

2.1.3 Interoperability Problems with MessageQ for OpenVMS V2.X Systems

Corrected two MRS problems associated with the transfer of recoverable messages from a MessageQ for OpenVMS V2.X system that uses the older V1.0 MRS protocol, as follows: