Introduction and Planning
Introduction and Planning
GC34-5599-04
WebSphere® MQ Integrator
GC34-5599-04
Note!
Before using this information and the product it supports, be sure to read the general information under Appendix C,
“Notices” on page 195.
Contents v
vi WebSphere® MQ Integrator: Introduction and Planning
Figures
1. The broker . . . . . . . . . . . . . 11 11. Diagram showing the relationship between
2. A collective . . . . . . . . . . . . 12 MQSeries Everyplace and WebSphere MQ
3. The Configuration Manager . . . . . . . 13 Integrator . . . . . . . . . . . . . 33
4. Message flow components . . . . . . . 18 12. SRU headquarters and branch hierarchy 42
5. A simple Compute node message flow: 13. Branches and back-end systems . . . . . . 43
MQInput -> Compute -> MQOutput . . . . 21 14. The business flow (simplified) . . . . . . 45
6. A simple Filter node message flow: MQInput 15. Publish/subscribe with a single broker 89
-> Filter -> MQOutputA or MQOutput B. . . 21 16. Example topic tree . . . . . . . . . . 96
7. A simple Database node message flow: 17. Publish/subscribe in a network . . . . . . 99
MQInput -> Database -> MQOutput . . . . 21 18. Inheriting ACLs in a topic tree . . . . . . 104
8. A simple Publication node message flow: 19. Collectives with a broker domain . . . . . 129
MQInput -> Publication . . . . . . . . 21 20. A heterogeneous network . . . . . . . 177
9. Applications connecting to a broker . . . . 28 21. Stream authorities . . . . . . . . . . 179
10. The User Name Server . . . . . . . . . 29
IBM MQSeries, already an important part of the WebSphere software platform for
e-business, will have an even tighter association with WebSphere. MQSeries,
responsible for dynamic integration, will be known as WebSphere MQ, to reflect
the fundamental part that it plays in dynamic e-business.
This book introduces the concepts of the product, and provides the information to
help you plan for a WebSphere MQ Integrator network.
Part 1, “Introduction” on page 1
This part gives you a broad understanding of the MQSeries family of
products, and an introduction to WebSphere MQ Integrator. It also
discusses additional, related offerings from IBM. It provides background
information that can benefit everyone working with WebSphere MQ
Integrator.
Part 2, “Business process planning” on page 47
This part builds on the introduction in Part 1, providing information that
helps your business planners develop the message structure and processing
requirements that support a successful WebSphere MQ Integrator
environment. You can find implementation details for the tasks covered in
this part in WebSphere MQ Integrator Working with Messages, WebSphere MQ
Integrator Using the Control Center and WebSphere MQ Integrator ESQL
Reference.
Part 3, “Application planning” on page 77
This part explores the application aspects of your environment, further
clarifying the introduction in Part 1, and guiding you through the
considerations for application planning and development. You can find
implementation details for the tasks covered in this part in the WebSphere
MQ Integrator Programming Guide.
Part 4, “Systems planning” on page 107
This part provides details of the infrastructure you need, and how you can
configure it, to complement your applications and achieve your business
goals. It provides system administrators with hardware and software
requirements, and the infrastructure required to support your environment.
It also tells you how you can enhance your broker domain by writing
plug-ins for new parsers and message processing nodes. You can find
implementation details for the tasks covered in this part in the WebSphere
MQ Integrator Administration Guide. Implementation details for some of the
tasks can also be found in the WebSphere MQ Integrator for z/OS
Customization and Administration Guide.
Websphere MQ Integrator for z/OS also runs on OS/390® V2R8, V2R9, and V2R10.
All references to z/OS in this book apply also to these releases of OS/390, unless
otherwise stated. Customization and configuration differences between the z/OS
and OS/390 operating systems are transparent to the user.
All new terms introduced in this book are defined in “Glossary of terms and
abbreviations” on page 199. These terms are shown like this at their first use.
| These include:
| v An introduction to the concept of aggregation and the nodes that support
| aggregation.
| v Minor technical and editorial improvements throughout the book.
The usability of the Control Center is also improved in this version of WebSphere
MQ Integrator. See WebSphere MQ Integrator Using the Control Center for full details.
IBM has developed a family of products, based around the messaging transport
layer, that provides not only the fundamental requirements of secure, reliable
information exchange, but also incorporates services and business process support
to help you to make the best use of your investment in systems and applications.
The richness and flexibility of this support enables you to respond to new
opportunities that arise when your business grows and diversifies.
You can use the MQSeries family products to support your business integration
needs:
v MQSeries messaging provides a secure and far-reaching communications
infrastructure.
v WebSphere MQ Integrator and MQSeries Workflow provide a range of services
that allow you to apply intelligence to your business data as it travels through
your network.
WebSphere MQ Integrator
WebSphere MQ Integrator works with MQSeries messaging, extending its basic
connectivity and transport capabilities to provide a powerful message broker
solution driven by business rules. Messages are formed, routed, and transformed
according to the rules defined by an easy-to-use graphical user interface (GUI).
Applications also have much greater flexibility in selecting which messages they
want to receive, because they can specify a topic filter, or a content-based filter, or
both, to control the messages that are made available to them.
MQSeries Workflow
MQSeries Workflow works with MQSeries messaging to add a further dimension
to your business integration by aligning and integrating an organization’s staff
resources, processes, and capabilities with its business strategies. It enables
organizations to accelerate its process flow, optimize costs, eliminate errors and
improve workgroup productivity.
The benefits of WebSphere MQ Integrator can be realized both within and outside
your enterprise:
v Your processes and applications can be integrated by providing message and
data transformations in a single place, the broker. This helps reduce the cost of
application upgrades and modifications.
v You can extend your systems to reach your suppliers and customers, by meeting
their interface requirements within your brokers. This can help you improve the
quality of your interactions, and allow you to respond more quickly to changing
or additional requirements.
You can upgrade your applications, messages, and brokers to take advantage of the
enhancements in WebSphere MQ Integrator Version 2.1. You can also continue to
use your existing applications and messages unchanged, by tailoring your
WebSphere MQ Integrator Version 2.1 system to provide compatible support.
The business processing rules define the processing performed on your messages
by the broker. Each action is performed by a message processing node and the
actions are grouped together to form a message flow. Because each message flow
needs to understand the structure of the messages it processes, the structure of
messages is either defined by message templates, or carried with the message
(XML message).
Applications communicate with the broker to use these services; they can connect
to any queue manager in the MQSeries network to do this. WebSphere MQ
Integrator supports both point-to-point and Publish/Subscribe application
communication models. You can also use MQSeries Everyplace and SCADA
applications with WebSphere MQ Integrator. The User Name Server provides
information about users and groups of users if you want to use topic-based
security in the Publish/Subscribe environment.
Brokers
A broker is a named resource that hosts and controls your business processes,
which you define as message flows. Your applications communicate with the broker
to take advantage of the services provided by the message flows. Applications
send new messages to the message flow, and receive processed messages from the
message flow, using MQSeries queues and connections.
You can install, create, and start any number of brokers within a broker domain.
You can create more than one broker on any one physical system if you choose,
but you must specify a unique queue manager for each broker. However, a single
broker can share a queue manager with the Configuration Manager.
Note: For a broker on WebSphere MQ Integrator for z/OS, the database can be
on DB2 only.
The broker uses an ODBC connection to its database. These broker tables are
also referred to as the broker’s local persistent store. For more information about
supported databases, see Table 4 on page 121.
v A set of fixed-name queues, defined to the queue manager that hosts this broker.
You must identify this queue manager when you create the broker, and it must
exist on the same physical system as the broker. It is created when the broker is
created, unless it already exists.
Broker
Execution group
ODBC
connection
Message flow
Queue manager
When you have created the broker reference, you must deploy the changes to your
broker domain for them to take effect. The deploy action:
v Initiates communications between the Configuration Manager and the broker.
v Initializes the broker so that it is ready to execute message flows. The broker
receives configuration information from the Configuration Manager, and stores it
in its database.
When you have created the broker reference, you can assign message flows (see
“Message flows” on page 18) to the broker’s execution groups, and any message
sets (see “Messages and message sets” on page 22) required by those message
flows to the broker. These changes must also be deployed before they can be
activated. You can deploy these resources individually, or together, but until all
related resources (for example, a broker, a message flow and the message set it
uses) are deployed, you cannot use the message flow on that broker.
You can also connect collectives to other collectives, and to other individual
brokers. If you are connecting one collective to another collective, or to a stand
alone broker, only one broker in each collective must provide the connection.
Messages published to any one broker are propagated to all connected brokers
(whether or not they are in a collective) to which an application has subscribed to
the message’s topic or content.
Broker A Broker B
Queue manager C
Broker C
Figure 2. A collective
This support ensures that existing system management agents, such as those
developed by Tivoli, can be extended to include WebSphere MQ Integrator
resources. You can find information about using the Tivoli interface with
WebSphere MQ Integrator on the product CD. Tivoli support is not available on the
HP-UX or z/OS platforms.
For further details of this support, see the WebSphere MQ Integrator Administration
Guide.
JDBC
connection Configuration
repository
Configuration (shared/deployed
Manager data)
ODBC
connection
Message
Queue repository
manager
Local
configuration Control
data Center
Figure 3 on page 13 illustrates the Control Center and its connection to the
Configuration Manager.
You can install and invoke any number of Control Center instances in the
Windows NT environment (the Control Center is not supported by any other
operating system). The Control Center depends on the MQSeries Client for Java for
its connection with the Configuration Manager. The Control Center can therefore
be installed on the same physical system as the Configuration Manager, or on any
other Windows NT system that can connect to the Configuration Manager.
If you want to make any changes, you must check out (request a locked copy of)
the resource you want to change. This allows updates to the central data to be
coordinated by the Configuration Manager. The Control Center shows you which
resources you currently have checked out. After you have locked a resource, you
have exclusive control over it until you return it to the configuration repository
using check in, or until you relinquish control by unlocking it.
When you have made changes, or have created new resources, you can save a local
copy if you want. You can also check in the resources to save your changes in the
message or configuration repository, if you are authorized to do so. This makes
your changes visible to all other users of the Control Center.
Checking-in an object overwrites the previous version. If you need the ability to
recover earlier versions of objects, you should consider downloading MQSeries
SupportPac IC04 ″MQSeries Integrator V2 - Change Management and naming
standards examples″. This SupportPac provides suggested procedures for version
management and change control of WebSphere MQ Integrator objects. For more
information about the MQSeries product family web site, see “MQSeries
information available on the Internet” on page 208.
When you have decided which message flows and message sets you want to use
in each broker, you can assign them from the Assignment view. Message flows are
assigned to an execution group within a broker. Message sets are assigned to the
broker itself.
Following your assignment of these resources, you must also deploy these changes
through the broker domain. Deployment results in the Configuration Manager
sending messages and information about the changes you have made to the
brokers. You can monitor the success and progress of this step using the Operations
view and the Log view.
For more detailed information about check in and check out, assignment and
deployment, and all the other tasks that the Control Center supports, refer to
WebSphere MQ Integrator Using the Control Center. This book also provides further
description of the user roles and the Control Center’s interactions with the
Configuration Manager.
See the WebSphere MQ Integrator Using the Control Center book and the online help
for further information about these options.
You cannot export message set definitions from the Control Center, or import them
into the Control Center. You must use an WebSphere MQ Integrator command,
mqsiimpexpmsgset, to export and import message set definitions. See Chapter 5,
“Messages” on page 69 for further details about message sets, and refer to the
WebSphere MQ Integrator Administration Guide for details of the import and export
command.
Message flows
You define the processing for your messages as a set of actions, or rules, that are
executed after the receipt of the message by the broker, and before the delivery of
the message to the target applications. Each action, or subset of actions, is
performed by a message processing node. The message processing nodes are grouped
together in a sequence to form a message flow. A particular message flow provides
a particular service that is implemented by the rules that the message processing
nodes contain.
The primitive nodes are described in Chapter 4, “Message flows” on page 49. You
can include these primitive nodes in your message flows to define the processing
that you need for each message. If you need additional or alternative function that
is not provided by the primitives, you can create new node types, using a system
programming interface supplied by WebSphere MQ Integrator. This interface is
described in the WebSphere MQ Integrator Programming Guide.
Message flows can range from very simple, performing just one action on a
message, to complex, providing a number of actions on the message to transform
its format and content.
Output Input
terminal terminal
Input Node Output
node Connection node
Within a message flow, you can define the action to be taken according to the
message template, the message topic, or the data within the message itself.
Alternatively, the identity of the message originator, or the destination to which the
message is sent, might be important. Any combination of one or more of these
attributes, or others, can define the rules by which the messages are processed, and
determine the sequence of nodes you put together to form the message flow.
A message flow can process one message in several ways to deliver a number of
output messages, perhaps with different format and content, to a number of target
Transaction support
You can request that the actions taken within a message flow are assured by the
implementation of XA technology. That is, all actions succeed or are rolled back to
preserve the integrity of your message processing. If the actions taken by your
message flow include updating a database, you must use a DB2, Oracle or Sybase
database to take advantage of this coordination. For more information about
transaction coordination, see “Transaction support” on page 83.
If you do not request coordination, or you are using Microsoft’s SQL Server on
WebSphere MQ Integrator for Windows NT for your external database, WebSphere
MQ Integrator commits or rolls back each action taken by the message flow but
cannot assure that success or failure is reflected by all actions.
The input nodes can be one of the supplied primitives: MQInput, MQeInput, or
SCADAInput. MQInput nodes represent MQSeries queues, which can be unique
to this node, or used to supply messages to multiple nodes. MQeInput nodes
represent MQSeries Everyplace queues. SCADAInput nodes represent Supervisory,
Control, and Data Acquisition input ports (SCADA).
The sequence of nodes in a message flow usually end with one or more output
nodes that put one or more messages to one or more queues that are read by
applications that want to receive messages processed by that message flow.
SCADA message flows end with a Publication node, which knows how to handle
SCADA messages.
Other message flows might simply store the message in a database for later
processing, and not use an output node at all.
Publish/subscribe services
Message flows that incorporate a publication node provide a particular service,
known as a publish/subscribe service. Messages are supplied to the message flow
by publishers (applications that publish messages), and retrieved from the message
flow by subscribers (applications that have registered a subscription with a broker:
the subscription defines their interest in published messages).
You can include an unnamed publication node (one that does not have a specific
subscription point) in your message flow: this is known as the default subscription
point.
From the Assignment view of the Control Center you can drag and drop the
message flows you have created to the execution group in which they are to
execute. Each execution group can host multiple message flows.
Figure 5. A simple Compute node message flow: MQInput -> Compute -> MQOutput
MQOutput A
MQInput Filter
MQOutput B
Figure 6. A simple Filter node message flow: MQInput -> Filter -> MQOutputA or MQOutput B
Figure 7. A simple Database node message flow: MQInput -> Database -> MQOutput
MQInput Publication
In each example, you could use MQeInput or SCADAInput nodes instead of the
MQInput nodes, and MQeOutput nodes instead of the MQOutput nodes. (The
Publication node knows how to handle SCADA messages.) A message flow could
start with an MQInput node, and end with an MQeOutput node or the SCADA
For more information on creating message flows like these, and others, and for
details on the message processing node primitives and how to use them, see
Chapter 4, “Message flows” on page 49.
If you want to know more about creating your own message processing nodes, see
Chapter 11, “Enhancing your broker domain” on page 163.
You can also create messages using the SmartGuide. This provides an easy to use
interface to define simple messages, and allows you to define and arrange the
fields within the message structure.
When you assign and deploy a message set to a broker, the definition of that
message set is sent by the Configuration Manager to the broker in the form of a
message dictionary (illustrated in Figure 1 on page 11). The broker can manage
multiple message sets simultaneously.
The import facility allows continued use of messages defined in C and COBOL
data structures by your existing applications that use those structures. It also
enhances the existing support by giving you the flexibility to examine and modify
the data in these messages using message processing nodes. You can therefore
route and transform these messages using WebSphere MQ Integrator Version 2.1
facilities without having to redefine them.
When you want to use these message formats in the broker, you do not assign and
deploy them through the Control Center, but must ensure that the broker has
access to the database in which the definitions exist.
Self-defining messages
You can create and route messages that are self-defining. These use the XML
standard to provide structure to the message, so that it can be interpreted and
modified.
Multipart messages
Some industry-standard message formats (for example, EDI (EDIFACT and X12)
and S.W.I.F.T.) consist of a number of messages that are logically separate but
which are combined into one large bit stream. These are known as multipart
messages.
Parsing messages
Message template information for predefined messages is usually included in the
message header, so that the message flows recognize the messages when they
receive them. Other messages might not have headers that identify the template,
but you can set up your message flow input nodes to indicate the structure of
messages that are processed by this message flow. If a message is not recognized, it
is treated as an opaque unit, known as a BLOB. A BLOB can be interpreted as a
string of hexadecimal characters, and can therefore be modified or examined in the
message flow by specifying the location of the subset of the string.
When a message is processed by the nodes in a message flow, and its header or
body is referenced by a node, the message bit stream is decoded by a message
parser. WebSphere MQ Integrator supplies several message parsers that parse
known message templates and message headers. These include parsers for all
messages defined to the Control Center or the New Era of Networks Formatter,
and generic XML messages. The complete list is given in “Message parsers” on
page 74 .
If you need to process and parse messages that the supplied parsers do not handle,
you can create new parsers using an WebSphere MQ Integrator system
programming interface. For more details of this interface, see Chapter 11,
“Enhancing your broker domain” on page 163.
Applications that use messages to send or receive data can communicate in several
ways. Most existing messaging middleware applications use point-to-point
communications. Now, using the services supported by WebSphere MQ Integrator
Version 2.1, applications can exploit topic and content-based filtering in a
publish/subscribe communication mode.
Point-to-point applications
WebSphere MQ Integrator continues to support existing point-to-point applications.
Typically, these applications use a request/reply or client/server model, or
broadcast a message to many target applications using distribution lists. Others send
one-way send-and-forget or datagram traffic. You can create message flows to process
these messages, in any of these ways, and assign and deploy them to your brokers.
| Aggregation of messages
| Aggregation is an extension of the request/reply style of application. It combines
| the generation and fan-out of related requests with the fan-in of the corresponding
| replies to produce a single, aggregated, reply message.
| For example, your application might be the arrangement of a business trip. This
| task can be broken down into related subtasks:
| v book a taxi to the airport
| v book a flight
| v reserve a rental car at the destination
| v reserve a hotel room
| The original request to arrange a business trip can be split into four requests, one
| for each of the four subtasks. This is called fan-out.
| Similarly, replies from the four subtasks can be combined and handled as the
| single reply that the business trip has been arranged. This is called fan-in.
| To use aggregation, you must construct two message flows. One message flow, the
| fan-out flow, produces related requests. The second message flow, the fan-in flow,
| collects the replies from those requests and combines them into a single reply
| message.
| Refer to WebSphere MQ Integrator Using the Control Center for more details about
| how to construct a message flow that uses the aggregation nodes.
Publish/subscribe applications
WebSphere MQ Integrator supports the publish/subscribe application
communication model. If you already have applications that are written to the
publish/subscribe model, and use the MQI and AMI, you can probably integrate
these applications into an WebSphere MQ Integrator broker domain without
change.
You can also modify these applications, or write new ones, to take advantage of
the significant enhancements in publish/subscribe processing, particularly for
subscribers.
v With WebSphere MQ Integrator Version 2.1, your subscribing applications can
now select which publications they receive based not only on the topic of the
publication, but also on specific content, or both.
v Subscribers can also use the subscription point of the publication nodes in the
message flows to receive messages that have followed a particular path through
the message flow, and have therefore been processed in a specific way.
Every message, even one used for content-based subscriptions, must have an
associated topic (specified by the publisher or defined by the input node).
A topic is used to categorize the information in the message in some way that is
understood by subscribers. Each topic has a structure, delimited by the forward
slash character (/). The use of structuring creates the topics in a topic tree, in which
each node topic attaches to the branch that contains the previous structure level.
The top level topic is known as the topic root.
A topic can be associated with the publication message by the publisher. You can
also specify a topic on the input node of your message flow: it is set as a property
of the node and is associated with a message when it arrives in the message flow
providing the publish/subscribe service. In the latter case, the topic defined by the
input node is used to determine the publication’s routing, but is not passed on to
the subscriber. Messages without explicit topics are currently treated as local only
and are not sent to other brokers in the topology.
Application A Application B
Broker
Client/server Client/server
connection connection
Queue manager
Local
connection
Application C
All WebSphere MQ Integrator applications, like MQSeries applications, can use all
the supported MQSeries interfaces to put messages to the message flow queues. In
fact, every MQSeries application is a potential WebSphere MQ Integrator
application, and vice versa.
Receiving applications can get the messages put to the output queue or queues of
a message flow when they have been processed by that message flow. The
applications must be connected, either by a client/server connection, or via a local
connection, to the queue manager that owns the queue or queues defined as the
target for their messages. If the message flow provides a publish/subscribe service,
the publication node puts the messages to the queue specified by the subscriber as
its local receiver queue.
To implement topic security, you must install, create, and start one User Name
Server. (Under exceptional circumstances you might consider installing more than
one, subject to your license agreement: this is discussed in “Employing topic-based
security” on page 129.)
The User Name Server can be configured on any supported platform and works
with the security control mechanism of the underlying operating system.
Windows NT
The User Manager supports the definition and deletion of principals (users
and groups), and the assignment of user IDs to groups.
UNIX Systems
The basic user and group control in the file system supports creation,
deletion and modification of users and groups.
z/OS Systems
The User Name Server is deployed in the client domain (that is, Windows
NT, Windows 2000, or UNIX) to supply the appropriate user and group
information to the z/OS brokers. No z/OS User Name Server is required.
The User Name Server monitors the underlying security subsystem and provides
information about valid principles in the system to other components in the broker
domain. It updates the information at frequent intervals.
Figure 10 illustrates the place of the User Name Server in the broker domain.
Queue manager
Configuration
Queue manager
Manager
Broker
For more information about configuring a User Name Server in your domain, and
deploying topic security, see Chapter 9, “Planning your WebSphere MQ Integrator
network” on page 125.
You can create an explicit ACL for any topic in the topic tree, up to and including
the topic root. An ACL allows, denies, or inherits the authority to publish, to
subscribe, and to request persistent message delivery. If any topic does not have an
explicit ACL, it is governed by the ACL it inherits from its higher level (parent)
topic in the tree. The default ACL setting for the topic root is to allow public
access. This can be modified to restrict access by introducing ACLs at specific
points in the tree.
For more information about publish/subscribe applications, and the use of topics
and ACLs, see “Employing topic-based security” on page 129.
SCADA, similarly, provides a messaging facility for pervasive devices, but it uses a
very lightweight protocol tailored specifically for specialized applications on small
footprint devices, typically in the area of remote data acquisition and process
control.
From Version 2.0.2, input and output nodes are provided to allow messages to be
sourced from, and dispatched to, MQSeries Everyplace and SCADA
This section introduces MQSeries Everyplace concepts and outlines how MQSeries
Everyplace and WebSphere MQ Integrator work together. The WebSphere MQ
Integrator Administration Guide gives further details of the requirements needed to
achieve intercommunication between MQSeries Everyplace and WebSphere MQ
Integrator.
For further details of how to program with MQSeries Everyplace, you should refer
to the MQSeries Everyplace library. Whitepaper: MQSeries Everyplace for Windows
Version 1.1 provides a useful overview of MQSeries Everyplace. This Whitepaper is
available by following the Library-Whitepaper links from the MQSeries product
family web site; see “MQSeries information available on the Internet” on page 208
for more information.
Using these nodes, you can write point-to-point applications where an MQSeries
Everyplace input message is transmitted to an MQeOutput or an MQOutput node
or publish/subscribe applications where the message is transmitted to a
Publication node.
MQSeries-
Adapter Adapter bridge queue
(’MQeInputQ1’) MQeOutput
node
transformer
Figure 11. Diagram showing the relationship between MQSeries Everyplace and WebSphere
MQ Integrator
Within WebSphere MQ Integrator, the message can be dealt with in different ways
depending on the message class used for the message, as explained later
(“MQSeries Everyplace messages in WebSphere MQ Integrator”). There is no
parser in WebSphere MQ Integrator directly capable of parsing messages derived
from MQSeries Everyplace.
You must ensure that all flows that communicate with MQSeries Everyplace are
within the same execution group.
You must have an associated MQeInput node, even if you are only writing
messages to MQSeries Everyplace and not receiving them from MQSeries
Everyplace. There is information (such as the queue manager name and the
listening port) that MQSeries Everyplace clients need to connect to WebSphere MQ
Integrator that is specified only in the MQeInput node.
MQeMsgObject: MQeMsgObject does not put any restrictions on the fields it can
contain, and so only predefined fields are transferred to the MQMD (the MQSeries
message descriptor) when the message is passed to an MQSeries network — the
remaining fields are put, unparsed, in the message body. The payload of a message
derived from MQeMsgObject cannot be parsed, but this type of message does enable
you to use special MQSeries Everyplace fields, such as pic, so that the message can
Unlike both MQSeries and MQSeries Everyplace, SCADA does not incorporate any
form of security, although you can encrypt data if necessary.
The SCADAInput node listens on a defined port and receives messages from clients
using the MQIsdp protocol. A SCADA listener can be started and stopped using a
publish message with a specific topic. This can be done for all ports, or for a single
port identified in the message.
The Publication node filters and transmits the output from a message flow to
subscribers who have registered an interest in a particular set of topics. Normally,
this would be done by putting the message to the queue on the queue manager
specified in the subscription. But because the Publication node contains a
SCADAOutput node, the message can just as easily be delivered to a subscribing
SCADA client over TCP/IP.
Dependencies
A number of dependencies have been highlighted by this discussion of WebSphere
MQ Integrator and its components. These dependencies are summarized here, to
help clarify the requirements that WebSphere MQ Integrator has on your systems.
For details of software levels for other products (databases and MQSeries), see
Chapter 8, “System requirements” on page 109.
MQSeries dependencies
WebSphere MQ Integrator is heavily dependent on the facilities of MQSeries
messaging to provide connectivity, message integrity, and some transactional
support. In summary, these dependencies are:
Queue managers
A single MQSeries queue manager can host at most one broker. The
Configuration Manager and the User Name Server both depend on a
queue manager, but can share this queue manager with each other, or with
a single broker, or both.
Communications
When you set up a network of queue managers to support WebSphere MQ
Integrator, you must define their connectivity. You can use any one of the
communications protocols supported by the underlying MQSeries product
(this varies according to operating system environment).
The client/server connection between the Control Center and the
Configuration Manager, however, is limited to a TCP/IP connection, and
the Control Center depends on the MQSeries client for Java.
The Configuration Manager
This depends on a queue manager, with a set of fixed-name queues and a
server connection channel that is defined when it is created.
The Configuration Manager also needs sender and receiver channels to be
able to communicate with every broker in the broker domain (except the
one broker, if defined, that is created with the same host queue manager).
The broker
Each broker depends on a dedicated queue manager (a broker cannot
share a queue manager with another broker, although it can share a queue
manager with the Configuration Manager, or the User Name Server, or
both). It also needs a set of fixed-name queues that are defined when the
broker is created.
The broker needs sender and receiver channels to be able to communicate
with the Configuration Manager. It also needs sender and receiver channels
to communicate with the User Name Server, and sender and receiver
channels to communicate with all brokers in the same collective, or to
which it is identified as a neighbor in the topology.
MQSeries applications
Each MQSeries application using WebSphere MQ Integrator services must
be able to connect to a queue manager in the MQSeries network to allow it
to put messages to the queue serviced by the message flow that provides
the service it requires. This connection can be local, or can use any
supported MQSeries client product, with the appropriate server and client
connection definitions.
Each MQSeries application retrieving messages from a queue populated by
a message flow must be able to connect to the queue manager that owns
Database dependencies
The WebSphere MQ Integrator components use databases to store configuration
and operational information. In summary, these dependencies are:
The Configuration Manager
This needs two independent sets of tables to support the message
repository and the configuration repository.
These tables are created and initialized when the Configuration Manager is
created. The two repositories can be created within a single database, or in
two separate databases. Both repositories must be created in a DB2
database.
The Configuration Manager can use either a local connection to the
databases, or a remote connection.
The broker
Each broker needs access to a set of tables to support its operation.
These tables are created and initialized when the first broker is created.
The broker tables can be created in the following databases:
v IBM DB2 Universal Database
v Microsoft SQL Server (Windows NT only)
v Oracle
v Sybase
If you are using DB2 and your broker is on Windows NT, the broker tables
can be created within the same database as the configuration repository, or
the message repository, or both. However, restart and recovery is easier if
you have three separate databases, one for the broker tables, one for the
configuration repository, and one for the message repository.
When you subsequently create other brokers, they can share the same set
of tables, because every entry on each table (row) identifies an individual
broker. If you prefer, you can set up separate databases (and therefore sets
of tables) for each broker.
The broker can use either a local connection to the databases, or a remote
connection.
You can find instructions that tell you how to create these databases, the ODBC
connections they require, and the need for Microsoft Data Access Component
(MDAC), in the WebSphere MQ Integrator Administration Guide and the WebSphere
MQ Integrator for z/OS Customization and Administration Guide.
You must always use the Control Center to update the database tables used by
WebSphere MQ Integrator. If you access these tables directly using any other
means, you risk destroying the integrity of that data.
However, this is just one scenario that has been chosen for more detailed
examination. Other scenarios might include:
v The financial industry, which needs to make sure that vast numbers of
transactions happen, happen correctly, and happen once and once only.
v The health-care industry, which needs accurate information to be available across
multiple, heterogeneous, and often long established, systems.
The retail scenario, and others, are available by downloading the MQSeries
SupportPac IC03 from the MQSeries product family web site. For more information
see “MQSeries information available on the Internet” on page 208.
Santiago London
HQ:
Vancouver
Headquarters
Branches
SRU wants to bridge the gap between its existing applications and the increased
number of back-end systems. It also wants to ensure that access to some
information can be restricted only to those applications that need it. It also needs a
solution that can be enhanced in the future. WebSphere MQ Integrator can provide
the facilities that meet these major objectives:
v Bridging the gap: WebSphere MQ Integrator provides message transformation
facilities that support the receipt of a message in one format and the distribution
of that message in one or more different formats, according to the business
needs of the target applications, without any modification of existing
applications.
v Restricting information: WebSphere MQ Integrator provides topic and
content-based message routing using controls to restrict the recipients of any
message.
Figure 13 shows the relationships between the warehouse branches and the
back-end systems.
HQ:
(Vancouver)
Santiago
San Diego
MQSeries V5.2
London WebSphere Distribution:
MQ Integrator (Santiago)
Amsterdam Version 2 (London)
Partners:
(London)
(Amsterdam)
(San Diego)
Auditors:
(Vancouver)
Business data
Data is taken from the receipts generated for each transaction that takes place
within each retail store. SRU gathers this data from its retail stores. Here is an
example of a receipt from one of the stores:
SRU
SOUTHAMPTON
HAMPSHIRE
Purchases
Total items 4
Multibuy Yes
Multibuy item tinned ham
Multibuy quantity 2
Total sales 12.53
Change 2.47
The information required by each interested party is shown in the following table:
The first task is to represent the business data (that is, the receipt) as a message
with a structured format:
Store Details
Store Name
Branch No
Cashier No
Till No
Date
Time
Purchases
Item Name
Item Code
Item Price
Item Quantity
Totals
Total Items
Multibuy
Total Sales
Change
STOCK FLOW
Reformat Stock
Input Check Warehouse Compute Output
Distribution
PARTNER FLOW
Yes
Filter DataInsert Publication Partners
Topic Multibuy
The message flow includes four subflows that perform the processing required to
satisfy the business needs:
1. Initially, all messages are retrieved from the input queue by the MQInput node.
Each message is checked to ensure that it is a message of the correct format for
a receipt (in a Check node) and stored in a database (in a Warehouse node)
before it is passed to all three of the remaining subflows.
2. In the Finance flow, the fields Branch No, Date, Time and Total Sales are
extracted from the input message in an Extract node. Each message is then
traced by the Trace node. The records that are written to the trace log enable
you to ensure that only the data extracted by the Extract node is sent to the
Finance department by the Output node.
3. In the Stock flow, a Compute node sums up all instances of each item from the
input message. This information can then be formatted and sent in a message
containing Branch No, Item Name and Item Quantity by the Output node to
the Stock Distribution department.
4. In the Partner flow, multibuy records are placed into a database by a
DataInsert node and published to registered partners by the Publication node.
Partners subscribe to messages based on a topic (Multibuy) or refine their
subscriptions further by filtering on the content of a field (the item name) in a
message.
Access Control Lists are defined in the Control Center to ensure that user IDs
associated with partners are restricted to subscribing to the items they produce. For
example, the partners producing the tinned ham product register a subscription
based on the topic Multibuy/tinned ham, and are not authorized to receive messages
published on any other topic.
Note: In SCADA applications, messages arrive and leave via a port rather than a
queue, but the principle is the same.
The content and execution characteristics of a message flow are discussed in the
following sections:
v “What does a message flow consist of?”
v “Message flows and units of work” on page 51
v “Parallel processing of message flow instances” on page 51
v “Interaction of message flows” on page 52
v “Transformation” on page 52
v “Intelligent routing” on page 53
v “Enriching message content” on page 53
A message flow and the message processing nodes it contains describes the
transformation and routing applied to an incoming message to transform it into
outgoing messages. These actions form the rules by which the message is
processed.
A message flow can also be made up of a sequence of other message flows that are
joined together. This function allows you to define a message flow containing a
specific sequence of message processing nodes, and reuse that message flow in
other message flows wherever that action is needed.
One example of why you would use this technique is error handling. You can
define a message flow of one or two nodes that perform the action you want taken
when an error is encountered, and include that message flow as a sub-message
flow in all your other message flows.
When you complete the creation of your message flow, you can assign it for
execution to one or more brokers. When you do this, the message flow must be
operationally complete. That is, it must contain at least one of the supplied input
nodes, such as MQInput node (one of the primitives). Most message flows also
contain at least one output node, such as MQOutput, or one Publication node,
although this is not required (both of these nodes are also primitives).
For example, you could deploy all message flows that access a particular database
to a single broker. You could choose to deploy the message flows that provide a
publish/subscribe service to a specialized group of brokers.
You can also control some aspects of how your message flows run, within a single
broker. Each broker can host a number of execution groups. An execution group
provides an execution environment, that offers protection and isolation.“What is an
execution group?” on page 58 has more information about using execution groups.
You can also define a message flow to work outside of a unit of work if you do
not want this support.
If you want to further increase the throughput of this message flow, you can set a
property of the assigned message flow (that is, the property is available when you
have assigned the message flow to the broker’s execution group) that defines how
many additional instances are to be started by the broker for that message flow.
You can set properties of the input node to exercise control over the order in which
messages are processed: for example, you can force all messages received from a
single client to be processed in order. This is discussed further in “Message order”
on page 82.
You can also increase message flow throughput by assigning more than one copy
of the message flow to the same broker. However, this is only appropriate if the
message order is not important, because the multiple copies of the message flow
are handled independently by the broker, with no correlation between them.
Therefore, if more than one copy of the same message flow is active within the
broker, each copy can be processing a message at the same time, from the same
queue. It is possible for the processing time of a message flow to vary, and
multiple message flows accessing the same queue could therefore read the
messages from the queue in a random order. Also, the order of messages produced
by the message flows might not correspond to the order of the original messages.
You can influence the order in which the input node removes messages from the
queue (using the Order Mode property).
Each instance of a message flow handles strictly one message at a time. A message
flow instance does not accept a second message (that is, read a new message from
the input queue or SCADA port) until the first message has been completely
processed.
Transformation
Most enterprises have applications that have been developed over many years, on
different systems, using different programming languages, and different methods
of communication. Standard message queuing technology can bridge differences
like these, but applications still need to be aware of, and negotiate, the format in
which the messages flow.
For example, personal names are held in many forms in different applications.
Surname first or last, with or without middle initials, upper or lower case: these
are just some of the permutations. Because the broker knows the requirements of
each application, it can transform the message to the correct format without the
sending or receiving application needing any modification.
A message flow can completely rebuild a message, convert it from one format to
another (whether format means order of fields, byte order, language, and so on),
remove content from the message, or introduce specific data into it. For example, a
node can interact with a database to retrieve additional information, or store a
copy of the message (whole or part) in the database for offline processing.
The following examples show how important message transformation can be:
v An order entry application has a Part ID in the body of the message, but its
partner stock application expects it in the message header. The message is
directed to a message flow that has knowledge of the two different formats, and
can therefore reformat the information as it is needed.
v A data-entry application creates messages containing stock trade information.
Some applications receiving this message need the information as provided, but
others need additional information added to the message about the price to
earnings (PE) ratio. The stock trade messages are directed to a message flow
which passes the message unchanged to some output nodes, but calculates and
adds the extra information for the others. The message flow does this by looking
Intelligent routing
Intelligent routing encapsulates business knowledge of how information should be
distributed between sending and receiving applications throughout the enterprise.
This knowledge is stored in the broker as a set of rules that are applied to each
message as it passes through the broker. Routing is independent of the requirement
for message transformation, although you will usually define sets of rules, as
message flows, that combine the two in some way. Messages are distributed
according to criteria applied to the values of fields within the message.
For example, a money transfer application always sends messages to one other
application. You might decide that every message with a transfer value of more
than $10,000 must now also be sent to a second application, to enable all
high-value transactions to be recorded.
You can also establish a more dynamic routing option by building additional
routing information into the message when it is processed. Optional sets of rules
are set up to receive messages according to values (destinations) set into the
message. You can establish these rules such that a message is processed by one or
more of the optional sets of rules, in an order determined by the added message
content.
You can create, modify, and use these rules to develop a very flexible approach to
the distribution of information. New ideas and requirements can be stated clearly,
and turned into new or changed rules in the broker, and your business goals are
met. You don’t need to rework your applications.
Your business processes range from the simple to the very complex. You can create
rules to cover every case, building new rules, and reusing and combining existing
ones to develop even the most complex solution.
A typical way in which you can enhance the message content is by adding data
from a database. This could be done by appending fields to the message, or
merging information from the two sources, for example by calculating a new field
value using the database information.
This section describes the types of nodes, using the primitives included in
WebSphere MQ Integrator to illustrate the function they provide.
A connector joins an output terminal of one node to an input terminal of the next
node in the message flow. You can leave an output terminal unconnected, or you
can connect a single output terminal to more than one target node. (Figure 4 on
page 18 illustrates the relationships between connectors, terminals, and nodes.)
After a node has finished processing a message, the connectors defined from the
node’s output terminals determine which node, or nodes, process the message
next. If a node has more than one output terminal connected to a target node, the
node determines the order in which the different execution paths are executed. If a
single output terminal has more than one connector to a target node, the broker
determines the order in which the different execution paths are executed. You
cannot change the order of processing determined by the node or broker.
A node does not always produce an output message for every output terminal:
often it produces one output for a specific terminal depending on the message
received. For example, a filter node typically sends a message on either the true
terminal, or the false terminal, but not on both.
When the processing determined by one connector has been completed, the node
issues the message again to the next connector, until all possible paths have been
completed. Updates to a message are never propagated to previously executed
nodes, only to nodes following the node in which the update has been made.
The message flow can only accept a new message for processing when all paths
through the message flow (that is, all connected nodes from all output terminals,
as appropriate) have been completed.
A message flow has a set of (one or more) input nodes to which senders can post
their messages, and a set of output nodes from which receivers can pick up
messages. Although a message flow must include an input node, you do not need
to include an output node. For example, you might just want to store a message in
a database for audit purposes.
If a message is being processed under transactional control, the output node only
puts the message to the destination I/O resource when all processing by the
message flow has been successfully completed, unless the output node is set up to
put the message outside the global (message flow) transaction.
Before you can use a message flow, the input nodes must be associated with I/O
resources that represent the sources of messages. An output node must also be
associated with an I/O resource in most cases. However, you can set an output
node property that causes the node to put the message to every I/O resource in a
destination list, which is contained within the message itself.
You must use one of the supplied primitive nodes for every message flow input
node: or you can write one of your own. You should use the MQInput node in
most cases, but you should use the MQeInput node when interfacing with
MQSeries Everyplace applications, and the SCADAInput node when interfacing
with remote SCADA devices.
You can use the supplied MQOutput node, or you can replace it with one you
have written, if you choose. Use the supplied MQeOutput node for MQSeries
Everyplace applications, and the Publication node for typical SCADA applications.
(The Publication node knows how to handle SCADA messages — you only need
to use the SCADAOutput node in exceptional circumstances.)
Publication nodes are a special type of output node that use the queues identified
by current subscribers whose subscriptions match the characteristics of the current
message. Subscribers provide the identity of the queue on which they want to
receive all matching publications.
Processing messages
All nodes other than the input and output nodes receive an input message from
the previous node in the message flow and transform it into zero or more output
messages to be made available to the next node (or nodes) in the message flow.
Messages passing between nodes are not put to an intermediate queue: each
message is held in local memory.
These nodes can perform any kind of processing on a message. For example, they
can:
v Transform the message (Compute).
v Extract fields from the data within the message (Extract).
v Route the message to one or more targets (RouteToLabel).
You can customize the processing of these nodes by using Extended Structured
Query Language (ESQL). This is a specialized form of standard database SQL and
allows you to manipulate the content of messages.
In addition, these nodes provide a menu of valid ESQL statements. You can
highlight statements to see their syntax. You can drag and drop statements into the
ESQL editor. You can also drag and drop to insert message field references into the
ESQL statements. The ESQL statements are processed when the node is invoked as
part of a message flow.
Note: Only some nodes support full ESQL editing and the new ESQL statement
menu (Filter, Compute, Database).
Error handling
All primitive message processing nodes have a failure output terminal, to which a
message is transferred if an error is detected within the node. If the failure
terminal is not connected to a target node, an exception is generated and
propagated back towards the input node:
v If a TryCatch node is encountered before the exception reaches the input node,
the flow of control proceeds down the catch terminal. The message that is
propagated through the catch terminal is the message originally received by the
TryCatch node: any changes made to the message by later nodes in the message
flow are not preserved. However, any external processing (for example, updates
to a database through a Database node) are preserved. It is not possible to roll
back these database updates from within the message flow.
Before the TryCatch node passes on the message to the node connected to the
catch terminal, it adds the exception information to the ExceptionList item in the
message tree. Existing information in the ExceptionList field in the message is
written to the local error log, and then overwritten with the new exception
information.
For further information about ExceptionLists, see the WebSphere MQ Integrator
Working with Messages book.
v If the message reaches the input node:
– If the input node’s catch terminal is connected to another node, the message
is propagated to that node. In this case, an error is not recorded in the local
error log (for further details of how WebSphere MQ Integrator logs errors, see
“Problem determination” on page 157).
– If the input node’s catch terminal is not connected, and the message is being
processed under transactional control, the message is returned to the input
queue. An error is recorded in the local error log. The input node then reads
the message again for retry. It first checks to see if the backout count for this
message has now exceeded the backout threshold:
- If the backout count has not exceeded the threshold, the message
processing is retried.
- If the backout count has exceeded the threshold, and the failure terminal is
connected to another node, the message is propagated to that node.
If the failure terminal is not connected, the message is put on the backout
queue, if one is defined for this input queue, or the queue manager’s
dead-letter queue (DLQ), if a backout queue does not exist.
For more information about message processing under transactional control, see
“Transaction support” on page 83.
You can provide a minimum level of error handling within every message flow
you define if you choose. This minimum level might include:
v Define a dead-letter queue (DLQ) on the broker’s queue manager (or use the
default supplied DLQ).
v Change the queue manager’s attributes to use this DLQ.
For details of incorporating more sophisticated error handling, for example, the use
of the TryCatch node, see WebSphere MQ Integrator Using the Control Center.
One execution group, the default execution group, is set up ready for use
whenever you create a broker. By setting up additional execution groups, you can
isolate message flows that handle sensitive data such as payroll records, or security
information, or unannounced product information, from other nonsensitive
message flows.
For example, you might want to set up one execution group to support a
connected set of applications and their messages, and a second execution group for
another distinct set of applications and their messages.
Within an execution group, the assigned message flows run in different thread
pools. You can specify the size of the thread pool (that is, the number of threads)
that are assigned for each message flow by specifying the number of additional
instances of each message flow (this is also discussed in “Parallel processing of
message flow instances” on page 51).
If you create additional execution groups, you must give each group a name that is
unique within the broker, and assign and deploy one or more message flows to
each one.
You do the creation, deployment, and assignment (of message flows and threads
for the message flows) using the Control Center.
The same message flow can be assigned to any number of brokers, perhaps for
workload distribution. Similarly, a number of different message flows can be
assigned to the same broker.
However many message flows a broker hosts, the broker needs access to the
definitions of your predefined (that is, not self-defining) messages expected or
generated by those message flows.
The message sets are assigned and deployed to the broker, but message flows are
assigned and deployed to an individual execution group.
The relationship between message flows and message sets is unlikely to be one to
one. You are very likely to have a number of related message flows executing in
one broker that use some or all of the same message sets.
For further details about messages and message sets, and how you define them,
refer to Chapter 5, “Messages” on page 69.
You can increase the throughput of this publish/subscribe message flow from
publication queue to subscribers by increasing the number of instances of that
message flow operating in the execution group. You can also deploy the same
message flow to multiple brokers, as you can with any message flow.
Message transformation
Compute
Derive an output message from the contents of an input message.
Output message elements (including destination lists and exception lists)
can be defined using expressions, defined in ESQL, based on input
message elements and external data sources. The expressions can use
arithmetic operators, text operators (for example, concatenation), logical
operators, and other built-in functions.
The subset of ESQL operations you can specify in this node is described in
WebSphere MQ Integrator ESQL Reference.
The output message can inherit all the headers associated with the input
message, or the node can be set up to select a subset of those headers for
the input header, or to insert a new header (or headers), replacing the
input message headers.
The Compute node can be used to make a copy of a message (that is,
duplicate the message), prior to manipulating the message content.
Extract
Create a new message from the input message using only specified
elements. Any elements from the input message that are not specified for
the output message are discarded. This is a specialized form of Compute.
The definitions of these message flows are provided in the import file
SamplesWorkspaceForImport. The import file PostcardMS.mrp provides the
definitions for the message set required by the Postcard message flow. Each
WebSphereMQ Integrator Installation Guide describes the Installation Verification
Program (IVP) message flows and message set in detail, and tells you how to
import the supplied files and save the definitions for future use. WebSphere MQ
Integrator Using the Control Center provides more information about the default
message flows, and guidelines for using them.
You can find more details about this facility in Chapter 11, “Enhancing your broker
domain” on page 163. The implementation details of the system programming
interface are given in the WebSphere MQ Integrator Programming Guide.
DB2
v Table and Column names cannot be greater than eighteen characters.
v Trigger and Constraint names cannot be greater than eight characters.
v SQL batch jobs that have been run in a distributed DB2 environment must be
reviewed and revised. This is because some Data Definition Language (DDL)
and Data Manipulation Language (DML) commands and statements are
inappropriate or incorrect for DB2 running on z/OS.
The Debugger lets you define break points within a message flow. When a break
point is encountered during message processing, control is returned to you, and
you can then inspect and modify the message contents. This helps you to analyze
and solve unexpected situations with message flows, such as:
v Wrongly connected nodes, such as outputs connected to incorrect inputs
v Filter nodes with incorrect conditions
v Compute nodes with incorrect logic
v Database nodes making incorrect entries into their target databases
v Incorrect messages generated by applications, or having contents that the
message flow does not expect
v Feedback loops that are never exited
v User-programmed plug-in nodes that contain errors, or are not reentrant
Full details of the Debugger are provided in WebSphere MQ Integrator Using the
Control Center. More information on solving problems is given in the WebSphere
MQ Integrator Problem Determination Guide.
Predefined Messages
Self-defining Messages
A self-defining message uses the XML standard to structure its content. XML is an
open messaging standard, providing a cross-platform portable mechanism for
exchanging data. XML refers to a family of specifications based on a tagged
message format for metadata. The tag language has been developed from older
markup standards including GML and SGML.
XML definitions for specific business objects (for example, messages used by EDI
or financial applications) are grouped using “schemas” or document type definitions
(DTDs).
The XML standard is fast-growing, and is being adapted to, and supported by,
increasing numbers of products. WebSphere MQ Integrator’s ability to support it is
therefore critical to providing comprehensive business integration.
For up-to-date information about XML, and further references, see the IBM Web
site:
http://www.ibm.com/developer/xml
JMS messages are also identified by the XML domain. You can use self-defining
JMS messages in exactly the same way that you can use XML messages.
The Control Center provides the main Graphical User Interface (GUI) for message
definition and management.
You can define messages and their content and structure to the MRM within
message sets. Message sets keep the individual message templates linked together,
and simplify their administration and distribution.
This rich level of support allows you to create, manipulate, and manage a wide
variety of messages encompassing many of the industry standards of today.
You can use the MRM to model XML, JMS, and tagged or delimited messages. You
can then use the model to define the message processing that your message flows
will perform on these messages.
The MRM also provides the ability to base messages on existing messages, and to
control any updates on the underlying message model.
Message templates
The message model in the MRM is defined by the following four values that make
up the message template:
The message set identifies the grouping of messages within the message domain,
as you have defined it. Typically, a message set contains a number of related
messages that provide the definitions required for a specific business task or
application suite.
The message format describes the wire format of the message; its physical
representation in the bit-stream.
For further details of the message model, see the WebSphere MQ Integrator Working
with Messages book.
If you have messages that are already defined within another message repository
(MRM), you can do one of the following:
v Use the command, mqsiimpexpmsgset, that is provided by WebSphere MQ
Integrator, to import or export whole message sets.
v Export these messages to C or COBOL format and use the Control Center to
import the headers or copybooks created into your WebSphere MQ Integrator
environment.
v Provide a parser that interprets these messages. For more details, see “Creating
additional parsers” on page 76.
To get full integration across your enterprise, you might need a variety of message
templates. For example:
You can define your own standards for messages between newly developed pieces
of software. For example, messages of this type can contain XML.
Chapter 5. Messages 71
Message templates
Legacy message formats
These are determined by the legacy applications themselves. They include, for
example, COBOL record structures used for interacting with CICS or IMS
applications. Other examples are 3270 data-streams and other forms of screen map.
Defined by JMS.
Your application programmers create and receive messages based on the message
type, the environment the programmer is working in, and the language that the
programmer is using. For example, a COBOL programmer manipulates a message
as a COBOL data structure, and a Lotus Notes™ programmer views it as a Notes
document.
You can use the New Era of Networks Formatter interface, (accessible through the
Control Center, or directly), to view these existing messages and to create new
message formats. For more information, refer to the New Era of Networks Rules and
Formatter Support for WebSphere MQ Integrator User’s Guide. You cannot edit New
Era of Networks messages using the Control Center, you can only view them. You
must use the New Era of Networks Formatter to edit New Era of Networks
messages.
The SCADAInput node creates messages with MQRFH2 headers from the
messages received by the listener on the TCP/IP port.
The Control Center does not provide import or export functions for message sets,
you must use the command. See the WebSphere MQ Integrator Administration Guide
for further information.
When you develop the topology of your broker domain using the Control Center,
you make decisions about which message flows run on which brokers, and
therefore need to decide at the same time which message templates are required by
each broker.
If you define message templates using the Control Center, you specify the message
sets that are required at each broker by assigning them to that broker, in the same
way that you assign the message flows that are to be executed in that broker. You
do this using the Control Center.
When you have made these decisions, you must update the repository with your
changes, by checking in all the resources you have been working with. You must
then request that these changes are propagated as required through the broker
domain. This function, known as deployment, is handled by the Configuration
Manager when you request the deploy using the Control Center.
Each message set is sent to the broker in the form of a message dictionary, which
allows the broker to interpret the messages it receives. Each broker can manage a
number of message dictionaries concurrently. You can’t modify dictionaries in the
broker directly. However, you can delete and add message sets using the Control
Center, and deploy the updated configuration, which achieves the same result.
Chapter 5. Messages 73
Using messages
If you create new message sets, or modify existing ones, you can assign and
deploy these through the Control Center. Message flows can access new message
dictionaries when the broker has implemented these changes.
If you define message templates using the New Era of Networks Formatter, you
must make these available to the broker by setting values in the configuration file
located by the NN_CONFIG_FILE_PATH environment variable. If you update
these message templates, you must force the New Era of Networks nodes in the
message flows to re-access the database by stopping and restarting the broker.
See WebSphere MQ Integrator Working with Messages for details of creating messages
and see WebSphere MQ Integrator Using the Control Center for details of assigning
message sets to brokers.
If you are using self-defining messages you do not have to distribute message
template information to brokers.
Message parsers
WebSphere MQ Integrator can handle any message template for which a suitable
parser is available. The parsers interact with the message templates stored in
message dictionaries or interpret self-defining messages on receipt. You can extend
the range of messages supported by creating your own message parsers.
WebSphere MQ Integrator provides an external interface to enable you to do this.
Any other message, for which no parser can be identified (either because the
format field in the immediately preceding header is not set, or is set to an
unknown value), is handled as a BLOB and managed by the BLOB parser. That is,
the remaining body of the message is passed through the message flow intact, and
the content is left untouched. A message flow that receives a BLOB message
therefore can’t perform content-based routing or message transformation. However,
the message can be stored in a database, be routed according to topic, or have
headers added or removed. Limited message manipulation is possible if the
message content is predictable.
Parsers are also provided in the product for the following headers:
v MQCFH (the programmable command format (PCF) headers).
v MQCIH (the CICS bridge header).
v MQDLH (the DLQ header).
v MQIIH (the IMS bridge header).
v MQMD (message descriptor).
v MQMDE (message descriptor extension).
Chapter 5. Messages 75
Message parsers
v MQRFH and MQRFH2 (rules and format headers).
v MQRMH (reference message header).
v MQSAPH (the SAP link header).
v MQWIH (the workload information header).
v SMQ_BMH (the SAP link bad message header).
The broker needs to deal with all messages in a general way, and therefore it does
not handle the sequence of bytes directly but instead references syntax elements
around which it navigates to deduce the structure of the message. This
implementation allows parsers to navigate the message tree structure, in any way.
For example, a parser can access an element’s parent, or its children or siblings.
Other functions allow manipulation of the elements themselves, for example to set
or query the values, to insert new elements into the tree or to remove elements
from the tree.
Refer to the WebSphere MQ Integrator Working with Messages book for more detailed
information about how parsers work with messages.
You can use your new parsers with existing message processing nodes (that is,
those provided by WebSphere MQ Integrator) and with your own additional
plug-in message processing nodes.
You’ll find further information about using this interface in Chapter 11, “Enhancing
your broker domain” on page 163. Implementation details of the programming
interface are in the WebSphere MQ Integrator Programming Guide.
Communication models
WebSphere MQ Integrator supports two general application communication
models; point-to-point and publish/subscribe. These two models, introduced in
Chapter 2, “WebSphere MQ Integrator overview and concepts” on page 9, are
explored in more detail in this chapter and the next.
A single application can also mix the two styles, if appropriate. In this case the
message flow contains at least one output node and at least one publication node
(in addition to one or more input nodes). The retail scenario introduced in
Chapter 3, “WebSphere MQ Integrator: a business scenario” on page 41 is
implemented using the two styles. This scenario, and others, are available by
downloading the MQSeries SupportPac IC03. For information about the MQSeries
product family web site, see“MQSeries information available on the Internet” on
page 208.
This broad application support enables you to exploit your existing MQSeries,
MQSeries Everyplace, and SCADA clients and applications, and to develop new
applications to take advantage of the more advanced features of WebSphere MQ
Integrator. Both existing and new applications work together before and after a
broker is introduced into the network.
Point-to-point communications
Point-to-point applications exchange information with known partners. Each
application is aware of the identity of the one or more applications with which it is
Your existing applications written using the point-to-point model can run
unchanged in an WebSphere MQ Integrator environment. However, you should
check “Reusing existing applications” on page 85 for more detailed guidance.
You can enhance and extend your existing application function by using the
facilities of the broker to include additional partners. For example, an application
that handles similar data but in a different format can now participate, because the
original message can be transformed by the broker into the expected format,
without the sending or receiving application changing.
If you identify a message that needs additional application processing, you can
create another copy of the message in the message flow, and send it to a new
application developed to provide that processing. The original applications are
unaware of the new action on the message and continue to work unchanged.
Publish/subscribe communications
Some applications are not tied to particular partners. They deal with data and have
no specific requirements as to who is receiving that information, or where the
message comes from. The publish/subscribe model allows data to be made
available at any time, to whoever is interested at that time, without the sender or
receiver being aware of the other.
Application programming
This section discusses the following application programming topics:
v “Application programming interfaces”
v “Message headers” on page 81
v “MQSeries queues” on page 82
v “Message order” on page 82
v “Transaction support” on page 83
v “Message persistence” on page 84
v “Security” on page 85
The MQI provides a small number of calls that allow an application to interact
with other applications across an MQSeries network of queue managers. The calls
support a large range of parameters that allow a rich choice of processing options
for each and every message.
The JMS is a Java Messaging API developed by IBM and other messaging vendors,
in partnership with Sun Microsystems, Inc. It provides a common API to access
different enterprise messaging systems, such as MQSeries, through the Java
programming language. Two messaging models are provided: point-to-point and
publish/subscribe.
Client applications using the MQI can run on any supported MQSeries operating
system, and therefore any limitations as to language or function are defined by the
relevant product for that operating system.
Client applications using the JMS interface are written in the Java programming
language, and are therefore restricted to the levels of JVM that are supported on
the operating system in question. For further information, see the MQSeries Using
Java book, or visit the MQSeries Web site (identified in “MQSeries information
available on the Internet” on page 208).
Client applications using the AMI are restricted to the operating systems and
programming languages supported by this interface. Check the current level of the
MQSeries Application Messaging Interface book for details, or visit the MQSeries Web
site (identified in “MQSeries information available on the Internet” on page 208).
Message headers
WebSphere MQ Integrator supports applications that use different headers.
MQSeries queues
WebSphere MQ Integrator uses a number of dedicated queues, defined by each
broker, the Configuration Manager and the User Name Server, for specific
functions. You can find a full list of these queues, and their purpose, in the
MQSeries MQ Integrator Installation Guide.
Message order
If message ordering is important, you can use the techniques recommended for all
MQI and AMI users. See the MQSeries Application Programming Guide for programs
written to the MQI, and MQSeries Application Messaging Interface for programs
written to the AMI. MQSeries Everyplace and SCADA applications use a different
method of message ordering — refer to the WebSphere MQ Integrator Programming
Guide for details.
Publish/subscribe
Additional considerations apply to publish/subscribe applications. For any given
topic, messages are published by brokers in the same order as they are received
from publishers (subject to reordering based on message priority). This normally
means that each subscriber receives messages from a particular broker, on a
particular topic, from a particular publisher, in the order that they are published by
that publisher.
However, in common with all messages using the MQSeries transport layer, it is
possible for messages, occasionally, to be delivered out of order. This could
happen, for example, if a link in the network fails and subsequent messages are
routed via another link.
If you need to ensure the order in which messages are received, you can use either
the SeqNum (sequence number) or PubTime (publish time stamp) parameter on the
Publish command for each published message, to calculate the order of
publishing. Check the WebSphere MQ Integrator Programming Guide for details of
how to implement these message ordering techniques.
Transaction support
Message flows hosted by brokers might provide vital processing and data
manipulation that must have full transactional integrity. That is, the message flow
must complete all processing successfully, or must complete none. Any part of the
processing that completed successfully (for example, the reading of the input
message from the input queue) must be rolled back if there are problems that
prevent later processing from completing successfully.
If the message flow processing includes interaction with an external database, the
transaction can be coordinated using XA technology to assure all participants
update or return to a consistent state. This external coordination support is
provided by the underlying MQSeries facilities and the ODBC support provided
for the database. This level of XA support is only available if the database you are
using is DB2, Oracle, or Sybase.
You can mix these different transaction types by using different settings in multiple
nodes with one message flow. The WebSphere MQ Integrator Administration Guide
has details of how to work with transactions in this way.
Message persistence
MQSeries messaging products provide an additional level of support for message
integrity. This is message persistence, which defines the longevity of the message in
the system. Nonpersistent messages are lost in the event of system or queue
manager failure. Persistent messages are always recovered if a failure occurs.
SCADA applications use appropriate settings of quality of service instead of message
persistence.
When a message is read from an input queue by the input node, the default action
is to use the persistence defined in the MQSeries message header (MQMD), that
has been set either by the application creating the message, or by the default
You can override the persistence value of each message when the message flow
terminates at an output node. This node has a property that allows you to specify
the message persistence of each message when it is put to the output queue, either
as the required value, or as a default value. If you specify default, the message
takes the persistence value defined for the (one or more) queues to which the
messages are written.
Security
Access and authority requirements for MQSeries client applications to connect to
queue managers and use MQSeries resources are unchanged by the introduction of
WebSphere MQ Integrator into your application environment.
You must therefore ensure that applications are authorized to put messages to
input queues serviced by the message flow that provides the required processing,
and can get messages from the message flow output queues.
SCADA applications have less control over access, because any device can connect
using any client ID it chooses, and can therefore masquerade as an authorized ID.
Define the nodes that provide the new processing you require, then define the
output node of the message flow to represent the original queue. This results in a
message being processed by the new message flow, and being written to the queue
read by the receiving application after processing is complete.
Request/reply
WebSphere MQ Integrator also supports request/reply applications. You can set up
a message flow to process the request in whatever way you need. Somewhere
within that message flow (in a database, for example), record the parameters you
need from the sending application’s message descriptor (MQMD). You need the
reply-to queue and queue manager, and perhaps other fields such as the report
options. You might find it necessary or most convenient to save the complete
MQMD.
You must then update the original MQMD with the required new values. For
example, insert a new reply-to queue and queue manager to represent the input
node of the message flow you create to handle the responses.
When the reply is processed by this second message flow, the processing must
include retrieval of the original MQMD values (such as the reply-to queue
identifier recorded by the first message flow) or the entire saved MQMD to ensure
the message is delivered as expected.
This technique works regardless of the number of replies expected to any request
message. You have to provide the extra logic and processing within the message
flows created to handle both request and reply, but this leaves the applications
themselves unchanged. This can be particularly valuable if you do not own these
applications, but are interacting with other departments or businesses.
If the reply message does not have to be processed in any way, you do not need to
create a second message flow, and the first message flow (processing the request
message) can simply propagate the original reply-to field in the message header
intact.
If you are writing a request/reply application, you can store the ReplyTo queue
and queue manager for the reply message (and any other options you require) in a
folder contained in the MQRFH2 header, instead of using a database node as
described in “Reusing existing applications” on page 85.
If you are writing new client applications, use the MQRFH2 header. This enables
your applications to exploit all the function contained in WebSphere MQ
Integrator.
Summary
This chapter has provided the information you require to make the following
design decisions for your applications:
v What message header to use (MQRFH2 for new applications, MQRFH or no
header for existing applications)
v What queues or ports to use for sending and receiving messages (they need to
be set up in the message flow nodes)
v What programming interface to use (MQI, JMS, or AMI)
v What communication model to use (point-to-point, publish/subscribe, or both)
v What other features you need (transactional processing, message persistence,
message ordering)
For information about writing the applications, having made the design decisions,
see the WebSphere MQ Integrator Programming Guide.
Figure 15 shows the messages that pass between a broker and a publisher, and
between the broker and a subscriber.
Publisher
Publish
Broker
Publish Subscribe
Subscriber
A message flow running in the broker retrieves the publication from its input
queue (read by the input node), performs any processing that is defined for
The publication node only knows about, and can therefore only provide messages
to, an application that has registered as a subscriber. When the application registers
as a subscriber, it must specify a queue on which it wants to receive messages, and
a definition that restricts the messages it wants to receive. This definition is based
on a combination of the topic of the message, or specific content within the
message, or both. This is discussed in detail in “Subscriptions” on page 92. SCADA
subscribers need to specify the topic or topics that they are interested in.
Publications
When designing a publish/subscribe system, you need to consider if publications
should be retained by the broker after they have been sent to subscribers. You can
also choose to publish to subscribers at your local broker only, instead of allowing
publications to be propagated throughout the network of brokers. These options
are described in the following sections.
Retained publications
By default, a broker discards a publication when it has sent that publication to all
interested subscribers. However, a publisher can specify that it wants the broker to
keep a copy of a publication, which is then called a retained publication. The copy
can be sent by the broker to subsequent subscribers who register an interest in the
topic. This means that new subscribers don’t have to wait for information to be
published again before they receive it.
The broker retains only one publication for each topic and subscription point, so
the old publication is deleted when a new one arrives. See “Subscription points”
on page 93 for further details about subscription points.
State information is information about the current state of something, such as the
price of stock or the current score in a soccer match. When something happens (for
example, the stock price falls, or the soccer score changes), the previous state
information is no longer required because it is superseded by the new information.
A subscriber usually wants to receive the current version of the state information
when it starts up, and to be sent new information whenever the state changes.
Event information is information about individual events that occur, such as a trade
in some stock or the scoring of a particular goal. Each event is independent of the
others.
A subscriber usually wants to receive information about events when they happen.
Global publication
A global publication is distributed throughout the broker domain to all connected
brokers. Each broker delivers a global publication to all its neighbors that have a
subscriber registered with a subscription that matches the publication. Controls are
in place to ensure these publications do not get into a loop.
It is possible to have more than one group of connected brokers within a single
broker domain. A global publication can only be delivered to brokers that are
interconnected, so its distribution is limited by the topology of your broker
domain.
Local publication
Publishers can choose to restrict access to their publications to subscribers
registered to the same broker as the publisher.
The publisher can specify the ‘Local’ option when it sends a publication. Local
publications are not forwarded to other brokers.
Conference-type applications
In some cases, a publisher might also be a subscriber. For example, a group of
applications can all subscribe to the same topic (such as “Conference”), and receive
publications on this topic. Using the ‘Other Subscribers Only’ option ensures that
each application receives publications from the other applications, but not those
that it has published itself.
Subscriptions
Subscriptions are supported by WebSphere MQ Integrator in a dynamic fashion.
The broker is unaware of the intention of the subscriber to register, and cannot
know at any time about any subscribers other than those currently subscribed.
Subscribers can register and de-register at any time, and as often as they choose.
When the publication node receives a message, it checks through the subscription
table to determine if there are any subscription requests that specify this particular
node’s subscription point, that match the content, or topic, or both, of the message
received.
For every match found, the node delivers the published message on the subscriber
queue, using the optional CorrelId if specified (otherwise a fixed value is used).
Each subscriber receives a single copy of each publication regardless of the number
of matching subscriptions the client has. SCADA applications subscribe and
publish via the SCADA port, and CorrelId is not applicable.
When the node has sent the publication to any subscribers that have a matching
subscription, the publication is discarded (unless it is a retained publication).
Subscription points
A message flow used for publish/subscribe must contain at least one of the
supplied input nodes, such as MQInput, and at least one Publication node. (Note
that SCADA publish/subscribe applications also need the publication node, or
exceptionally the SCADAOutput node.) A subscription point is the name by which
a subscriber requests publications from a particular set of publication nodes. You
can use the default subscription point, or set up specific subscription points, and
you can have more than one publication node associated with a particular
subscription point.
For example, a message flow might apply a filter to a message for publication, and
apply two different compute operations to the outputs of the Filter node before
sending the resultant messages to separate publication nodes. In this case, the
subscription point names for these publication nodes should reflect the operations
carried out by the message flow. Other message flows could have publication
nodes associated with either or both of these subscription points, if appropriate.
Alternatively, allow one publication node to have the default subscription point,
and apply a meaningful name to the subscription point of each additional
publication node. If more than one publication node in a message flow has the
same subscription point property, subscribers might receive more than one copy of
each publication, unless the conditions under which messages reach publication
nodes are mutually exclusive.
Example
Suppose you have an application that publishes stock prices. The prices that are
available from the first publication node in the message flow are in dollars. This
publication node uses the default subscription point.
You can define a second path through the message flow that takes the price in
dollars, and converts this using some defined conversion value, to produce the
same message but with the stock price in pounds. These messages are published at
a second publication node that has its subscription point property set to ‘Pounds’.
You might have another message flow (running in the same broker, or a connected
broker) that publishes stock prices in pounds on the same topic. Make sure it uses
the ‘Pounds’ subscription point, and that any other message flows publishing their
stock prices in dollars use the default subscription point.
Subscribers specifying the relevant topic (for example, ‘stock’) can then choose to
receive the information in dollars or pounds, by using the default subscription
point or the ‘Pounds’ subscription point when they subscribe.
Filters
When you register a subscription, you can specify a content-based filter to select
publications according to their contents, in addition to specifying a topic and
subscription point. WebSphere MQ Integrator needs to know how to parse the
contents of the message correctly. This can be achieved in a number of ways:
v The message is a self-defining XML message.
v The message template is defined in the MQRFH2 header.
v If the message has an MQRFH header, the message set and type are taken from
that header.
v Otherwise, the message is assumed to be as defined in the properties (domain,
set, type and format) of the input node.
This means that the contents of a field called Name in the body of a publication
message (that is, the publication data that follows the MQRFH2 header) are
extracted and compared to the string given in the expression. If the string in the
message starts with the characters “Smit”, the expression evaluates to TRUE and
the publication is sent to the subscriber.
The language used in the specification of filters for content-based routing forms a
proper subset of the Filter node language. For more information about the syntax
of filter expressions, see the WebSphere MQ Integrator Programming Guide.
If you want to select publications using filters only, without specifying a topic, you
can register a subscription with the required filter and a topic of “#” (all topics).
You then receive publications only on those topics for which you have access
authority. However, this subscription results in all publications from all connected
brokers being sent to the broker that is local to the subscriber. If you have set up a
network of brokers, you are not advised to use this technique for performance
reasons.
Local subscriptions
Subscribers can specify a local option on registration. If they do so, they are
requesting that their subscription registration is not forwarded to other brokers,
but held by the local broker. Any message published at this broker that matches
the subscription is received by this subscriber, but messages published to other
brokers are not normally available (unless the subscriber has also registered a
global subscription with an overlapping topic and the same subscription point).
Retained publications
If retained publications are used, the subscriber can specify the following options
when it registers a subscription.
Message persistence
Send all subscription registration messages as persistent messages. All
subscriptions are maintained persistently by the broker.
Topics
A topic specifies a subject of common interest to producers and consumers of
messages (publishers and subscribers). Almost any string of characters can act as a
topic to describe the topic category of a message. However, there are three reserved
characters, described in “Special characters in topics” on page 97.
Topics provide the key to the delivery of messages between publishers and
subscribers. They provide an anonymous alternative to citing specific destination
addresses. The broker attempts to match a topic on a published message with a list
of clients who have subscribed to that topic. Topics can also be used to control
which subscribers are authorized to receive publications.
You create the topics needed by your messages in a tree hierarchy, using the
facilities of the Control Center. The tree can be defined before being used, and, if
you choose, added to dynamically when new topics are created by client
applications.
Thoughtful design of topic names and topic trees can save time and effort later for
routine operations, including:
v Subscribing to multiple topics.
v Establishing security policies.
v Automatically reacting to messages on a specific topic, for example sending an
alert to a manager’s pager.
Individual topics serve as elements (that is, nodes) in the topic tree. New elements
are added as you define them through the Control Center, or are specified by
applications, to create topic trees. Although it can be flat (linear), a topic tree
usually builds from one or more root topics, adding other topics in levels of
parent/child relationships to create a hierarchical naming structure.
USA
Alabama Alaska
The structure of the tree follows a format with levels of increasing granularity:
“country/state/city”. Each string in the figure represents a node on the topic tree.
Complete topic names aggregate nodes at one or more levels in the topic tree.
Levels are separated by the “/” character (see “Special characters in topics” on
page 97). Topic names fully specify the path to a specific node from the root of the
tree in this format: “root/level2/level3”.
When you design topic names and topic trees, it is important to remember that the
message broker does not interpret or attempt to derive meaning from the topic
name itself. It only uses the topic name to send related messages to clients who
have subscribed to that topic.
Note: A finer level of filtering can be provided using content filters (see “Filters”
on page 94).
The three are the topic level separator “/”, the multi-level wildcard “#”, and the
single-level wildcard “+”. The first of these is used to introduce structure to the
topic, and can therefore be specified within the topic for that purpose. The latter
two are wildcards used for subscriptions (see “Using wildcards with topics” on
page 98) and cannot be used within a topic when a message is published.
The way the multi-level wildcard is implemented means it can represent zero or
more levels. Therefore “USA/#” can also match the singular “USA”, where #
represents zero levels. The topic level separator is meaningless in this context,
because there is no level to separate.
You can only use the multi-level wildcard next to the topic level separator
character unless you specify the multi-level wildcard on its own. For example,
“USA#” is not valid, but “#” is.
Using wildcards in subscriptions is not difficult, but needs to be done with care.
Remember that wildcards can be used at any level in the topic name string (within
the restrictions already discussed). However, use them only at the end of a topic
name. Although the single-level wildcard is accepted anywhere, the product is
optimized to it being specified at the end of the string. The multi-level wildcard
can only be used at the beginning or end of the string.
You should create well-formed applications that structure topics into subject trees.
This allows the applications to subscribe to sub-trees by placing the multi-level
wildcard “#” at the end of a topic.
If you subscribe with “#”, you receive all publications from all connected brokers.
Therefore, use this type of subscription with care, to minimize the impact of
workload in your broker network.
Multiple topics
You can specify more than one topic for a publication. One use of this is as
follows.
Suppose an application publishes information under the topic ‘Topic 1’. The
application might then be enhanced to provide additional information, which it
might publish under the topic ‘Topic 1 enhanced’. If the new publications specify
the original ‘Topic 1’ as well, then existing subscribers receive both old and new
publications, whereas subscribers who want to receive only the enhanced
publications can register with ‘Topic 1 enhanced’.
Note that an application that subscribes to both topics receives one copy only of
each publication.
Broker networks
The interactions between a broker and its publishing and subscribing applications,
described in “How publish/subscribe applications interact with a broker” on
page 89, are equally valid in a broker network, in which publish/subscribe
applications are interacting with any one of a number of connected brokers.
Publisher 1 Publisher 2
Publish 1 Publish 2
Publish 2
Broker Broker
Subscribe
(Forwarded)
Publish 1
Subscribe
Publish 2
Subscriber
Each broker records subscription information from its local subscribers and
information from remote subscribers forwarded by its neighbor brokers in its
subscription table, which holds all the current subscription information known to
that broker (for all execution groups and message flows).
Collectives
You can group your brokers in collectives. This is a way of organizing a network
of brokers to get the most effective environment for publish/subscribe applications.
You can define collectives and organize your brokers using the Control Center.
All proxy subscriptions are made with the PersistenceAsPublisher option. This
results in messages being delivered to neighboring brokers with the persistence
specified by the publisher. Client subscription persistence options only take effect
at the local broker (that is, the broker with which the clients have registered).
Topic-based security
You can control access to messages on particular topics by implementing security
measures governed by Access Control Lists (ACLs), which are based on the
definition of principals to the underlying security control facility. A principal can
be an individual user ID (for example, a logon ID), or a user group which can
contain individual users.
The WebSphere MQ Integrator User Name Server manages the set of principals
already defined in your network, on behalf of the brokers and the Configuration
Manager, for use in publish/subscribe. On Windows NT, this list of users is drawn
from the domain specified on the mqsicreateconfigmgr command.
The User Name Server is made known to both the broker and the Configuration
Manager by specifying the User Name Server queue manager on the create
command for both components.
All brokers within the broker domain interact with the User Name Server to
retrieve the total set of users and groups against which the access control lists are
built and publish/subscribe requests validated. The Configuration Manager
interacts with the User Name Server and displays users/groups in ACL creation in
the Topics view from the Control Center.
Access control is set explicitly on an individual topic, but can be inherited if there
is no explicit ACL in place. Inheritance is from an ancestor (parent) topic, defined
by the hierarchical structure of the topic tree. If none of the parent topics up to the
topic root has an explicit ACL, the individual topic inherits the ACL of the topic
root.
Any defined principal (user or group) known to the User Name Server can be
associated with the topic in this way.
You can’t associate ACLs with topics that include one or more wildcards. However,
your client application access is resolved correctly when the subscription
registration is made, even when that application specifies a wildcard in the topic.
PublicGroup authorizations
In addition to the groups that you define, WebSphere MQ Integrator provides an
implicit group, “PublicGroup”, to which all users automatically belong. This
implicit group simplifies the specification of ACLs in a topic tree. In particular, this
group is used in the specification of the ACL for the topic root. Note that the
default setting of the topic root allows publish and subscribe operation for the
“PublicGroup”. You can view and change this ACL using the Control Center, but
you cannot remove it. It determines the default permissions for the entire topic
tree. You can specify ACLs for the “PublicGroup” elsewhere in the topic tree,
wherever you want to define permissions for all users.
mqbrkrs authorizations
WebSphere MQ Integrator grants special publish/subscribe access control
privileges to members of the mqbrkrs group, and to the corresponding Domain
mqbrkrs global group if appropriate (see “Using Windows NT security domains”
on page 142 for details).
Do not configure ACLs on topics that begin with the string “$ISYS”. You are not
prevented from doing so, but they are ignored.
Persistent access control behavior is not identical to the publish and subscribe
control:
v Clients that are denied Publish access have their publication messages refused.
v Clients that are denied Subscribe access do not receive the publication.
v The persistent access control does not deny the message to subscribers, but
denies them persistence, so denied subscribers always receive messages (subject
to their subscribe access control), but always have the message sent to them
nonpersistently, regardless of the persistence of the original message.
For example, in the topic tree in Figure 18 on page 104, the topic root is not shown
but is assumed to have an ACL for “PublicGroup” that allows permission to
publish, subscribe, and receive persistent publications. (The symbol “¬” means
“not”.) Table 2 on page 104 summarizes the ACL for each topic in the tree shown.
For example, the topic “A/+” does not (and cannot) have a security policy
associated with it. Therefore, “A/+” inherits its policy from “A”. Any user can
subscribe to “A/+” because the subscribe ACL includes everyone.
If the system administrator changes the subscribe ACL of any topic that matches
“A/+”, the broker correctly enforces the ACL when the message is delivered.
The publisher
When a publisher application publishes a message on a topic, the broker verifies
that the publisher is authorized to publish on that topic:
v If the publisher is not authorized, the broker rejects the publish request and
returns a warning message to the publisher.
v If the publisher is authorized, the broker delivers the message to all authorized
subscribers to the topic.
The subscriber
When a broker receives a subscription request, it verifies the following:
v The subscriber has authority to put to the subscriber queue specified in the
subscription request. You must set up this authorization using MQSeries
facilities: this is independent of the authorizations established for the subscriber
in the Control Center.
v No other user is using the same combination of queue name, queue manager
name, and correlation ID (if specified).
v The client is permitted to subscribe to the topic, according to the ACL in force
for the combination of that topic and user. This can only be checked at this time
if the client has not specified a wildcard in the topic for subscription.
If any of these checks fail, the broker rejects the subscription request.
Summary
This chapter has provided the information you require to make the following
design decisions for your publish/subscribe applications:
v The topic trees you use for publications (including the use of wildcards for
subscriptions)
v The options you want to use as a publisher (retained, local, other subscribers
only)
v The options you want to use as a subscriber (subscription point, filter, local, new
publications only, publish on request only)
v The subscriber queues you use to receive publications (with optional correlation
identifiers)
v The use of access control lists
For information about writing the applications, having made the design decisions,
see the WebSphere MQ Integrator Programming Guide.
The information provided here is an overview: for full details you must refer to the
WebSphere MQ Integrator Installation Guide for your operating system, or to the
WebSphere MQ Integrator for z/OS Program Directory and to the Readme.txt file
provided on your product CD which gives the latest and most complete
information.
Table 3 on page 110 summarizes the installation options for all components of each
WebSphere MQ Integrator product.
The following sections identify the requirements for the components that can be
installed on each operating system.
Hardware requirements
The hardware required for AIX components of WebSphere MQ Integrator are:
v One of the following:
– IBM Eserver pSeries™ (RS/6000®)
– IBM RS/6000 POWERserver®
– IBM RS/6000 POWERstation
– IBM Scalable POWERparallel®
v Any communications hardware supporting NetBIOS, SNA LU6.2, SPX, or
TCP/IP
v A minimum of 512MB of RAM to support run-time operation
Software requirements
The following software products are prerequisites for operating WebSphere MQ
Integrator. If AIX, MQSeries, and the IBM Runtime Environment for the Java™
Platform are not at the correct level, installation will not continue. For optional
products that you can use with WebSphere MQ Integrator see the WebSphere MQ
Integrator for AIX Installation Guide.
Minimum supported levels are shown. Later compatible levels, if any, are
supported unless otherwise stated. You must refer to the WebSphere MQ Integrator
for AIX Installation Guide and the Readme.txt file to check latest Corrective Service
Diskette (CSD) and FixPack details for these products.
AIX
AIX version 4.3.3 or version 5.1.
Java
You must ensure that your AIX system includes IBM Runtime Environment for
AIX, Java™ edition, version 1.3. This level is supplied as part of the AIX product
installation, and is included in the WebSphere MQ Integrator package.
If you already have a database product in the supported list below, you can use it
to support WebSphere MQ Integrator.
Each database requires an ODBC driver: the driver for DB2 is supplied by DB2, the
drivers for Oracle and Sybase are included with WebSphere MQ Integrator.
If you do not have a suitable database installed, you can install DB2 Version 7.1,
which is included in the WebSphere MQ Integrator package. DB2 installation
requires an additional 250MB of disk storage. You also need approximately 10MB
for each set of tables you create (for the broker tables, for the configuration
repository, and for message repository). DB2 has no additional prerequisites.
This DB2 product has restricted license terms and agreements. You must only use
this DB2 installation in association with your licensed use of WebSphere MQ
Integrator for message management, and only the WebSphere MQ Integrator
components can make calls to the DB2 database.
For further details of database support for brokers, see Table 4 on page 121.
Hardware requirements
The hardware requirements for the HP-UX components of WebSphere MQ
Integrator are:
v Any HP-UX desktop or server system
v Any communications hardware supporting NetBIOS, SNA LU6.2, SPX, or
TCP/IP
v A minimum of 512MB of RAM to support runtime operation
Software requirements
The following software products are prerequisites for operating WebSphere MQ
Integrator. These prerequisites are checked at installation time but do not cause
installation to fail. However, you must ensure these prerequisite products are
available before you start to use WebSphere MQ Integrator. For optional products
that you can use with WebSphere MQ Integrator see the WebSphere MQ Integrator
for HP-UX Installation Guide.
Minimum supported levels are shown. Later compatible levels, if any, are
supported unless otherwise stated. You must refer to the WebSphere MQ Integrator
for HP-UX Installation Guide and the Readme.txt file to check latest Corrective
Service Diskette (CSD) and FixPack details for these products.
HP-UX
HP-UX Version 11
Databases
The WebSphere MQ Integrator broker requires access to a database for internal
caching and for storing internal control information.
If you already have a database product in the supported list below, you can use it
to support WebSphere MQ Integrator.
Each database requires an ODBC driver: the driver for DB2 is supplied by DB2, the
drivers for Oracle and Sybase are included with WebSphere MQ Integrator.
If you do not have a suitable database installed, you can install DB2 Version 7.1,
which is included in the WebSphere MQ Integrator package.
DB2 installation requires an additional 250MB of disk storage. You also need
approximately 10MB for each set of tables you create (for the broker tables, for the
configuration repository, and for message repository).
This DB2 product has restricted license terms and agreements. You must only use
this DB2 installation in association with your licensed use of WebSphere MQ
Integrator for message management, and only the WebSphere MQ Integrator
components can make calls to the DB2 database.
Hardware requirements
The hardware requirements for the Solaris components of WebSphere MQ
Integrator are:
v Any Sun SPARC or UltraSPARC desktop or server system
v Any communications hardware supporting NetBIOS, SNA LU6.2, SPX, and
TCP/IP
v A minimum of 512MB of RAM to support runtime operation
Software requirements
The following software products are prerequisites for operating WebSphere MQ
Integrator. These prerequisites are checked at installation time but do not cause
installation to fail. However, you must ensure these prerequisite products are
available before you start to use WebSphere MQ Integrator. For optional products
that you can use with WebSphere MQ Integrator see the WebSphere MQ Integrator
for Sun Solaris Installation Guide.
Minimum supported levels are shown. Later compatible levels, if any, are
supported unless otherwise stated. You must refer to the WebSphere MQ Integrator
for Sun Solaris Installation Guide and the Readme.txt file to check latest Corrective
Service Diskette (CSD) and FixPack details for these products.
Solaris
Solaris 8 with the latest Sun Microsystems, Inc., recommended patches
Databases
The WebSphere MQ Integrator broker requires access to a database for internal
caching and for storing internal control information.
Each database requires an ODBC driver: the driver for DB2 is supplied by DB2, the
drivers for Oracle and Sybase are included with WebSphere MQ Integrator.
If you do not have a suitable database installed, you can install DB2 Version 7.1,
which is included in the WebSphere MQ Integrator package.
DB2 installation requires an additional 250MB of disk storage. You also need
approximately 10MB for each set of tables you create (for the broker tables, for the
configuration repository, and for message repository).
This DB2 product has restricted license terms and agreements. You must only use
this DB2 installation in association with your licensed use of WebSphere MQ
Integrator for message management, and only the WebSphere MQ Integrator
components can make calls to the DB2 database.
Hardware requirements
The hardware requirements for the Windows NT components are:
v Any Year 2000 ready Intel Pentium® II (or above) processor-based IBM PC
machine or compatible, that is explicitly compatible and fully capable of running
the specified operating system, all the corresponding supporting software shown
below, and any associated applications unmodified. This machine could be an
Integrated IBM Eserver xSeries Server installed in an IBM Eserver iSeries 400
(AS/400).
v Any communications hardware supporting NetBIOS, SNA LU 6.2, SPX, and
TCP/IP.
v If all components are installed on a single system (WebSphere MQ Integrator for
Windows NT and Windows 2000 only), a minimum of 512MB of RAM are
recommended to support run-time operation.
v If only the Configuration Manager and Control Center components are installed
on a single system, a minimum of 300MB of RAM are recommended to support
runtime operation.
v If the Configuration Manager, the Control Center, and the User Name Server are
installed on a single system, a minimum of 350MB of RAM are recommended to
support runtime operation.
Software requirements
The following software products are prerequisites for operating WebSphere MQ
Integrator. These prerequisites are checked at installation time but do not cause
installation to fail. However, you must ensure these prerequisite products are
available before you start to use WebSphere MQ Integrator. For optional products
that you can use with WebSphere MQ Integrator see the WebSphere MQ Integrator
for Windows NT and Windows 2000 Installation Guide.
Windows NT
Microsoft Windows NT Version 4.0, including TCP/IP, NetBIOS, and SPX, with
Service Pack 6A, which provides relevant Year 2000 fixes and Euro support.
If you intend to run the Tour feature of the Control Center, you must install
Microsoft Internet Explorer Version 5.
The installation program checks for a current DB2 installation, and determines the
level installed. If DB2 is not present, or needs to be upgraded, installation asks you
if you want to install DB2 7.1 from the WebSphere MQ Integrator Version 2.1
product package. You can cancel this if you are using another database, or plan to
install a suitable database product after you have installed WebSphere MQ
Integrator.
Each database requires an ODBC driver: the drivers for DB2 and SQL Server are
supplied by the database product, the drivers for Oracle and Sybase are included
with WebSphere MQ Integrator.
DB2 installation requires an additional 420MB of disk storage. You also need
approximately 10MB for each set of tables you create (for the broker tables, for the
configuration repository, and for message repository). DB2 has no additional
prerequisites.
This DB2 product has restricted license terms and agreements. You must only use
this DB2 installation in association with your licensed use of WebSphere MQ
Integrator for message management, and only the WebSphere MQ Integrator
components can make calls to the DB2 database.
1. SQL Server 6.5 is not supported on Windows 2000. However, SQL Server 2000 is supported. See Table 4 on page 121.
This section does not provide you with the detailed information that you need to
perform an installation of WebSphere MQ Integrator. That information is provided
in the WebSphere MQ Integrator program directory.
Hardware requirements
The hardware requirements for the z/OS components are:
v Any processor that supports OS/390 or z/OS.
The minimum real storage requirements for a broker are around 110MB plus
230MB for each execution group. A User Name Server requires a minimum of
110MB of real storage.
Software requirements
The following software products are prerequisites for operating WebSphere MQ
Integrator. These prerequisites are checked at installation time but do not cause
installation to fail. However, you must ensure that these prerequisite products are
available before you start to use WebSphere MQ Integrator.
Minimum supported levels are shown. Any later, compatible, levels are supported,
unless otherwise stated.
v OS/390 (Versions 2.8, 2.9 or 2.10) or z/OS (Versions 1.1 or 1.2)
v OS/390 UNIX System Services (USS) Version 2.8 or later
v Hierarchical File System (HFS)
v Recoverable Resource Services (RRS)
v Language Environment Version 2.8 or later
v IBM Runtime Environment for the Java™ Platform, Version 1.3
v DB2 Version 6.1 or Version 7.1
v MQSeries for OS/390, Version 5.2
Database support
Table 4 summarizes the supported versions of databases that you can use for the
broker database and for user databases accessed in message flow nodes on each
operating system.
Table 4. Supported databases for brokers and user data
Operating system DB2¹² Microsoft SQL Oracle¹ Sybase¹
Server
AIX 6.1³⁴ not applicable 8.1.6⁴ 12
7.1³ 8.1.7
HP-UX 7.1³ not applicable 8.1.6 12⁵
8.1.7
Solaris 6.1³ not applicable 8.1.6 12
7.1³ 8.1.7
Windows NT 6.1³ 6.5 plus SP5a 8.1.6 12
7.1³ 7.0 plus SP2 8.1.7
Windows 2000 6.1³ 7.0 plus SP2 8.1.6 12
7.1³ 2000 8.1.7
OS/390⁶ 6.1⁶ not applicable not supported not applicable
7.1⁶
z/OS™ 6.1⁶ not applicable not supported not applicable
7.1⁶
Notes:
1. Supported releases of DB2, Oracle, and Sybase can participate as a Resource Manager in a distributed XA
transaction, and can be coordinated by MQSeries as the XA Transaction Manager. In WebSphere MQ Integrator,
this is referred to as supporting a globally coordinated message flow. On z/OS, all transactions are coordinated
by RRS.
2. You must use DB2 for the configuration and message repository databases maintained by the Configuration
Manager. No other database is supported for this purpose.
3. Please check the Readme.txt file for your product to check if a Fixpack is required.
4. This version of the database is not supported on AIX Version 5.1. It is supported on AIX Version 4.3.3.
5. You must apply Sybase patch EBF9641 on HP-UX.
6. PTFs are required with this product. See the WebSphere MQ Integrator for z/OS Program Directory for further
details.
Client requirements
You can run WebSphere MQ Integrator applications on all platforms for which
MQSeries provides a client.
License information
Under the terms of the WebSphere MQ Integrator Version 2.1 license agreement,
you can install one instance of each component at any one time on any one system,
with the exception of the Control Center. You can install the Control Center on
multiple systems provided that each Control Center is interacting with the same
single Configuration Manager. You can create multiple brokers on a single system.
For details of which component can be installed on which operating system, see
Table 3 on page 110.
You must refer to the documentation supplied with any other products that you
use to determine the process they employ. In particular, you must check the
documentation supplied by the databases that you use, the New Era of Networks
Rules and Formatter Support documentation, and documentation provided with
any plug-in node or parser that you integrate into the WebSphere MQ Integrator
environment.
The New Era of Networks graphical user interfaces (Formatter, Rules, and Visual
Tester), supplied on Windows NT, are available in US English and Japanese only.
DB2 Version 7.1 is fully NLS-enabled and is provided in all supported languages.
For further information about changing language settings, refer to the WebSphere
MQ Integrator Administration Guide.
This behavior might be affected by the use of other products in conjunction with
WebSphere MQ Integrator Version 2.1. You must check the documentation for other
products, including any databases that you use, and the New Era of Networks
Rules and Formatter Support component, for further specific codeset support
information.
Note: You must configure your broker domain subject to your license agreement,
described in “License information” on page 121.
Naming conventions
When you plan a new WebSphere MQ Integrator network, one of your first tasks
must be to establish a convention for naming the resources that you create within
this network. There are three aspects to this:
v “WebSphere MQ Integrator resources”
v “MQSeries resources” on page 126
v “Database resources” on page 127
The resources you must create and name within an WebSphere MQ Integrator
network are:
Brokers
When you create a broker, you give it a name that must be unique within
your broker domain. You must use the same name for the same broker
when you create it on the system in which it is installed (using the
command mqsicreatebroker) and when you create a reference to that broker
in the broker domain topology in the Control Center. The latter is a
representation of the physical broker (created by mqsicreatebroker) in the
configuration repository, and this single name links the two. Broker names
are case-sensitive except on Windows NT.
Execution groups
Each execution group name must be unique within a broker.
The Configuration Manager and User Name Server are not allocated names when
you create them. They are identified only by the name of the MQSeries queue
manager that hosts the services they provide.
There are a few restrictions for naming resources: see the WebSphere MQ Integrator
Administration Guide and the WebSphere MQ Integrator for z/OS Customization and
Administration Guide for details.
MQSeries resources
All WebSphere MQ Integrator resources have dependencies on MQSeries services
and objects. You must therefore also consider what conventions to adopt for
MQSeries object names. If you already have an MQSeries naming convention, you
are recommended to use a compatible extension of this convention for WebSphere
MQ Integrator resources.
When you create a broker or a Configuration Manager, you must specify a queue
manager name. This queue manager is created for you if it does not already exist.
Because the broker and Configuration Manager each use a unique set of MQSeries
queues, they can share one queue manager, if appropriate. However, every broker
must have a dedicated queue manager. Note that the MQSeries Everyplace queue
manager name specified must be unique across MQSeries Everyplace and
MQSeries, within WebSphere MQ Integrator.
If you set up a User Name Server in your broker domain, this also uses a unique
set of MQSeries queues. The User Name Server can therefore also share a queue
manager with a broker, or the Configuration Manager, or both.
You must ensure that every queue manager name is unique within your network
of interconnected queue managers, whether or not every queue manager is in your
WebSphere MQ Integrator network. This ensures that each queue manager can
unambiguously identify the target queue manager to which any given message
must be sent, and that WebSphere MQ Integrator applications can also interact
with basic MQSeries applications.
Database resources
You must consider the naming conventions you use for databases, both for
databases you create for WebSphere MQ Integrator product use (for broker tables,
the configuration repository, and the message repository), and for databases you
create for application use.
Your configuration and message repositories are owned and managed by the
Configuration Manager: because there is only one Configuration Manager you
should not find any conflict with names. Database tables used for brokers can be
unique and local to the broker, or can be shared because the rows of the tables
specific to each individual broker incorporate the name of the broker. You might
need to align the naming of all these databases with other databases that are in use
in your broker domain.
For details of the database tables created for WebSphere MQ Integrator use, see the
WebSphere MQ Integrator Installation Guide for your product.
You must also ensure that the databases used for application data (accessed
through message flows) are uniquely named throughout your network, so there is
no opportunity for confusion or error.
The configuration tasks for establishing a broker domain are supported by a set of
commands you can enter at the command prompt. A subset of these commands (to
create, modify, and delete) are also available through a graphical administrative
interface, the WebSphere MQ Integrator Command Assistant. For example, you can
create a broker using the command mqsicreatebroker, delete it using the command
mqsideletebroker, and modify its properties using the command
mqsichangebroker. For full details of all these commands, see the WebSphere MQ
Integrator Administration Guide and the WebSphere MQ Integrator for z/OS
Customization and Administration Guide. For full details on the Command Assistant,
see the WebSphere MQ Integrator Administration Guide.
Collective
Collective
Collective
Operating system
image
Collective
Collective
Collective
When you create a collective, the Control Center ensures that the connections you
make to other collectives and brokers are valid. You are prevented from making
connections that would cause messages to cycle forever within the network. You
are also prevented from deploying a collective of brokers that does not have the
required MQSeries connections already defined.
Any broker with at least one deployed execution group can receive publications
and subscription registrations, and receive and pass on publications from or to its
neighbors, even if you have not assigned and deployed any message flow
containing a publication node to that broker.
| You are strongly recommended to configure only one User Name Server in your
| broker domain. However, in the following circumstances, you might consider
| creating more than one (subject to your license agreement), but be aware that this
| is currently untested and therefore not recommended.
v Performance
If you have a large number of brokers in your broker domain, the requests they
send to the User Name Server can be handled more quickly if there is more than
one User Name Server. You might also benefit if your broker domain
configuration is complex, and brokers can interact more efficiently (in terms of
network traffic) if more than one User Name Server is installed.
v Resilience
Although no standby mechanism is provided by WebSphere MQ Integrator, you
might want to be able to redirect requests to a second User Name Server if a
system error occurs on the system of your first User Name Server.
If you have more than one User Name Server, and more than one is active at the
same time, you must ensure that they all can reference a single source of principal
definitions.
You must also ensure that each User Name Server is associated with a unique
MQSeries queue manager, to ensure that the User Name Server associated with the
Configuration Manager and each broker can be identified, and that there is no
conflict in the User Name Server’s use of MQSeries fixed name queues.
For more details of administering User Name Servers in your broker domain, see
the WebSphere MQ Integrator Administration Guide and the WebSphere MQ Integrator
for z/OS Customization and Administration Guide.
Client applications
WebSphere MQ Integrator client applications are applications that use the services
provided by the message flows deployed within one or more brokers in the broker
domain.
These applications can use one of two techniques for gaining access to the broker’s
services:
v An application can use an MQSeries client connection. You can use all the
MQSeries clients that are supported by MQSeries Version 5.1 or later. This
allows you to connect applications running in a wide variety of environments
into your broker domain. An application running on the same system as the
queue manager to which it connects can also use a client connection.
v An application running on the same system as a broker can use a local
connection to the queue manager that hosts that broker.
For more details about applications, putting and getting messages, and the use of
MQSeries clients, see MQSeries Clients and the MQSeries Application Programming
Guide. WebSphere MQ Integrator does not impose any particular conditions or
restrictions on applications.
Except for MQSeries Everyplace and SCADA applications, applications that use
broker services must also use MQSeries to send and receive all messages. The
resources required by your applications (queues and client connection and server
connection channels) are application specific, and you must therefore create these
resources yourself.
For more specific details of how to implement the MQSeries infrastructure for your
WebSphere MQ Integrator broker domain, see the WebSphere MQ Integrator
Administration Guide and the WebSphere MQ Integrator for z/OS Customization and
Administration Guide.
All necessary resources are defined and created for you, and you do not have to
take any additional action to enable the Control Center.
MQSeries applications can only get messages from queues owned by the queue
manager to which it is connected, although MQSeries Everyplace supports a
″remote get″ function. Therefore, if an application expects to receive messages from
a queue populated by a service within a particular broker and owned by that
broker’s queue manager, it must connect to that broker’s queue manager (either
local, or using an MQSeries or MQSeries Everyplace client connection).
MQSeries clusters
When you design the MQSeries network underlying your WebSphere MQ
Integrator broker domain, you must consider whether it is desirable to use
clustering. Queue manager clusters bring two significant benefits:
Reduced system administration
Clusters need fewer definitions to establish a network, and allow you to
set up and change your network more quickly and easily.
Increased availability and workload balancing
In addition to simpler administration, you can benefit by defining instances
of the same queue on more than one queue manager, thus distributing
workload through the cluster.
You can use clusters with WebSphere MQ Integrator, but must consider the
following points:
For broker, Configuration Manager, and User Name Server administration:
If you define the queue managers that support your brokers, the
Configuration Manager, and the User Name Server to a cluster, you can
For a fuller understanding and discussion of clusters, and the implications of using
cluster queues, see the MQSeries Queue Manager Clusters book.
Under normal circumstances, you do not need to be aware of the nature of these
databases, or how the various components use, or update, the information they
contain. However, it is useful to understand these basics:
v “Database requirements”
v “Databases and code pages” on page 138
v “Database locations” on page 138
v “Database backup and recovery” on page 139
Database requirements
WebSphere MQ Integrator uses three sets of tables within databases. You can
choose to create these in a single DB2 database if appropriate, or you can create a
different database for each set.
You can use a separate database for each broker if you choose. For more
information about supported databases, see Table 4 on page 121.
3. The message repository. This set of tables is managed by the Configuration
Manager. It contains all the message and message set definitions you have
Data stored in the broker’s local persistent store is not affected in this way.
The restrictions described above are not applicable to user data in messages. It is
your responsibility to ensure that any data in messages generated by your
applications is compatible with the code page of any database you access from
your message flows.
Database locations
The databases used by the product components can be located on any system that
is accessible by the component that creates and maintains the tables within them.
You can set up a local database for each component if you choose, or you can set
up a central database on a shared server, and set up remote access to that server
for each and every system hosting a component that requires that access.
Note: The User Name Server has no requirement for access to any of these
databases.
For more details of the databases and tables, see the WebSphere MQ Integrator
Installation Guide for your product. For more information about recovery
procedures, see the WebSphere MQ Integrator Administration Guide and the
WebSphere MQ Integrator for z/OS Customization and Administration Guide.
Planning security
An important part of planning your broker domain is considering the security
controls that are available, and the levels of security you want to implement for
those controls.
You must review the following information to understand the implications for your
configuration. The following sections describe the controls that are available, and
how they affect the operation of your broker domain:
v “Security and principals”
v “Operational security” on page 147
v “Control Center security” on page 148
v “Application security” on page 150
v “Message flow security” on page 150
You should also review the Setting up security section in the WebSphere MQ
Integrator Administration Guide, and the WebSphere MQ Integrator for z/OS
Customization and Administration Guide for further information about implementing
a security setup.
Groups
The WebSphere MQ Integrator local groups are:
v mqbrkrs
v mqbrasgn
v mqbrdevt
v mqbrops
v mqbrtpic
You must assign users (or other groups) to the local groups to allow them to
perform specific tasks. These assignments are summarized in Table 6 on page 145
and Table 5 on page 144.
The requirement for and creation of these groups differs on each operating system:
v On Windows NT, WebSphere MQ Integrator creates all these groups on the
system on which it is installed.
v On AIX systems, WebSphere MQ Integrator creates the local group mqbrkrs on
the system on which a component is installed.
v On HP-UX systems, you must create the local group mqbrkrs yourself, before
you install WebSphere MQ Integrator components.
v On Solaris systems, you must create the local group mqbrkrs yourself, before
you install WebSphere MQ Integrator components.
v The groups other than mqbrkrs are used to control Control Center tasks and
configuration repository access, and therefore are not required on UNIX
systems.
For more details about operational user IDs, see “Operational security” on
page 147.
v Control Center user IDs. You must assign these to the WebSphere MQ Integrator
groups according to the set of tasks they undertake. These groups are checked
by the Configuration Manager, and must be defined to the security domain that
you specify when you create the Configuration Manager. The user IDs you
assign to these groups must be defined to the same security domain.
For more details about Control Center user IDs, see “Control Center security” on
page 148.
v Application user IDs. Users that participate in publish/subscribe must be
assigned to groups that you create to control topic-based security. These groups
and users must be defined to the security domain that you specify when you
create the User Name Server. If you create the User Name Server on Windows
NT, you are recommended to specify the same security domain as the one you
specify when you create the Configuration Manager, but you are not forced to
do this.
For more details about application user IDs, see “Application security” on
page 150.
Because these groups are not used by MQSeries, the 12-character restriction does
not apply.
These groups must be made members of the local security domain’s equivalent
WebSphere MQ Integrator groups (Domain mqbrkrs must be a member of
mqbrkrs, and so on).
v If you install WebSphere MQ Integrator on the domain controller of a primary or
a trusted security domain, the WebSphere MQ Integrator installation program
creates the local and global groups, and adds the global groups to the local
groups.
If you do not intend to install WebSphere MQ Integrator on the domain
controller, you can create these groups yourself using the Windows NT User
Manager. These groups should be defined exactly as they appear in the list
above. So, for example, from the Windows NT User Manager for domains select
User–>New User and enter Domain mqbrasgn in the username field, and so on
for the other groups.
v If you install WebSphere MQ Integrator on a workstation member of a primary
security domain, the WebSphere MQ Integrator installation program creates the
local groups. If the global groups already exist in the primary security domain, it
also adds each global group to the appropriate local group in the local domain.
If you intend to install on a primary domain controller, it is recommended that
you install on the domain controller first so that the domain groups are created
for you, and are then automatically added to the local groups created during
install on a workstation.
v If you install WebSphere MQ Integrator on a workstation member of a trusted
domain, WebSphere MQ Integrator cannot recognize the trusted domain, and
does not add the global groups to the local groups. You must do this step
yourself.
v If you install WebSphere MQ Integrator on a workstation that is a member of
both a trusted security domain and a primary security domain, the installation
program creates the local groups. If the global groups already exist in the
primary security domain, it also adds each global group to the appropriate local
group in the local domain. It cannot detect the trusted domain and therefore
does not add the global groups of the trusted security domain to the local
groups. If you want these trusted security domain global groups in the local
groups instead of, or in addition to, the primary security global groups, you
must make these updates yourself.
When you define a new user ID to your security domain, you must assign this ID
to the domain group that is authorized for the tasks this user ID is to perform, so
that it is authorized globally.
Summary of authorizations
The authorizations required for the major tasks in both Windows NT and UNIX
environments are summarized here. For further details, refer to the WebSphere MQ
Integrator Administration Guide.
Table 5 summarizes the authorization and security requirements for some of the
major tasks in the UNIX environments.
Table 5. Summary of authorization in the UNIX environments
User is... UNIX domain
Creating broker, User Name Server v Member of mqbrkrs and mqm.
v In most situations, the Broker or User Name Server runs under
the login ID used to issue the create command. When root is
used to issue the create command, it can nominate any user to
run the Broker or User Name Server.
Installing Superuser.
Uninstalling Superuser.
Changing broker, User Name Server Member of mqbrkrs.
Deleting broker, User Name Server Member of mqbrkrs and mqm.
Starting broker, User Name Server v Member of mqbrkrs.
v Member of mqm.
v Service user ID¹.
Stopping broker, User Name Server v Member of mqbrkrs.
v Member of mqm if –q is specified
v Service user ID¹.
Listing broker, User Name Server Member of mqbrkrs.
Changing, displaying, retrieving trace Member of mqbrkrs.
information
Running User Name Server (login ID) Member of mqbrkrs. The broker or User Name Server runs
under the login ID specified in the create command.
Running broker (MQSeries non-trusted Member of mqbrkrs. The broker or User Name Server runs
application) (login ID) under the login ID specified in the create command.
Running broker (MQSeries trusted application) v login ID must be mqm.
(login ID) v mqm must be a member of mqbrkrs.
Clearing, joining, listing MQSeries Member of mqbrkrs.
publish/subscribe brokers
Running publish/subscribe applications Any user, subject to WebSphere MQ Integrator topic and
MQSeries queue access control.
Warning:
1. When the service user ID is root, all libraries loaded by the broker, including all user-written plug-in libraries
and all shared libraries that they might access, also have root access to all system resources (for example,
filesets). You must review and assess the risk involved in granting this level of authorization.
Notes:
1. If you are running in a primary domain, you can also:
v Define the user ID in the domain PRIMARY.
v Add this ID to the group PRIMARY\Domain mqm.
v Add the PRIMARY\Domain mqm group to the group
SALONE\mqm.
Operational security
When you create and activate your broker domain, there are two aspects of
security that control the authorizations of users to perform these tasks:
Configurational security
Controls the right of users to configure and manage WebSphere MQ
Integrator resources using the supplied commands.
Run-time security
Controls the right of users to execute processes as service user IDs.
For a full definition of the commands that support these tasks and the authority
required to invoke each one, see the WebSphere MQ Integrator Administration Guide
and the WebSphere MQ Integrator for z/OS Customization and Administration Guide.
Configurational security
WebSphere MQ Integrator provides a set of configuration and operation
commands that support system administration tasks that are not available through
the Control Center.
Run-time security
When you start the broker, Configuration Manager, and User Name Server
components on Windows NT, they are started up as Windows NT services running
under the user ID that you specify as the service user ID when you create that
component. When you start the broker or the User Name Server components on
UNIX, they are started as normal processes running under the service user ID.
The authorizations required by these user IDs are illustrated in Table 6 on page 145
and Table 5 on page 144. You can find a more complete summary of authorizations
in the WebSphere MQ Integrator Administration Guide and the WebSphere MQ
Integrator for z/OS Customization and Administration Guide.
Database security
The service user IDs for the brokers and the User Name Server must also be
authorized to access databases:
v The Configuration Manager service user ID must be authorized for create and
update tasks on the database in which both configuration and message
repositories are defined. (This might be one or two databases: both must be
DB2.)
v Each broker service user ID must be authorized for create and update tasks on
the database that contains the broker internal tables.
v Each broker service user ID must also be authorized for the appropriate access
for every database referenced and accessed by a message processing node in any
deployed message flow.
MQSeries security
Use existing MQSeries facilities for securing connections between components,
except if you use the channel security exit. You have to specify this as a parameter
when you invoke the Control Center. See the WebSphere MQ Integrator
Administration Guide for details on how to do this. See the MQSeries System
Administration for details on MQSeries security.
To select a specific role, the user must choose one of the following from the
File->Preferences dialog (User’s role pane):
1. Message flow and message set developer
This role equates to the permissions of the mqbrdevt group members.
2. Message flow and message set assigner
This role equates to the permissions of the mqbrasgn group members.
3. Operational domain controller
This role equates to the permissions of the mqbrops group members.
The role determines what the user can view within the Control Center, and
therefore limits the tasks that are available to that user. However, the authorization
of that user to perform a given task is not checked until the request is processed
by the Configuration Manager. To be able to perform any action, therefore, a user
must be defined to the security domain specified when you created the
Configuration Manager.
You must define the user ID IBMMQSI2 yourself (using the Windows NT User
Manager) to the security domain specified when you create the Configuration
Manager using the mqsicreateconfigmgr command. You must also add this user
ID to the WebSphere MQ Integrator groups necessary for it to be authorized to
complete the task required on the system on which you are running the Control
Center:
v If you are using a primary or trusted security domain, you must add this user
ID to the appropriate Domain mqbrxxxx groups.
v If you are using a local security domain, you must add this user ID to the
appropriate local mqbrxxx groups.
Application security
You need to consider application security in two areas:
v “Message flow security”.
v “Topic-based security”.
The user IDs under which applications are executing must therefore be authorized
to write to, or read from, the queues used by the message flow the applications are
interacting with.
You must also authorize every subscriber (that is, every application making a
subscription registration) to put messages to the queue
SYSTEM.BROKER.CONTROL.QUEUE. (This does not apply to MQSeries
Everyplace applications.)
You must use the facilities provided by MQSeries to restrict which users are
permitted to have “put” or “get” access to the queues. (This does not apply to
MQSeries Everyplace applications.) For more details of applying security to
MQSeries resources, see MQSeries System Administration.
Note that SCADA applications do not support message flow security. The
SCADAInput node accepts all messages that the listener detects at the connected
port.
Topic-based security
If you have applications that use the publish/subscribe services of a broker, you
have the option of applying an additional level of security to the topics on which
messages are published and subscribed. This additional security, known as
topic-based security, is managed by the User Name Server. The User Name Server
and the benefits of topic-based security are discussed in “Employing topic-based
security” on page 129.
If you have already created the Configuration Manager and one or more brokers,
you must stop them (using mqsistop) before you make these changes. You can
then restart the Configuration Manager and the brokers. and start the User Name
Server, using mqsistart. These steps are illustrated in the MQSeries MQ Integrator
Installation Guide.
When you have configured your broker domain components to incorporate the
User Name Server, you can implement topic-based security by setting up Access
Control Lists (ACLs) from the Topics view of the Control Center. ACLs are lists of
principals, and are assigned to topics to control which principals can publish,
subscribe, and request persistent delivery on those topics.
The principals you can include in an ACL are notified to the Control Center by the
Configuration Manager, which requests the information from the User Name
Server.
v If you created the User Name Server on Windows NT, it extracts principal
information from the domain server of the security domain that you specified
when you created the User Name Server. You must therefore define all users and
groups required by your implementation of topic security to the security domain
specified when you created the User Name Server.
v If you created the User Name Server on UNIX, it extracts principal information
from the user/group database. You must therefore define all users and groups
required by your implementation to the database accessed by the User Name
Server.
After the broker has determined that a client has the authority to receive a
particular publication, it makes a further check as to whether the client is
authorized to request persistent delivery on this topic. If the client has requested
persistent delivery, but is not authorized to do so, the broker does make the
message available to the client, but nonpersistently.
For more details on how to implement topic security, see WebSphere MQ Integrator
Using the Control Center, and for more detailed information on aspects of topic
security, see “Topic-based security” on page 101.
The bit order within a byte is never reversed. Byte order normal means
that the least significant digit occupies the highest address.
Systems that process numbers in normal byte order are Big Endian
(System/390, AS/400, and UNIX). Systems that process numbers in
reversed byte order are Little Endian (mainly PCs).
For more information about code page support in MQSeries, see the
MQSeries Application Programming Reference book.
When you use WebSphere MQ Integrator, you can use the data conversion facilities
of MQSeries, or WebSphere MQ Integrator, or both.
MQSeries facilities
Headers and message body are converted according to the MQMD values,
and other header format names. You might have to set up data conversion
exits to convert the body of your messages.
When you use MQSeries facilities, the whole message is converted to the
specified encoding and CCSID, according to the setting of the format in the
MQSeries header.
The change commands listed, like the create and delete commands discussed in
“Planning WebSphere MQ Integrator resources” on page 125, can be invoked using
the Command Assistant.
For information on the commands that can be used on the z/OS platform, see the
WebSphere MQ Integrator for z/OS Customization and Administration Guide. For more
information about managing the MQSeries resources associated with these
WebSphere MQ Integrator components, see MQSeries System Administration,
MQSeries Clients, and MQSeries Intercommunication.
For further information, and details of how to complete the tasks outlined here, see
WebSphere MQ Integrator Using the Control Center.
The following topics describe how you can monitor your broker domain, and
analyze its activities to achieve these goals:
v “Problem determination”
v “Managing workload and performance” on page 160
v “System management” on page 161
Problem determination
When your broker domain is configured and activated, you might want to view
further information about how its operation is progressing, or you might need to
detect why it is not behaving as you expect.
You can also use information generated by other products used by WebSphere MQ
Integrator (MQSeries, the databases, and ODBC) to help resolve problems.
To solve problems at the message flow level, see “Using the Debugger to solve
message flow problems” on page 67 where the Debugger facility of the Control
Center is described.
Traces
WebSphere MQ Integrator always records a minimum level of activity in the
broker domain. You can activate further traces of the major components (broker,
Configuration Manager, and User Name Server), of the execution groups and
message flows you create within brokers, and for command utility programs.
Local error log messages: WebSphere MQ Integrator writes some events to local
logs supported by the operating system in which the errors are generated.
Although you cannot select whether WebSphere MQ Integrator takes the action to
write these events to the Application event log, you can control the activity of the
event log itself, at the operating system level.
Records in the local log are written by all product components to record significant
events. For example, a record is written when you stop and start brokers, the
Configuration Manager, or the User Name Server. If an interaction with a database
fails, this is also recorded. In some situations (for example, when you start the
Configuration Manager), you are advised to view this information to ensure that
the action you have taken completes successfully. You can also use the contents of
this log for reference and error information when you are developing and running
message flows.
The local logs are of interest to your local operations department because they
provide initial information about failures and unexpected behaviors. The
information in these logs might also be requested to support the service trace
information generated at the request of your IBM Support Center.
Controlling user trace: Four commands are provided to activate optional traces,
and to access and review the contents of the logs generated. These commands are:
mqsichangetrace
to activate and deactivate trace, or to change trace settings (for example,
trace logfile size).
mqsireporttrace
to report the current trace settings.
mqsireadlog
to access and retrieve log file contents in XML format.
mqsiformatlog
to format an XML log file (generated by mqsireadlog) for easier
interpretation.
For details of these commands and their usage, see the WebSphere MQ Integrator
Administration Guide or the WebSphere MQ Integrator for z/OS Customization and
Administration Guide.
For example, if you do not have command line access on the system on which the
broker is running, the Control Center communicates with the remote broker to
achieve the same actions. The options available through this interface are a subset
of the support provided by the commands invoked on the command line on the
broker’s local system. However, you must have local access to be able to extract
the trace output from the system on which it is generated.
For details of trace options in the Control Center see WebSphere MQ Integrator
Using the Control Center.
Tracing message flows: When you create a message flow, you can include a Trace
node. You can use the trace node to record additional information about the
message being processed. The information generated is written to the standard
trace logs or to a separate file.
For more details about these options, see WebSphere MQ Integrator Using the Control
Center.
Messages
When you invoke any of the commands that WebSphere MQ Integrator supplies
(for example, mqsicreatebroker or mqsistart), responses are returned in the form
of messages. On z/OS systems, messages are returned to the operator console.
These messages have the prefix BIP and a numeric value. Some messages are also
generated by the installation and un-installation programs, and by the Control
Center. You can check the full meaning of these messages, and the actions you can
take, in the WebSphere MQ Integrator Messages book.
For more information about WebSphere MQ Integrator messages, see the WebSphere
MQ Integrator Administration Guide.
You can find more information about these additional sources in the WebSphere MQ
Integrator Administration Guide.
There are several areas you can consider in making best use of the resources you
have defined. These are:
v “Using MQSeries trusted applications”
v “Tuning message flow performance” on page 161
This does not affect the operation of any MQSeries channel agents or listeners. If
you want to run these as trusted applications, you must follow the guidance in
MQSeries Intercommunication, in the section entitled “Running channels and
listeners as trusted applications”.
You must be aware that MQSeries places a number of restrictions on the operation
of a trusted MQSeries application. If you want to enable a broker as a trusted
application, you must first review these restrictions for applicability to your own
environment. They are documented in the MQSeries Application Programming Guide,
in the section entitled “Connecting to a queue manager using the MQCONNX
call”.
For more details of these properties, see WebSphere MQ Integrator Using the Control
Center and the Control Center online help.
System management
WebSphere MQ Integrator uses architected messages to publish events related to
the status, and change in status, of the brokers. These messages are published
using the reserved topic root $SYS in code page 1208.
Details of implementing the advanced functions discussed here are provided in the
WebSphere MQ Integrator Programming Guide.
If you plan to program using either of the supplied plug-in interfaces, you must
install the “Samples and SDK” optional component on at least one system. The
SDK provides the required header files and contains samples that you can modify
to your own requirements.
You can use your new node types or parsers on more than one operating system, if
you make them platform independent. You can achieve this platform independence
by using the ANSI standard C or Java programming languages.
Refer to the WebSphere MQ Integrator Programming Guide for further information on:
v The programming interface for both plug-in types, including all the calls and
parameters
v How to create the icon, signature, and help files for the message processing node
type using the Plug-in SmartGuide in the Control Center
v How to build the required components for each interface
v The content of the supplied sample files
You can use your new node types with existing primitive node types to create
message flows to achieve the processing your messages require.
However, you might need to use messages that are not covered by these default
parsers. To allow for this possibility, WebSphere MQ Integrator provides an
external interface that enables you to supply your own parsers. These can be
invoked by the broker processes whenever a message of this new type is received,
and can work in the broker alongside the default parsers.
When you define a message, one of its attributes is the message domain. This is
the value that tells the broker which parser must be invoked to interpret the
bit-stream.
If you are migrating from MQSeries Integrator Version 2.0, Version 2.0.1 or Version
2.0.2 to WebSphere MQ Integrator Version 2.1, see “Release to release migration”
on page 40, see also the Appendix A, “Planning for migration and integration”.
You should also refer to the Readme.txt file that is provided on the product CD.
This gives the latest information about migration requirements.
Installation
You should consider these areas when you plan the installation of WebSphere MQ
Integrator Version 2.1:
v “Backing up configuration files” on page 168
v “Preserving your MQSeries Integrator Version 1 rules and formats” on page 168
v “Uninstallation of MQSeries Integrator Version 1” on page 168
2. It is also possible to upgrade from New Era of Networks’s MQIntegrator product. The tasks required are identical to those
specified for migrating from MQSeries Integrator Version 1.0. However, the presence of this product is not detected by the
WebSphere MQ Integrator Version 2.1 installation program.
You are therefore advised, but not forced, to back up your MQSeries Integrator
Version 1 configuration files.
For details of configuration files, see the WebSphere MQ Integrator Installation Guide
for your product.
If you have rules and formats defined by any previous version of MQSeries
Integrator (including Version 1.1, Version 2.0.1, and Version 2.0.2) that you want to
reuse, you must export this data from your previous version (using the tools
supplied with that version) then import it into WebSphere MQ Integrator Version
2.1 (using the tools supplied with V2.1). This converts the data into a format
suitable for use with WebSphere MQ Integrator V2.1.
Run-time
You must consider these operational aspects when planning your migration from
MQSeries Integrator Version 1 to WebSphere MQ Integrator Version 2.1. These are:
v “New Era of Networks rules and formats”
v “Setting up a message flow that emulates the functionality of the Version 1 Rules
engine” on page 169
You can encrypt the nnsyreg.dat file to protect the password. See the New Era of
Networks Rules and Formatter Support for WebSphere MQ Integrator System
Management Guide for more details.
You must be aware that the New Era of Networks Rules and Formats defined by
the New Era of Networks Rules and Formatter GUI tools are not distributed
automatically to all brokers that need them, as those defined by the WebSphere
MQ Integrator Version 2.1 Control Center are. You must configure your system so
that every broker running a message flow that accesses your New Era of Networks
Rules and Formats has access to the database that contains these definitions. It
should also be noted that only one rules and formatter database can be accessed
per machine. This means that if two brokers are installed in the same machine they
must both access the same rules and formatter database — there can only be one
nnsyreg.dat on a particular machine.
WebSphere MQ Integrator Version 2.1 provides full support for MQRFH headers,
as well as MQRFH2 headers. If you are developing new applications, you are
recommended to use the new MQRFH2, which offers superior function.
For further details of these tasks, see the WebSphere MQ Integrator Administration
Guide.
You can therefore continue to maintain existing data, and can add new definitions
to your existing set. Refer to the New Era of Networks Rules and Formatter Support for
WebSphere MQ Integrator User’s Guide for information on using these user
interfaces.
The New Era of Networks Formats are represented in the Control Center under the
Message Sets tab. This is so that New Era of Networks Formats can be used as
Inputs or Outputs for the purpose of defining field mappings in the Compute or
Database properties panels. Although the New Era of Networks Formats can be
viewed from the Message Sets tab, they cannot be edited, and you are
recommended to use the New Era of Networks Formatter GUI (which can be
launched from the Control Center) for viewing as well as editing existing New Era
of Networks Formats or creating new ones.
Before you deploy either default message flow, you must edit the node properties
of the MQInput and MQOutput nodes to align with your MQSeries Integrator
Version 1 use of queues.
You must also ensure that any broker to which you assign this message flow can
access the database in which your formats and rules are defined.
You can also use New Era of Networks format messages with other message
processing nodes within a message flow. You must define a message flow with the
message processing nodes providing the function your message processing
requires. The nodes detect the presence of a New Era of Networks header and
invoke the New Era of Networks parser to interpret the message.
If you want to change the content of the message, you must use the
NEONTransform node, the NeonFormatter node or the NEONMap node. You can
also use the Compute node to write New Era of Networks format messages.
You can also modify the default message flow supplied to include additional
function. For example, you can cause all messages to be stored in a warehouse by
adding a Warehouse node into the message flow before the NEONRulesEvaluation
node.
WebSphere MQ Integrator Using the Control Center provides details on how to define,
modify, assign, and deploy message flows.
You can increase the throughput of New Era of Networks messages by assigning
the same message flow to multiple execution groups on a single broker, or to
multiple brokers, or both. WebSphere MQ Integrator Version 2.1 implements
synchronization controls around the New Era of Networks message processing
nodes to ensure the integrity of the multiple flows.
3. The message flows only emulate the function of an unmodified MQSeries Integrator Version 1.1 daemon. If you have modified
the daemon in your MQSeries Integrator Version 1.1 product, these message flows do not provide identical function. You must
also modify these message flows to recreate the modifications you have made to the daemon.
If you are migrating from MQSeries Integrator Version 1.0, your user exits must be
modified to be compatible with MQSeries Integrator Version 1.1 before they can be
used with WebSphere MQ Integrator Version 2.1.
MQSeries Publish/Subscribe
MQSeries Publish/Subscribe is supported software that provides publish/subscribe
application support for MQSeries applications. It is available from the IBM Web
site, and can be installed on several MQSeries Messaging products servers,
including:
v AIX
v HP-UX
v Solaris
v Windows NT and Windows 2000
v OS/390 and z/OS
If you do not upgrade MQSeries to these specified service levels, some publications
sent by WebSphere MQ Integrator brokers might be wrongly put to the dead-letter
queue (DLQ) by an MQSeries Publish/Subscribe neighbor.
There are three possible scenarios for exploiting the two networks:
1. You can choose to have two independent broker networks, and therefore have
two separate broker domains for publish/subscribe applications. This scenario
is described in “Scenario 1: running two independent broker networks” on
page 185.
2. You can connect the two networks to allow publications and subscriptions to
flow throughout the integrated network. Further details are provided in
“Scenario 2: creating and operating a heterogeneous network” on page 185.
3. You can selectively and gradually migrate individual brokers from MQSeries
Publish/Subscribe to WebSphere MQ Integrator Version 2.1. For more guidance
on this option, see “Scenario 3: migrating MQSeries Publish/Subscribe brokers”
on page 186.
Before you can make this choice, and create your migration plan, you must be
aware of the differences in the two products, described in “Product differences”.
Product differences
There are differences in the support provided by the two products that you must
consider when you plan how to integrate your two networks. These are discussed
in the following sections:
v “Message formats” on page 173
v “Streams” on page 175
v “Stream authority” on page 178
v “Topics” on page 180
v “Wildcards” on page 180
v “Default topic routing” on page 182
v “Retained publications” on page 182
v “Metatopics” on page 182
v “Subscription points” on page 183
Message formats
You are recommended to use the MQRFH2 header for new client applications
developed for the WebSphere MQ Integrator broker. These applications can then
access all the functions that are provided by WebSphere MQ Integrator.
However, client applications that need to communicate with one another using
publish/subscribe can do so regardless of the format of the messages they are
using: WebSphere MQ Integrator provides automatic conversion to ensure the
subscriber receives the message in the desired format.
Table 7 shows the mapping between equivalent fields in the MQRFH and
MQRFH2 headers.
Table 7. MQRFH and MQRFH2 mapping
MQRFH field name MQRFH2 field name
MQPSCommand Command
MQPSDelOpts DelOpt
MQPSPubOpts PubOpt
MQPSPubTime PubTime
MQPSQMgrName QMgrName
MQPSQName QName
MQPSRegOpts RegOpt
MQPSSeqNum SeqNum
MQPSTopic Topic
Field names that are not included in Table 7 do not have a common meaning, or
are only valid in one header or the other. Field names that are not recognized, or
not appropriate to the other format, are not copied. For example, the following
name-value area of an MQRFH:
MQPSCommand Publish
MQPSPubOpts RetainPub
MQPSStreamName SAMPLE.BROKER.RESULTS.STREAM
MQPSTopic "Sport/Soccer/State/LatestScore/Team1 Team2"
Content-filters can also be specified by MQRFH2 subscribers even if the topic that
they are subscribing to is one published in MQRFH format by an MQSeries
Publish/Subscribe client, although there is some limit to compatibility. For more
information, see “Content-based filtering” on page 183.
Table 8 summarizes the valid options for clients using the different message
formats.
Table 8. Summary of message option support
Message Option Name Option Value Support
All requests MQPSCommand DeletePub yes
(client to broker) DeregPub yes1
DeregSub yes
Publish yes
RegPub yes1
RegSub yes
ReqUpdate yes
MQMD.Format MQFMT_PCF no
MQFMT_RF_HEADER yes
MQMD.Report MQRO_PAN yes
MQRO_NAN yes
MQMD.MsgType MQMT_REQUEST yes
MQMT_DATAGRAM yes
MQMD.MsgId yes
MQMD.CorrelId yes4
MQMD.ReplyToQ yes
MQMD.ReplyToQMgr yes
MQPSStreamName prefixed on topic3
MQPSTopic yes
All requests except MQPSQMgrName yes
Delete Publication
MQPSQName yes
MQPSRegOpts CorrelAsId yes
Delete Publication MQPSDelOpts Local yes5
Deregister Publisher1 MQPSRegOpts DeregAll yes
Deregister Subscriber MQPSRegOpts DeregAll yes
Publish MQMD fields As specified by MQPS2 yes
MQPSRegOpts Anon yes7
Local yes5
DirectReq yes1
MQPSPubOpts NoReg yes1
RetainPub yes (set by publisher)
IsRetainedPub yes (set by broker)
OtherSubsOnly yes
MQPSPubTime yes
MQPSSeqNum yes
1
MQPSStringData yes
MQPSIntData1 yes
Special rules also apply for MQRFH2 subscribers if the information is being
published on an MQSeries Publish/Subscribe stream other than the default stream,
SYSTEM.BROKER.DEFAULT.STREAM.
Streams
MQSeries Publish/Subscribe primarily use streams as a means to partition the
topic name space. Sets of related topics could be grouped together into separate
streams allowing different security controls to be applied, and the publishing
workload of the broker to be better balanced.
Stream names now only have the partitioning effect on the topic name space.
WebSphere MQ Integrator provides more flexible security controls that allow
authorization to be applied to an individual topic level. Also, the publishing
workload of the broker can be more easily controlled by creating additional
instances of publication message flows either serving the same or different input
queues.
When the stream-name associated with a message is set to something other than
SYSTEM.BROKER.DEFAULT.STREAM, the message is processed as if the topic (or
topics) mentioned within the message had been prefixed with the string
“$SYS/STREAM/<streamname>/”. That is, a subscription to Topic1 that specifies
a stream name of StreamX is processed as if the subscription had been made to
topic “$SYS/STREAM/StreamX/Topic1”.
Each Publication node has an Implicit Stream Naming property that defaults to true.
This default option results in behavior identical to that in MQSeries
Publish/Subscribe when an MQRFH publication does not contain an explicit
stream name. If this property is false, and the publication contains no explicit
stream name, SYSTEM.BROKER.DEFAULT.STREAM is assumed.
Table 9 summarizes the options available to both MQRFH and MQRFH2 client
applications publishing messages to either the default stream, or a specific
MQSeries Publish/Subscribe stream. An example stream name of StreamX is used
to illustrate the options.
Table 9. MQRFH and MQRFH2 client application options
MQRFH publisher MQRFH2 publisher
Subscriber notes:
S1 Subscriber subscribes either without a stream name or
with stream name “SYSTEM.BROKER.DEFAULT.STREAM”.
S2 Subscriber subscribes with stream name “StreamX”.
S3 Subscriber subscribes on topic without adding
“$SYS/STREAM/<streamname>/”.
Publisher notes:
P1 Publisher publishes on any queue specifying stream name
“SYSTEM.BROKER.DEFAULT.STREAM”. or publishes without
specifying a stream name on any queue with the Implicit
Stream Naming property set to false.
P2 Publisher publishes on any queue specifying stream name
“StreamX”, or publishes without specifying a stream name on
queue “StreamX” with the Implicit Stream Naming property set
to true.
P3 Publisher publishes on any queue without adding the
prefix “$SYS/STREAM/<Stream>/” to the topic.
P4 Publisher publishes on any queue and adds the prefix
“$SYS/STREAM/StreamX/” to the topic.
However, to make these publications available, you must define the stream queues,
and define and deploy the message flows that support them, to the WebSphere
MQ Integrator broker.
Streams: Streams:
BULLETIN.STREAM BULLETIN.STREAM
RESULTS.STREAM SYSTEM.BROKER.DEFAULT.STREAM
STOCK.STREAM WEATHER.STREAM
SYSTEM.BROKER.DEFAULT.STREAM
You only need to define stream queues and associated message flows to the
WebSphere MQ Integrator broker for the other streams shown in Figure 20 on
page 177 if one of its MQSeries Publish/Subscribe neighbors can send a message to
one of these queues. A message is sent if one of the following occurs:
1. A subscription to a publication on one of these streams is registered by a client
of the WebSphere MQ Integrator broker.
2. A DeletePublication command for the stream is issued by a client anywhere
within the broker network.
If you are unsure about whether the above cases might occur, it is recommended
that you create stream queues and message flows in the WebSphere MQ Integrator
broker for every stream that is supported by an MQSeries Publish/Subscribe
neighbor. If you do not do this, you might see the following results:
v Messages sent from MQSeries Publish/Subscribe brokers are put on the
dead-letter queue (DLQ) of the WebSphere MQ Integrator broker if the stream
queue does not exist on that broker.
v Messages build up on stream queues on the WebSphere MQ Integrator broker if
the stream queue exists but no message flow is deployed to service it.
Stream authority
In MQSeries Publish/Subscribe, all publish and subscribe authority checks are
performed against the stream queue. Publishing applications need authority to put
messages to the stream queue. The MQSeries Publish/Subscribe broker also checks
the authority of subscribing applications which require browse authority on the
stream queue. A subscribing application also needs to have put authority for the
queue that it nominated to receive its publications.
The same check is made by WebSphere MQ Integrator brokers, but the subscribe
authority (browse) is no longer checked. Instead, WebSphere MQ Integrator
provides a more granular security model in which both publish and subscribe
access can be defined in a hierarchical manner right down to an individual topic
level. You can implement this model by creating Access Control Lists (ACLs) using
the Control Center. For more information about ACLs, refer to WebSphere MQ
Integrator Using the Control Center.
Figure 21 illustrates the stream authorities that are required. This example assumes
(1) “ ” (root topic)
(2) “$SYS/STREAM/”
that you have updated the default ACL on the topic root for principal PublicGroup
with authority for publish, subscribe, and persistent delivery all set to deny.
Using this example, assume that the following groups are defined:
v PDefault: the group of users authorized to publish on the default stream
v SDefault: the group of users authorized to subscribe to the default stream
v PStreamX: the group of users authorized to publish on StreamX
v SStreamX: the group of users authorized to subscribe to StreamX
v PStreamY: the group of users authorized to publish on StreamY
v SStreamY: the group of users authorized to subscribe to StreamY
Topics
In MQSeries Publish/Subscribe, all publications must be tagged with an arbitrary
character string called a topic. This defines the subject matter of the publication.
MQSeries Publish/Subscribe recommends, though does not enforce, that topic
strings are structured into a number of fields or levels using the forward slash,
“/”, as a delimiter.
WebSphere MQ Integrator publications also have an associated topic, and the topic
structure is delimited by the forward slash character. Therefore, if your existing
applications follow the MQSeries Publish/Subscribe recommendation, they are
better positioned to exploit the function provided by WebSphere MQ Integrator,
which allows the structure of the topic to be externalized.
WebSphere MQ Integrator allows you to control users’ authority to publish on, and
subscribe to, any topic at any level within the topic structure.
Wildcards
Wildcards can be used by subscribing applications to broaden the scope of
publications they register an interest in. By specifying a wildcard, the subscriber is
specifying a general pattern of the topics they are interested in, rather than an
explicit topic.
The full range of function of the WebSphere MQ Integrator wildcards are only
available to MQRFH2 clients. Subscriptions made by MQRFH clients to WebSphere
MQ Integrator brokers for topics that contain either of the WebSphere MQ
Integrator wildcards are rejected with the MQRCCF_TOPIC_ERROR reason code.
When applications that use MQRFH2 use the WebSphere MQ Integrator wildcards
to target multiple publications from within the MQSeries Publish/Subscribe
network, wildcard mapping is performed. In most cases, the broker replaces both
the multi-level wildcard and single-level wildcard characters with an asterisk. This
does not provide an exact match for either of the WebSphere MQ Integrator
wildcards, but ensures a superset of the required publications are sent to the
WebSphere MQ Integrator broker. The WebSphere MQ Integrator broker evaluates
the “#” and “+” wildcards to match the correct publications.
Retained publications
In MQSeries Publish/Subscribe, retained publications are published as
nonpersistent messages and are therefore automatically deleted when the broker’s
queue manager is restarted. In WebSphere MQ Integrator, retained publications are
persistent and are preserved across queue manager restarts.
Metatopics
MQSeries Publish/Subscribe brokers provide information about publishers and
subscribers via a special set of topics called metatopics. These topics start with the
“MQ/S/” or “MQ/SA/” prefix, and are subscribed to by two categories of
applications, administration programs and clients.
The following considerations apply for the two categories of application in the
WebSphere MQ Integrator environment:
v Administration programs such as the amqspsd sample use the MQSeries
Publish/Subscribe metatopics to display subscription information. This
information is provided by WebSphere MQ Integrator in the Control Center,
which provides an interface to view and delete subscriptions throughout the
broker network.
v Applications use messages published on MQSeries Publish/Subscribe
metatopics, for example, to request information about their own current
subscriptions.
A client program can subscribe to WebSphere MQ Integrator system topics and
process the event publications. WebSphere MQ Integrator does not provide a
topic that reports all current subscriptions for a particular topic or client, but
does publish whenever subscriptions are added or removed. This information is
published as event information not state information (MQSeries
Publish/Subscribe metatopics are published as state information). For more
information about event and state publications, see “State and event
information” on page 90.
For example, stock prices might be published with a default currency of dollars,
but might be required by subscribers in a number of other currencies.
This can be achieved by defining additional paths through the message flow that
take each publication and convert the dollar stock price into another currency, for
example sterling, before it is passed to its Publication node.
Subscribers can then subscribe to stock prices using a combination of topic and the
subscription point that provides the data in the correct currency.
Content-based filtering
WebSphere MQ Integrator supports content-based filtering of publications. This is
a powerful and flexible option for publish/subscribe application suites. This option
significantly enhances the ability of the MQRFH2 subscriber to restrict the
messages they want to receive.
When an MQRFH2 client registers a subscription with the local broker, it can
specify a filter to be applied to the content of fields within each publication
message.
For more details about message formats, their construction, and the message
repository, see WebSphere MQ Integrator Programming Guide and WebSphere MQ
Integrator Working with Messages.
Throughput
In MQSeries Publish/Subscribe a single thread processes publications on each of
the stream queues. This guaranteed the order in which publications were processed
from the queue. When you consider throughput for publications in an WebSphere
MQ Integrator broker domain, you must also consider the importance of the order
in which messages are published. The techniques to increase throughput do not
necessarily guarantee order.
If you want to run in this mode with two separate, independent networks, you do
not have to take any specific actions. You can retain your existing MQSeries
Publish/Subscribe network, and install and configure an WebSphere MQ Integrator
Version 2.1 network, without any interaction.
Your existing applications can continue to work unchanged. However, there can be
no interchange of publications in this scenario.
You must be aware that a single queue manager cannot support both an MQSeries
Publish/Subscribe broker and an WebSphere MQ Integrator Version 2.1 broker. If
you have brokers of both types on the same system, each broker must have its
own dedicated queue manager.
You can implement this scenario while you assess the new product and the extra
functions contained within the publish/subscribe support. It also lets you plan for
the extent of integration or migration, or both, that you require, without affecting
your current environment.
Applications registered with all brokers (WebSphere MQ Integrator Version 2.1 and
MQSeries Publish/Subscribe) are not aware that there is a heterogeneous network,
and, subject to authorizations being in place and the product differences addressed,
can publish and subscribe freely.
You also create and operate a heterogeneous network while you implement
migration, because you are not required to migrate your whole MQSeries
Publish/Subscribe broker network in one step. See “Scenario 3: migrating
MQSeries Publish/Subscribe brokers” for details about migrating individual
brokers.
Details of how you implement these actions are described in the WebSphere MQ
Integrator Administration Guide.
You must therefore ensure you have considered the move carefully, and have taken
any actions or decisions necessary to ensure a smooth transition.
Table 10 on page 188 identifies the areas of potential incompatibility due to the
upgraded behavior of WebSphere MQ Integrator. It provides some hints as to
when, and how, you might need to make changes to your client applications, or
the topics they use.
If you do make changes, you must test your changes for correctness by running
the changed items in your MQSeries Publish/Subscribe network for a reasonable
period of time before migrating to WebSphere MQ Integrator.
Migration checklist
When you have identified the MQSeries Publish/Subscribe broker or brokers that
you want to migrate to WebSphere MQ Integrator, you must work through the
items presented in Table 10 on page 188 to ensure that the migration has no effect
on your client applications.
You need an in-depth knowledge of both the broker, and the client applications
that are using it, to determine exactly which items affect your environment.
IBM may have patents or pending patent applications covering subject matter
described in this information. The furnishing of this information does not give you
any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore this statement may not apply
to you.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Programming License Agreement, or any equivalent agreement
between us.
The following permission statements and conditions only apply to the XML library
files built using software from Apache Software Foundation, and not to any code
developed solely by IBM Corporation. They do not invalidate any of the terms of
the IBM International Program License Agreement for this IBM product.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: “This product includes software
developed by the Apache Software Foundation (http://www.apache.org/).”
Alternately, this acknowledgment may appear in the software itself, if and
wherever such third-party acknowledgments normally appear.
4. The names “Xerces” and “Apache Software Foundation” must not be used to
endorse or promote products derived from this software without prior written
permission. For written permission, please contact apache\@apache.org.
5. Products derived from this software may not be called “Apache”, nor may
“Apache” appear in their name, without prior written permission of the
Apache Software Foundation.
Trademarks
The following terms are trademarks of International Business Machines
Corporation in the United States, other countries, or both:
Tivoli is a trademark of Tivoli Systems Inc. in the United States, other countries, or
both.
Java, JDBC, and JDK are registered trademarks of Sun Microsystems, Inc. in the
United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Other company, product, and service names might be trademarks or service marks
of others.
AMI. Application Messaging Interface. configuration repository. Persistent storage for broker
configuration and topology definition.
Application Messaging Interface (AMI). The
programming interface provided by MQSeries that connector. See message processing node connector.
defines a high level interface to message queuing
content-based filter. An expression that is applied to
services. See also MQI and JMS.
the content of a message to determine how the message
is to be processed.
B
context tag. See element qualifier.
BLOB. Binary Large OBject. A block of bytes of data
Control Center. The graphical interface that provides
(for example, the body of a message) that has no
facilities for defining, configuring, deploying, and
discernible meaning, but is treated as one solid entity
monitoring resources of the WebSphere MQ Integrator
that cannot be interpreted.
network.
broker. See message broker.
callback function. See implementation function. debugger. A facility on the Message Flows view in the
Control Center that enables message flows to be
category. An optional grouping of messages that are debugged.
related in some way. For example, messages that relate
to a particular application. deploy. Make operational the configuration and
topology of the broker domain.
DTD. Document Type Definition. filter. An expression that is applied to the content of a
message to determine how the message is to be
processed.
E
format. A format defines the internal structure of a
e-business. A term describing the commercial use of message, in terms of the fields and order of those
the Internet and World Wide Web to conduct business fields. A format can be self-defining, in which case the
(short for electronic-business). message is interpreted dynamically when read.
execution group. A named grouping of message flows implementation function. Function written by a
that have been assigned to a broker. The broker is third-party developer for a plug-in node or parser. Also
guaranteed to enforce some degree of isolation between known as a callback function.
message flows in distinct execution groups by ensuring
that they execute in separate address spaces, or as input node. A message flow node that represents a
unique processes. source of messages for the message flow.
Extended SQL. A specialized set of SQL functions and installation mode. The installation mode can be Full,
statements based on regular SQL, extended with Custom, or Broker only. The mode defines the
functions and statements unique to WebSphere MQ components of the product installed by the installation
Integrator. process on Windows NT systems.
local environment. Information associated with a message flow. A directed graph that represents the set
message while it is being processed by a message flow. of activities performed on a message or event as it
This information includes: passes through a broker. A message flow consists of a
v User-defined variable information that can be created set of message processing nodes and message
and used by nodes within the message flow. processing node connectors.
v A user-defined list of internal and external
message flow component. See message flow.
destinations to which a message is sent. These can be
nodes within a message flow (for example, when message parser. A program that interprets the bit
using the RouteToLabel and Label nodes) or stream of an incoming message and creates an internal
MQSeries queues (when the list is examined by an representation of the message in a tree structure, and
MQOutput node to determine the final target for the that regenerates a bit stream for an outgoing message
message). from the internal representation.
v A list of destinations to which a message has been
sent. This list is created by an output node only if it message processing node. A node in the message
is connected to another node in the message flow. flow, representing a well defined processing stage. A
message processing node can be one of several
Also known as destination list in previous MQSeries primitive types or can represent a subflow.
Integrator releases. Destination list is valid and can be
used for compatibility. message processing node connector. An entity that
connects the output terminal of one message processing
local error log. A generic term that refers to the logs node to the input terminal of another. A message
to which WebSphere MQ Integrator writes records on processing node connector represents the flow of
the local system. control and data between two message flow nodes.
v On UNIX systems, this is the syslog.
v On Windows NT, this is the Event Viewer message queue interface (MQI). The programming
(Application View). interface provided by MQSeries queue managers. The
v On z/OS systems, this is the operator console. programming interface allows application programs to
access message queuing services. See also AMI and
Entries written to this log include records that provide JMS.
information about events that are not errors, but that
occur normally during operation, for example, message repository. A database holding message
successful deployment of a configuration. template definitions.
message broker. A set of execution processes hosting message set. A grouping of related messages.
one or more message flows.
message template. A named and managed entity that
messages. Entities exchanged between a broker and its represents the format of a particular message. Message
clients. templates represent a business asset of an organization.
metadata. Data that describes the characteristic of POSIX. Portable Operating System Interface For
stored data. Computer Environments. An IEEE standard for
computer operating systems (for example, AIX and
MQI. Message queue interface. Solaris).
MQIsdp. WebSphere MQ Integrator SCADA device predefined message. A message with a structure that
protocol. A lightweight publish/subscribe protocol is defined before the message is created or referenced.
flowing over TCP/IP. Compare with self-defining message.
MQRFH. An architected message header that is used primitive. A message processing node that is supplied
to provide metadata for the processing of a message. with the product.
This header is supported by MQSeries
Publish/Subscribe. principal. An individual user ID (for example, a log-in
ID) or a group. A group can contain individual user
MQRFH2. An extended version of MQRFH, providing IDs and other groups, to the level of nesting supported
enhanced function in message processing. by the underlying facility.
MQSeries Everyplace™. A generally available property. One of a set of characteristics that define the
MQSeries product that provides proven MQSeries values and behaviors of objects in the Control Center.
reliability and security in a mobile environment. For example, message processing nodes and deployed
message flows have properties.
MRM. Message Repository Manager.
publication node. An end point of a specific path
multilevel wildcard. A wildcard that can be specified through a message flow to which a client application
in subscriptions to match any number of levels in a subscribes. A publication node has an property,
topic. subscription point. If this is not specified, the
publication node represents the default subscription
N point for the message flow.
W
warehouse. A persistent, historical datastore for events
(or messages). The Warehouse node within a message
flow supports the recording of information in a
database for subsequent retrieval and processing by
other applications.
X
XML. Extensible Markup Language.
Bibliography 207
MQSeries library
DB2 publications
If you want more information about DB2, you can
download the product publications from the DB2
Web site at:
http://www.ibm.com/software/data/db2
Index 211
publish/subscribe (continued) security subsystem transformation
multiple topics 99 principals 29 message flow 52
publication node 20 self-defining messages 22, 69 trusted security domain 142
reserved characters 97 simple message types 71
security 101 single-level wildcards 97
special characters 97
subscription point 20
SmartGuide for message creation 23
softcopy books 206
U
User Name Server 29, 129
throughput 60 Solaris installation
MQSeries resources 133
topic 27 delivery media 192
multiple 130
topic root 29 disk space requirements 115
principals 101
topic-based security 29, 129 hardware requirements 115
topics 96 software requirements 115
unnamed publication node 20 system requirements 115
wildcards 97 solving problems V
using the Debugger 67 version control
special characters SupportPac IC04 16
Q topic level separator 97
stock flow 45
viewing components 155
quality of service 84
subscription options
new publications only 95
publish on request only 95
W
R subscription points 93
WebSphere MQ Integrator for z/OS
security 148
Redbooks 208 default 20, 93
WebSphere MQ Integrator on the
resource definition using 94
Internet 208
import and export 17 subscriptions
WebSphere MQ Integrator
retained publications 90, 91, 95 content filter 93
publications 205
performance implications 91 local 95
national language 206
roll back 19 registration 92
platform–specific 205
routing subscriber queue 93
WebSphere MQ Integrator Version 2.1
message flow 53 subscription point 93
applications 26
rules 4 superuser, IBMMQSI2 149
broker 10
Supply Chain Management 3
business integration 5
supported codesets 123
components 9
S SupportPac 208
system management 12, 161
Configuration Manager 13
SAP/R3 4 Control Center 15
system requirements 109
SCADA dependencies 37
AIX installation 111
quality of service 84 database 38
HP-UX installation 113
security 85 MQSeries 37
Solaris installation 115
special considerations 31 enhancements 7
summary 109
SCADA applications 36 getting started 5
Windows NT installation 117
SCADAInput node migrating from previous products 7
z/OS installation 120
in example message flows 21 package contents 189
scenario Tour 17
business 41 User Name Server 29
retail 42 T wildcards
security tagged delimited string messages 70 multi-level 98
ACLs 103, 151 tagged messages 70 multilevel 97
applications 85, 150 TDS messages 70 single-level 97, 98
configuration 147 template 18, 22 Windows 2000 xii
Control Center roles 148 throughput Windows NT installation
database 148 message flow 51 database 118
domain 140 publish/subscribe message flow 60 delivery media 193
message flows 150 Tivoli 12 disk space requirements 117
operational 147 topic access 105 hardware requirements 117
primary security domain 142 topic root 27 MQSeries 118
principals 140 topic tree 27 operating system software 118
public access 102 topic-based security 101, 129 software requirements 117
run-time 147 topics system requirements 117
SCADA 85 publish/subscribe 96 wire format 22
topic-based 150 semantics 98
trusted security domain 142 wildcards 98
WebSphere MQ Integrator for
z/OS 148
Tour 17
trace commands 158
X
XA
security domains transactionality 55
commit 19
UNIX 144 transactions 83
roll back 19
Windows NT 142 database interactions 83
technology 19
Security exit for Control Center 15
Z
z/OS commands 156
z/OS installation
delivery media 194
disk space requirements 120
hardware requirements 120
software requirements 120
system requirements 120
Index 213
214 WebSphere® MQ Integrator: Introduction and Planning
Sending your comments to IBM
If you especially like or dislike anything about this book, please use one of the
methods listed below to send your comments to IBM.
Feel free to comment on what you regard as specific errors or omissions, and on
the accuracy, organization, subject matter, or completeness of this book.
Please limit your comments to the information in this book and the way in which
the information is presented.
To make comments about the functions of IBM products or systems, talk to your
IBM representative or to your IBM authorized remarketer.
When you send comments to IBM, you grant IBM a nonexclusive right to use or
distribute your comments in any way it believes appropriate, without incurring
any obligation to you.
You can send your comments to IBM in any of the following ways:
v By mail, to this address:
User Technologies Department (MP095)
IBM United Kingdom Laboratories
Hursley Park
WINCHESTER,
Hampshire
SO21 2JN
United Kingdom
v By fax:
– From outside the U.K., after your international access code use
44–1962–842327
– From within the U.K., use 01962–842327
v Electronically, use the appropriate network ID:
– IBM Mail Exchange: GBIBM2Q9 at IBMMAIL
– IBMLink: HURSLEY(IDRCF)
– Internet: [email protected]
GC34-5599-04
Spine information: