Browse Prior Art Database

Low cost message grouping for local private and shared queues

IP.com Disclosure Number: IPCOM000015233D
Original Publication Date: 2001-Dec-16
Included in the Prior Art Database: 2003-Jun-20
Document File: 6 page(s) / 38K

Publishing Venue

IBM

Abstract

OVERVIEW Disclosed is a set of techniques for low cost implementation of message grouping within a message broker product such as IBM's MQSeries* for OS/390*. This implementation imposes a few acceptable restrictions on the more general implementation already available on messaging products such as MQSeries products on distributed platforms eg AIX*) restrictions. These enable the implementation to achieve acceptable performance with low development cost. While the implementation described herein exploits some changes to the internals of the message broker product, some of the techniques could be used to build an acceptable alternative implementation on top of an unchanged message broker product.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 22% of the total text.

Page 1 of 6

Low cost message grouping for local private and shared queues

OVERVIEW
Disclosed is a set of techniques for low cost implementation of
message grouping within a message broker product such as IBM's
MQSeries* for OS/390*. This implementation imposes a few
acceptable restrictions on the more general implementation
already available on messaging products such as MQSeries products
on distributed platforms ( eg AIX*) restrictions. These enable
the implementation to achieve acceptable performance with low
development cost. While the implementation described herein
exploits some changes to the internals of the message broker
product, some of the techniques could be used to build an
acceptable alternative implementation on top of an unchanged
message broker product.

MESSAGE GROUPING

     The key functions of message grouping as implemented by
messaging products such as IBM's MQSeries products on distributed
platforms (i.e. platforms other than OS/390) are:

Each group message is associated with a 24-byte GroupId and a

4-byte message sequence number (MsgSeqNumber). The first
message in a group has MsgSeqNumber 1, the second message in
that group has MsgSeqNumber 2, and so on. The last message in
the group contains a last in group flag. This control
information is all held in a header (eg the MQMDE) which is
appended to the start of the message data. The MQMDE is
considered as message data by versions of the message broker
product which do not support message grouping.

Non-group messages have an implied MQMDE specifying a GroupId

of 0, an MsgSeqNumber of 1, and the flag indicating last in
group.

Applications normally write group messages in logical order.


1.


2.


3.

In this mode the message broker automatically generates a
unique GroupId for the group and allocates successive
MsgSeqNumber values to successive messages until it sees a
message flagged by the application as last in group.

To handle error situations applications can also write group

messages in physical order. In this mode the application sets
the GroupId and MsgSeqNumber values for each message, which
the application can write in any order. An application would
normally use physical order to re-establish its group position
after an application or message broker failure.

Applications normally retrieve group messages in logical

order. This initially locates a first message in some group
(i.e. a message with MsgSeqNumber 1) using the normal
sequencing rules of first message in first message out within
message priority, optionally qualified by message selectors


4.


5.

1

Page 2 of 6

such as its MsgId or CorrelId or GroupId value. Once the first
message of a group has been retrieved, successive requests to
retrieve messages in logical order return messages in that
group in their MsgSeqNumber order, irrespective of their
priority or the order in which they were originally written to
the queue, until a message flagged as last in group is
encountered. Thus different groups of messages are retrieved
in the order of their first in gro...