`Solutions with
`MQSeries Integrator
`
`Exploring the latest version of
`MQSeries Integrator
`
`Extending the functionality of
`MQSeries Integrator
`
`Providing a single
`customer view solution
`
`ibm.com/redbooks
`
`Geert Van de Putte
`Colin Brett
`Paul Sehorne
`Sharon Stubblebine
`
`HP_1027_0001
`
`
`
`HP_1027_0002
`
`HP_1027_0002
`
`
`
`International Technical Support Organization
`
`SG24-6154-00
`
`Business Integration Solutions with
`MQSeries Integrator
`
`August 2000
`
`HP_1027_0003
`
`
`
`Take Note!
`
`Before using this information and the product it supports, be sure to read the general information in
`Appendix D, “Special notices” on page 253.
`
`First Edition (August 2000)
`
`This edition applies to Version 2, Release 0 of MQSeries Integrator, Program Number 5639-F61 for use
`with the Windows NT Version 4 Operating System.
`
`Comments may be addressed to:
`IBM Corporation, International Technical Support Organization
`Dept. HZ8 Building 678
`P.O. Box 12195
`Research Triangle Park, NC 27709-2195
`
`When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the
`information in any way it believes appropriate without incurring any obligation to you.
`
`© Copyright International Business Machines Corporation 2000. All rights reserved.
`Note to U.S Government Users – Documentation related to restricted rights – Use, duplication or disclosure is
`subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.
`
`HP_1027_0004
`
`
`
`Contents
`
`Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
`The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
`Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
`
`Part 1.
`
`Introduction to MQSeries Integrator V2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
`
`Chapter 1. Overview of MQSeries Integrator . . . . . . . . . . . . . . . . . . . . . 3
`1.1 Business integration and the MQSeries Family . . . . . . . . . . . . . . . . . . 3
`1.2 MQSeries Integrator at a glance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
`1.3 The Configuration Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
`1.4 The Control Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
`1.5 The message broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
`1.5.1 Persistent store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
`1.5.2 Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
`1.5.3 Administrative agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
`1.5.4 Message flow execution engine . . . . . . . . . . . . . . . . . . . . . . . . . 14
`1.6 The User Name Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
`1.7 Security subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`1.8 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`1.9 Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`1.10 Message domains, message sets, message types . . . . . . . . . . . . . . 18
`1.11 MQSeries Integrator applications . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
`
`Installation and configuration . . . . . . . . . . . . . . . . . . . . . . . 21
`Chapter 2.
`2.1 Installing MQSeries Integrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
`2.1.1 Check that prerequisites are installed . . . . . . . . . . . . . . . . . . . . . 21
`2.1.2 Insert CD and follow the Install Wizard . . . . . . . . . . . . . . . . . . . . 24
`2.2 Post-installation setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
`2.2.1 Set up security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
`2.2.2 Set up databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
`2.2.3 Create an MQSeries Queue Manager. . . . . . . . . . . . . . . . . . . . . 33
`2.2.4 Create a Configuration Manager. . . . . . . . . . . . . . . . . . . . . . . . . 36
`2.2.5 Create a broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`2.2.6 Create a User Name Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
`2.3 Setting up the Control Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
`2.3.1 Starting the MQSeries Integrator Services . . . . . . . . . . . . . . . . . 45
`2.3.2 Start the Control Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
`2.3.3 Adding the Log tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
`2.3.4 Set up user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
`2.3.5 Register (create) a broker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
`
`© Copyright IBM Corp. 2000
`
`iii
`
`HP_1027_0005
`
`
`
`2.3.6 Save the work. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
`2.4 The "Hello world" message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
`2.4.1 Building the message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
`2.4.2 Deploying the HelloWorld message flow . . . . . . . . . . . . . . . . . . . 60
`2.4.3 Testing the message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
`2.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
`
`Introduction to XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
`Chapter 3.
`3.1 XML concepts and terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
`3.1.1 More terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
`3.2 The importance of XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
`3.2.1 Importance for the MQSeries Family. . . . . . . . . . . . . . . . . . . . . . 71
`3.2.2 Use of XML within MQSeries Integrator . . . . . . . . . . . . . . . . . . . 72
`
`Chapter 4. Advanced setup of MQSeries Integrator . . . . . . . . . . . . . . . 73
`4.1 Using a remote database for the Configuration Manager . . . . . . . . . . 73
`4.1.1 Preparing the AIX system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
`4.1.2 Configuring DB2 Client access . . . . . . . . . . . . . . . . . . . . . . . . . . 74
`4.2 Creating a multi-broker domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
`4.2.1 Overview of the MQSeries clustering feature . . . . . . . . . . . . . . . 76
`4.2.2 Creating the MQSeries Integrator Cluster . . . . . . . . . . . . . . . . . . 79
`4.2.3 Creating the Configuration Manager . . . . . . . . . . . . . . . . . . . . . . 85
`4.2.4 Creating the User Name Server . . . . . . . . . . . . . . . . . . . . . . . . . 86
`4.2.5 Creating the brokers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
`4.2.6 Using the Control Center to link everything together . . . . . . . . . . 89
`4.3 A multi-broker domain in action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
`4.3.1 Connecting the application queue managers . . . . . . . . . . . . . . . 92
`4.3.2 Test scenarios in the multi-broker domain . . . . . . . . . . . . . . . . . 94
`4.3.3 Multi-broker versus multiple execution groups . . . . . . . . . . . . . . 95
`4.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
`
`Chapter 5. Example message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
`5.1 Overview of the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
`5.2 Using the Message Repository Manager . . . . . . . . . . . . . . . . . . . . . 102
`5.3 Creating and deploying the message flow . . . . . . . . . . . . . . . . . . . . 112
`5.4 Details of each node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
`5.4.1 MQInput node COMPLEX.XML. . . . . . . . . . . . . . . . . . . . . . . . . 113
`5.4.2 XML.PROCESSOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
`5.4.3 MQInput node COMPLEX.C . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
`5.4.4 Compute node CWFtoXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
`5.4.5 MQOutput nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
`
`Chapter 6. Exploring ESQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
`6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
`
`iv
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0006
`
`
`
`6.2 Field manipulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
`6.2.1 Removing a field from the output message . . . . . . . . . . . . . . . . 124
`6.2.2 Adding new fields in the output message . . . . . . . . . . . . . . . . . 125
`6.3 Database operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
`6.3.1 Qualifying table and column names . . . . . . . . . . . . . . . . . . . . . 126
`6.3.2 Usage of keywords THE and ITEM . . . . . . . . . . . . . . . . . . . . . . 127
`6.4 The complete ESQL used in testing the scenarios in this chapter. . . 128
`6.5 XML output message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
`
`Chapter 7. Developing your own plug-in. . . . . . . . . . . . . . . . . . . . . . . 137
`7.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
`7.2 Overview of the requirements for your plug-in . . . . . . . . . . . . . . . . . 137
`7.2.1 API requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
`7.2.2 Implementation requirements and restrictions. . . . . . . . . . . . . . 139
`7.3 Developing a Switch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
`7.3.1 Design of the Switch node . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
`7.3.2 Making the plug-in available in the Control Center . . . . . . . . . . 141
`7.3.3 Implementation details of the Switch node . . . . . . . . . . . . . . . . 146
`7.4 Testing the plug-in during development . . . . . . . . . . . . . . . . . . . . . . 157
`7.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
`
`Part 2. A Business Integration solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
`
`Chapter 8. Getting a single customer view with MQSeries . . . . . . . . 165
`8.1 Single customer view as an e-business pattern . . . . . . . . . . . . . . . . 166
`8.2 Outbound Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
`8.2.1 RB_SCV_1message flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
`8.2.2 RB_SCV_Request_Endow message flow . . . . . . . . . . . . . . . . . 188
`8.2.3 RB_SCV_Request_House message flow . . . . . . . . . . . . . . . . . 210
`8.2.4 RB_SCV_Request_Motor message flow. . . . . . . . . . . . . . . . . . 213
`8.3 Inbound flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
`8.3.1 RB_SCV_Backend_Reply message flow . . . . . . . . . . . . . . . . . 219
`8.3.2 RB_SCV_Backend_Reply_House&Motor message flow . . . . . . 221
`
`Appendix A. Hardware and software specification. . . . . . . . . . . . . . . . 225
`A.1 Multi-broker setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
`A.2 Single customer view application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
`
`Appendix B. Source code for the SwitchNode plug-in. . . . . . . . . . . . . 227
`B.1 Header file SwitchNode.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
`B.2 Source file SwitchNode.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
`
`v
`
`HP_1027_0007
`
`
`
`Appendix C. Using the additional material . . . . . . . . . . . . . . . . . . . . . . 249
`C.1 Locating the additional material on the Internet . . . . . . . . . . . . . . . . . . . 249
`C.2 Using the Web material
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
`C.2.1 System requirements for downloading the Web material . . . . . . . . 249
`C.2.2 How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
`C.2.3 Material for the single customer view application . . . . . . . . . . . . . . 250
`
`Appendix D. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
`
`Appendix E. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
`E.1 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
`E.2 IBM Redbooks collections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
`E.3 Referenced Web sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
`
`How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
`IBM Redbooks fax order form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
`
`Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
`
`Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
`
`Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
`
`IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
`
`vi
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0008
`
`
`
`Preface
`
`Very often information about a customer is stored in product-centric
`databases. You can imagine an insurance company that has one database for
`each type of insurance they sell. However, when customers want to obtain
`information about their current insurance contracts, they want to see a single
`view of that information, and not submit a query for each contract they might
`have. This IBM Redbook outlines the messaging techniques that one can
`implement to obtain a user-friendly single customer view, using MQSeries
`Integrator.
`
`This redbook explores the features and functionality of the new version of
`MQSeries Integrator for Windows NT and provides guidance on installation
`and configuration. A number of message flows are developed. These
`message flows are the implementation of business rules that need to be
`executed by the MQSeries Integrator broker. The redbook also explains how
`to extend the functionality of MQSeries Integrator with user-written plug-in
`nodes.
`
`The book also describes a Web-enabled single customer view solution. This
`solution uses WebSphere, DB2, MQSeries, and MQSeries Integrator to solve
`a common business integration problem: how do I get a single view of all my
`customer information when that information is distributed over a number of
`systems?
`
`The team that wrote this redbook
`
`This redbook was produced by a team of specialists from around the world
`working at the International Technical Support Organization, Raleigh Center.
`
`Geert Van de Putte is an IT Specialist at the International Technical Support
`Organization, Raleigh Center. He has five years of experience in the design
`and implementation of MQSeries-based solutions. Before joining the ITSO,
`Geert worked in IBM Global Services, Belgium.
`
`Colin Brett is a Systems Specialist in the United Kingdom. He has 10 years
`of experience as a CICS Systems Programmer, with four years as an
`MQSeries Systems Programmer and Support specialist. Colin provides
`support for both IBM internal systems and external customers.
`
`Paul Sehorne is an IBM Certified Solutions Expert - MQSeries. He is team
`leader of the MQSeries Advanced Technical Support Team at the IBM Dallas
`Systems Center in the United States. He does technical marketing support for
`
`© Copyright IBM Corp. 2000
`
`vii
`
`HP_1027_0009
`
`
`
`MQSeries and MQSeries Integrator including consulting, architectural design,
`and implementation. He has written or contributed to several white papers
`and the redbook MQSeriesBackupandRecovery, SG24-5222 and has been
`a speaker at the annual MQSeries Technical Conference.
`
`Sharon A. Stubblebine is a Senior IT Specialist in the United States. She
`has 22 years of experience in the IT field. For the last five years she has
`specialized in the MQSeries family of products.
`
`Comments welcome
`Your comments are important to us!
`
`We want our Redbooks to be as helpful as possible. Please send us your
`comments about this or other Redbooks in one of the following ways:
`
`(cid:127) Fax the evaluation form found in “IBM Redbooks review” on page 267 to
`the fax number shown on the form.
`
`(cid:127) Use the online evaluation form found at http://www.redbooks.ibm.com/
`
`(cid:127) Send your comments in an Internet note to redbook@us.ibm.com
`
`viii
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0010
`
`
`
`Part 1.
`
`Introduction to MQSeries Integrator V2.0
`
`The book is divided into two parts. In this first part, we look at the installation
`and functionality of MQSeries Integrator. We start with an overview of the
`product, followed by some installation and configuration issues. Also, a
`number of examples of ESQL and message flows are explained.
`
`Chapter 1, “Overview of MQSeries Integrator” on page 3 provides an
`overview of the new product and the key components. It positions the product
`in the line of products that constitute the MQSeries family.
`
`Chapter 2, “Installation and configuration” on page 21 gives some guidance
`for a standard installation of the product and base configuration.
`
`Given the importance of eXtensible Markup Language (XML) in general and
`in particular in this new version of MQSeries Integrator, Chapter 3,
`“Introduction to XML” on page 67 discusses XML, provides a glossary of
`terminology, and discusses the relationships between terms.
`
`Chapter 4, “Advanced setup of MQSeries Integrator” on page 73 discusses
`some advanced installation and configuration issues where MQSeries
`Integrator is installed on multiple machines. Also, it shows how the MQSeries
`clustering feature can be used to make the different components of the
`product work together.
`
`The three remaining chapters in this part discuss the use of some important
`features of the product. Chapter 5, “Example message flow” on page 99
`discusses a message flow that routes a message through the system.
`Chapter 6, “Exploring ESQL” on page 123 shows how to use ESQL to write
`simple scripts for the transformation of messages. Chapter 7, “Developing
`your own plug-in” on page 137 covers adding functionality to the product via
`user-written nodes.
`
`© Copyright IBM Corp. 2000
`
`1
`
`HP_1027_0011
`
`
`
`2
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0012
`
`
`
`Chapter 1. Overview of MQSeries Integrator
`
`In this chapter we introduce the major components of MQSeries Integrator
`and a number of concepts that are important to understand. We explain the
`building blocks of MQSeries Integrator: defining messages and organizing
`them in message sets and building message flows that translate business
`rules into logic that is executed by the broker.
`
`1.1 Business integration and the MQSeries Family
`The new version of MQSeries Integrator is part of the IBM product offering for
`business integration, based on the messaging transport layer.
`
`At the core of the MQSeries family is MQSeries itself. It provides assured
`once-only delivery of messages across more than 30 industry platforms using
`a variety of communications protocols.
`
`MQSeries provides support for applications with a number of application
`programming interfaces (MQI, AMI, JMS) in several programming languages
`and for a number of communication models (including point-to-point and
`publish/subscribe). MQSeries also provides a number of connectors and
`gateways to other products such as Lotus Domino, Microsoft Exchange,
`SAP/R3, CICS, and IMS.
`
`MQSeries Integrator extends the messaging capabilities of MQSeries by
`adding message broker functionality driven by business rules. It provides the
`intelligence to route and transform messages, the possibility to filter
`messages (topic-based or content-based), and database capabilities for
`enrichment of the messages or for warehousing the messages. Also, it
`provides a framework for extending the functionality with plug-ins to
`user-written or third-party solutions for specific requirements.
`
`MQSeries Workflow is the third component of IBM’s family of products for
`business integration. It is also based on the messaging technology offered by
`base MQSeries, but it adds a further dimension to the integration of
`applications. It’s not only about applications, but about integrating all
`resources in a business process. It ensures that the right information gets to
`the right target, either a person or application, at the right moment in the
`process flow.
`
`© Copyright IBM Corp. 2000
`
`3
`
`HP_1027_0013
`
`
`
`Family Traits
`
`Modular Set of Offerings
`
`MQSeries Foundation
`
`Common Look and Feel
`
`Management/Monitoring
`
`Messaging Tools
`
`Workflow, Process Flow
`Application Services
`Tools
`
`Xform, Rules, Routing
`API Framework
`Templates, Utilities
`
`MQSeries
`Workflow
`
`MQSeries
`Integrator
`
`Messaging Services
`Standard Formats
`Tools
`
`MQSeries
`
`Figure1. TheMQSeriesfamilyforbusinessintegration
`
`1.2 MQSeries Integrator at a glance
`The key components in an MQSeries Integrator environment include:
`
`(cid:127) Configuration Manager and configuration repository
`(cid:127) One or more brokers
`(cid:127) Control Center
`(cid:127) User Name Server
`(cid:127) MQSeries Queue Manager(s)
`(cid:127) Message Repository Manager (MRM)
`
`Using the Control Center, the MQSeries Integrator administrator defines
`messages in the message repository and message flows. A message flow is
`a series of operations and rules that a broker executes for a retrieved
`message. Message flows are grouped in an execution group. Execution
`groups are assigned to a broker.
`
`When a client application puts a message on an input queue of the broker,
`the broker will retrieve the message and parse it. From that point on, a
`message is stored in the common message interface, which is basically a tree
`structure representing all fields in that message. The broker then executes
`the actions that are configured in the message flow and eventually the
`
`4
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0014
`
`
`
`message arrives at an output queue, ready to be retrieved by another client
`application.
`
`Figure2. OverviewofMQSeriesIntegrator
`
`A message flow consists of a number of nodes, usually starting with an
`MQInput node and ending with one or more MQOutput nodes. An MQInput
`node is the encapsulation of a normal MQGET operation, while an MQOutput
`node is the encapsulation of a normal MQPUT operation. Between these two
`nodes, a message flow can contain other nodes that transform the message.
`A Filter node allows you to specify a Boolean expression for routing the
`message. In a Compute node you can specify a script to alter message fields.
`The script is written in the programming language ESQL, which is an
`extension of standard SQL. Another important type of node is a Database
`node. These nodes allow you to interact with an external database. You can
`use information from a database to enrich a message or to route a message.
`You can use the message to make updates in the table. It is also possible to
`store the message using the Warehouse node. A first example of a message
`flow is described in 2.4, “The "Hello world" message flow” on page 53. A more
`
`Chapter 1. Overview of MQSeries Integrator
`
`5
`
`HP_1027_0015
`
`
`
`complex message flow is described in Chapter 5, “Example message flow” on
`page 99 which also shows how to re-use a message flow within another
`message flow.
`
`Besides the standard nodes, called IBMPrimitives, you can extend the palette
`of nodes with user-written or third-party nodes that perform a specific
`function. Within such a user-written node, you have access to the message
`that flows in and you can create a new transformed message, just like you
`can with a Compute node.
`
`1.3 The Configuration Manager
`An MQSeries Integrator system is controlled by the Configuration Manager;
`the components and resources managed by the Configuration Manager make
`up the broker domain. The Configuration Manager maintains the broker
`domain configuration in the configuration repository. The Control Center is
`used to create and modify this configuration.
`
`The Configuration Manager is the main component of the MQSeries
`Integrator runtime environment, and serves three main functions:
`
`(cid:127) It maintains configuration details in the configuration repository. This is a
`set of database tables that provide a central record of the broker domain
`components.
`
`(cid:127) It manages both the initialization and deployment of the broker and
`message processing operations in response to functions performed using
`the Control Center.
`
`(cid:127) It checks the authorities of defined user IDs, for the authority to initiate
`those actions.
`
`The Configuration Manager provides services to the other broker domain
`components, providing configuration updates in response to Control Center
`actions.
`
`The Configuration Manager requires:
`
`(cid:127) A set of tables in a database, known as the configuration repository. This
`database must be created using DB2 Universal Database for Windows NT.
`The Configuration Manager uses a Java Database Connectivity (JDBC)
`connection to this database.
`
`(cid:127) A set of tables in a database, known as the messagerepository. This
`database must be created using DB2 Universal Database for Windows NT.
`
`6
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0016
`
`
`
`The Configuration Manager uses an Open Database Connectivity (ODBC)
`connection to this database.
`
`(cid:127) A set of fixed name queues defined on the MQSeries Queue Manager that
`hosts the Configuration Manager. This MQSeries Queue Manager must
`exist on the same physical system as the Configuration Manager, and is
`identified at the time the Configuration Manager is created.
`
`These queues are created when the mqsicreateconfigmgr (including
`associated variables) command is executed through either the GUI or the
`command prompt. No actions are required by the administrator to add the
`required definitions.
`
`(cid:127) A server connection, defined to the MQSeries Queue Manager that hosts
`the Configuration Manager. This connection is used by all instances of the
`Control Center that communicate with the Configuration Manager.
`
`(cid:127) Sender and receiver channels to each broker in the broker domain except
`for a broker that would share its queue manager with the Configuration
`Manager.
`
`1.4 The Control Center
`The Control Center is used to configure and control the broker domain. This
`works in association with the Configuration Manager, passing messages back
`and forth as information is requested and making updates to the components.
`
`Chapter 1. Overview of MQSeries Integrator
`
`7
`
`HP_1027_0017
`
`
`
`JDBC
`connection
`
`ODBC
`connection
`
`Configuration
`Manager
`
`Queue Manager
`
`Configuration
`repository
`(shared/deployed data)
`
`Message
`repository
`
`TCP/IP connection
`
`MQSeries Client for Java
`
`Local configuration data
`
`Control Center
`
`Figure3. RelationshipbetweentheControlCenterandtheConfigurationManager
`
`Any number of Control Center instances can be installed and invoked. The
`Control Center depends on MQSeries for Java for its connection with the
`Configuration Manager. The Control Center may be installed on the same
`physical system as the Configuration Manager or on any system that can
`connect to the Configuration Manager. The Control Center dynamically
`creates a client connection to connect to the Configuration Manager’s queue
`manager using the information provided at invocation.
`
`The Control Center is structured to provide a series of views on the
`configuration and message repositories. Views are selected by choosing one
`of five roles; “All Roles” shows every view. Other roles include message flow
`and message set developer, message flow and message set assigner,
`operational domain controller, and topic security administrator.
`
`The Control Center is the business administration tool used to define
`message flows for applications and to access the databases and resources
`used by MQSeries Integrator. This interface allows the manipulation of the
`following resources:
`
`8
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0018
`
`
`
`(cid:127) Message flows
`(cid:127) Message sets
`(cid:127) Brokers
`(cid:127) Collectives
`(cid:127) Principals
`
`These resources are stored in the configuration repository database and in
`the message repository database.
`
`The Control Center can be used to:
`
`(cid:127) Develop, modify, assign, and deploy message flows.
`
`(cid:127) Develop, modify, assign, and deploy message sets.
`
`(cid:127) Define the broker domain topology and create collectives.
`
`(cid:127) Create and modify access control lists (ACLs) to control publish/subscribe
`security.
`
`(cid:127) View status information.
`
`The Control Center manages the configuration data for a particular
`workspace. There are three different versions of this data. When the Control
`Center is started, the localversionof the configuration data is presented. The
`three presentations are:
`Local
`
`A copy of configuration data on which a user is working. To
`obtain a local copy of configuration data, you need to checkout
`the resources from the shared copy. While checkedout, other
`users are prevented from updating the resource.
`
`Shared
`
`Any changes made to a local version will not be visible to other
`users until the status of the resource is changed by checkingin
`the resource.
`
`A version of the configuration data that is shared by all the users
`of the Control Center. Once resources are checked out to the
`local workspace, they can be modified, and once modified
`checked in.
`
`Deployed
`
`This is the active version of configuration data that is operational
`at the broker.
`
`Chapter 1. Overview of MQSeries Integrator
`
`9
`
`HP_1027_0019
`
`
`
`1.5 The message broker
`
`Broker
`
`Execution group
`
`Message flow
`Message flow
`
`ODBC
`connection
`
`Message dictionary
`
`Queue Manager
`
`Figure4. Overviewofabroker
`
`Broker database
`
`The message broker consists of a number of processes. For each execution
`group assigned to a broker, the broker creates an additional data flow engine.
`As explained before, an execution group is a way of grouping message flows.
`
`Any number of brokers can be added within a broker domain. More than one
`broker may reside on a physical system. Each broker defined will require a
`unique MQSeries Queue Manager. A single broker can share the MQSeries
`Queue Manager of either or both the Configuration Manager or User Name
`Server.
`
`The broker is made up by a number of other components:
`
`(cid:127) Controller
`
`(cid:127) Message Format Services. These support definitions of metadata that
`describe the data format within messages.
`
`(cid:127) Persistent State Datastore. The broker has a mandatory database to hold
`all persistent state data needed by the broker. This includes for example:
`
`- The deployed message flow definitions
`- Persistent subscriptions
`- Publish/subscribe neighbors
`
`10
`
`Business Integration Solutions with MQSeries Integrator
`
`HP_1027_0020
`
`
`
`Each broker requires:
`
`(cid:127) A set of tables in a database to hold the broker’s local data. This is
`accessed using the ODBC connection. These tables are also referred to
`as the broker’s localpersistentstore.
`
`(cid:127) A set of named queues on the queue manager associated with the broker
`domain.
`
`- Again no actions are required by the administrator to add these
`definitions. They are added during execution of the mqsicreatebroker
`command.
`
`(cid:127) Each broker needs its own queue manager. It can share the queue
`manager hosting either or both the Configuration Manager and optional
`User Name Server.
`
`- Since the broker uses a set of predetermined queue names, this
`creates the dependency of an MQSeries Queue Manager per broker.
`
`Creating the broker on the system on which the broker component is installed
`is not automatically recorded in the configuration repository. The Control
`Center must be used to create the reference. Creating a reference does the
`following:
`
`(cid:127) Stores the broker information in the configuration repository.
`
`(cid:127) Defines a default execution group on this broker. Further execution group