`
`Dieter Wackerow, Jorgen Becker-Hansen, Ken Palmer, Morton Saetra
`
`International Technical Support Organization
`
`http://www.redbooks.ibm.com
`
`SG24-5386-00
`
`HP_1018_0001
`
`
`
`HP_1018_0002
`
`HP_1018_0002
`
`
`
`International Technical Support Organization
`
`Using the MQSeries Integrator Version 1.0
`
`SG24-5386-00
`
`May 1999
`
`HP_1018_0003
`
`
`
`Take Note!
`
`Before using this information and the product it supports, be sure to read the general information in
`Appendix B, “Special Notices” on page 175.
`
`First Edition (May 1999)
`
`This edition applies to Version 1.0 of IBM MQSeries Integrator, Program Number 5801-AAR.
`
`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 1999. 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_1018_0004
`
`
`
`Contents
`
`Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
`
`Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi
`
`Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
`The Team That Wrote This Redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
`Comments Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
`
`Chapter 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
`1.1 Business Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
`1.2 What the MQSeries Integrator Can Do for You . . . . . . . . . . . . . . . . . . . 2
`1.3 The MQSI Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
`1.4 How to Use the MQSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
`1.5 Literature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
`
`Installation and Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
`Chapter 2.
`2.1 Windows NT Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
`2.1.1 Preparing for the Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
`2.1.2 Installing MQSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
`2.1.3 Installing DB2 Universal Database . . . . . . . . . . . . . . . . . . . . . . . 10
`2.1.4 Installing MQSeries Integrator for DB2 . . . . . . . . . . . . . . . . . . . . 11
`2.1.5 Setting Up the MQSI Database. . . . . . . . . . . . . . . . . . . . . . . . . . 11
`2.1.6 Installing the Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . 15
`2.1.7 The Database Connection File . . . . . . . . . . . . . . . . . . . . . . . . . . 15
`2.1.8 Verifying the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`2.1.9 Editing the Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
`2.2 AIX Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
`2.2.1 Preparing for the Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
`2.2.2 Installing MQSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
`2.2.3 Installing the AIX DB2 Universal Database . . . . . . . . . . . . . . . . . 22
`2.2.4 Installing MQSeries Integrator for DB2 . . . . . . . . . . . . . . . . . . . . 23
`2.2.5 Creating the MQSI Database on AIX . . . . . . . . . . . . . . . . . . . . . 24
`2.2.6 Verifying the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
`
`Chapter 3. Getting to Know the MQSI - A Tutorial . . . . . . . . . . . . . . . . 27
`3.1 Working with the MQSI Format Administrator . . . . . . . . . . . . . . . . . . . 28
`3.1.1 How to Define a Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
`3.1.2 How to Define an Input Control. . . . . . . . . . . . . . . . . . . . . . . . . . 31
`3.1.3 How to Define an Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . 32
`3.1.4 How to Define an Output Control . . . . . . . . . . . . . . . . . . . . . . . . 35
`3.1.5 How to Define an Output Format
`. . . . . . . . . . . . . . . . . . . . . . . . 37
`
`© Copyright IBM Corp. 1999
`
`iii
`
`HP_1018_0005
`
`
`
`3.2 Working with Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`3.2.1 How to Add a Message Type to an Application . . . . . . . . . . . . . . 41
`3.2.2 How to Define a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
`3.2.3 How to Specify Actions for a Rule. . . . . . . . . . . . . . . . . . . . . . . . 43
`3.3 Testing Formats and Rules with the Visual Tester . . . . . . . . . . . . . . . 45
`3.3.1 How to Test If the Input Message Is Defined Correctly . . . . . . . . 46
`3.3.2 How to Test If the Output Message Is Defined Correctly . . . . . . . 48
`3.3.3 How to Test If the Rules Work Properly . . . . . . . . . . . . . . . . . . . 49
`3.4 Using the Rules Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
`3.4.1 How to Set Up the Environment . . . . . . . . . . . . . . . . . . . . . . . . . 52
`3.4.2 What the Rules Processor Configuration File Is For . . . . . . . . . . 53
`3.4.3 How to Start the Rules Processor . . . . . . . . . . . . . . . . . . . . . . . . 55
`
`Chapter 4. Tools That Help with Development . . . . . . . . . . . . . . . . . . . 57
`4.1 Using msgtest to Test If a Message Reformats Correctly . . . . . . . . . . 58
`4.2 Using ruletest to Evaluate Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
`4.3 Debugging Rules Using NNRTrace . . . . . . . . . . . . . . . . . . . . . . . . . . 61
`4.4 Using MQSIputdata to Create Messages with RFH Header . . . . . . . . 63
`4.5 Displaying Messages with MQSIgetdata . . . . . . . . . . . . . . . . . . . . . . . 69
`4.6 Importing and Exporting Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
`4.6.1 How to Export a Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
`4.6.2 How to Import a Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
`4.7 Importing and Exporting Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
`4.7.1 How to Export Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
`4.7.2 How to Import Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
`4.8 The Visual Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
`4.8.1 Installing the Visual Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
`4.8.2 Logging On to the Visual Tester . . . . . . . . . . . . . . . . . . . . . . . . . 80
`4.8.3 Loading a Message into a Queue . . . . . . . . . . . . . . . . . . . . . . . . 81
`4.8.4 Testing an Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
`4.8.5 Testing Reformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
`4.8.6 Testing Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
`
`Chapter 5. Formatting Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
`5.1 Using Delimited Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
`5.1.1 Defining an Input Format with Delimited Fields . . . . . . . . . . . . . . 90
`5.1.2 Defining an Output Format with Fields and Literals. . . . . . . . . . . 96
`5.2 Using Fields with Prefixes and Suffixes . . . . . . . . . . . . . . . . . . . . . . . 99
`5.2.1 Adding Fields and Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
`5.2.2 Creating a Prefix and a Suffix . . . . . . . . . . . . . . . . . . . . . . . . . . 101
`5.2.3 Attaching Prefixes and Suffixes to Fields . . . . . . . . . . . . . . . . . 102
`5.3 Output Operation Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
`5.3.1 How to Define an Output Operation Collection . . . . . . . . . . . . . 106
`
`iv
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0006
`
`
`
`5.3.2 How to Assign an Output Operation Collection to a Field . . . . . 107
`5.4 Substituting Field Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
`5.4.1 How to Define Substitution Values . . . . . . . . . . . . . . . . . . . . . . 110
`5.4.2 How to Define Substitutions for a Field . . . . . . . . . . . . . . . . . . . 112
`5.5 Using Fields Containing Length and Data . . . . . . . . . . . . . . . . . . . . . 112
`5.5.1 Parsing Input Fields with Length and Data . . . . . . . . . . . . . . . . 113
`5.5.2 Putting Fields with Length and Data . . . . . . . . . . . . . . . . . . . . . 115
`5.6 Using Fields Containing a Tag (Field ID) . . . . . . . . . . . . . . . . . . . . . 118
`5.6.1 Parsing Input Fields with Tag and Data . . . . . . . . . . . . . . . . . . 119
`5.6.2 Parsing Input Fields with Tag, Length and Data . . . . . . . . . . . . 121
`5.6.3 Putting Fields with Tag and Data . . . . . . . . . . . . . . . . . . . . . . . 122
`5.6.4 Putting Fields with Tag, Length and Data . . . . . . . . . . . . . . . . . 125
`5.7 Messages with Date and Time Fields . . . . . . . . . . . . . . . . . . . . . . . . 125
`5.7.1 Parsing a Date Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
`5.7.2 Putting a Date Field into a Message . . . . . . . . . . . . . . . . . . . . . 128
`5.8 Adding Fields with Calculated Values . . . . . . . . . . . . . . . . . . . . . . . . 129
`5.9 Compound Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
`5.9.1 Objects for the Compound Example . . . . . . . . . . . . . . . . . . . . . 132
`5.9.2 Defining an Input Compound Format . . . . . . . . . . . . . . . . . . . . 132
`5.9.3 Defining an Output Compound Format . . . . . . . . . . . . . . . . . . . 134
`
`Chapter 6. Writing Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
`6.1 About Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
`6.2 Techniques for Creating Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
`6.2.1 Creating a New Application Group . . . . . . . . . . . . . . . . . . . . . . 137
`6.2.2 Creating a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
`6.2.3 Creating a Subscription and Action. . . . . . . . . . . . . . . . . . . . . . 140
`6.2.4 Testing a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
`6.3 Adding Rules and Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
`6.4 Multiple Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
`6.5 Changing MQMD Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
`6.5.1 The MQSI Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
`6.5.2 About Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
`6.5.3 Get and Put Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
`6.6 Management API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
`
`Chapter 7. MQSI As an Intelligent Router . . . . . . . . . . . . . . . . . . . . . . 153
`7.1 Data Entry and Message Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
`7.2 Warehouse Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
`7.3 Re-Composition of the Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
`7.4 Route Depending on Message Contents . . . . . . . . . . . . . . . . . . . . . 159
`
`Chapter 8. Some Comments about Security. . . . . . . . . . . . . . . . . . . . 163
`8.1 Adding a Database User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
`
`v
`
`HP_1018_0007
`
`
`
`Chapter 9. The MQSeries SAP Link . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
`
`Appendix A. Check Reply C Program . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
`
`Appendix B. Special Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
`
`Appendix C. Related Publications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
`C.1 International Technical Support Organization Publications . . . . . . . . . . 177
`C.2 Redbooks on CD-ROMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
`C.3 Other Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
`
`How to Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
`IBM Redbook Fax Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
`
`List of Abbreviations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
`
`Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
`
`ITSO Redbook Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
`
`vi
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0008
`
`
`
`Figures
`
`1. MQSeries Integrator Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
`2. Client Configuration Assistant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
`3. DB2-Related Information in the sqlsvses.cfg File . . . . . . . . . . . . . . . . . . . 16
`4. Formatter GUI for IVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
`5. Rules GUI for IVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
`6. Rules Daemon Configuration File mqsiruleng.mpf for the IVP . . . . . . . . . 19
`7. Using the IVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
`8. AIX Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
`9. Tutorial: Input and Output Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
`10. MQSI Formatter Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
`11. Tutorial: Creating Input Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
`12. Tutorial: Creating an Input Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
`13. Tutorial: Creating a Flat Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
`14. Tutorial: Input Flat Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
`15. Tutorial: Add Fields to a Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
`16. Tutorial: Select Fields for a Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
`17. Tutorial: Input Format with Fields. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
`18. Tutorial: Assign an Input Control to a Field . . . . . . . . . . . . . . . . . . . . . . . . 34
`19. Tutorial: Creating an Output Control (2). . . . . . . . . . . . . . . . . . . . . . . . . . . 35
`20. Tutorial: Creating an Output Control (2). . . . . . . . . . . . . . . . . . . . . . . . . . . 36
`21. Tutorial: Output Control Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
`22. Tutorial: Creating a Flat Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
`23. Tutorial: Output Format with Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
`24. Tutorial: Assign an Output Control to a Field . . . . . . . . . . . . . . . . . . . . . . . 38
`25. MQSI Rules Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`26. Tutorial: Creating a Message Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
`27. Tutorial: Adding a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
`28. Tutorial: Defining a Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
`29. Tutorial: Creating a Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
`30. Tutorial: Defining a Reformat Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
`31. Tutorial: Defining a Put Message Action . . . . . . . . . . . . . . . . . . . . . . . . . . 44
`32. Tutorial: Test Input Format Using the Visual Tester . . . . . . . . . . . . . . . . . 46
`33. Tutorial: Test Reformatting Using the Visual Tester . . . . . . . . . . . . . . . . . 48
`34. Tutorial: Test Rules Using the Visual Tester . . . . . . . . . . . . . . . . . . . . . . . 50
`35. Tutorial: Rules Daemon Configuration File tutorial.mpf . . . . . . . . . . . . . . . 54
`36. Tools: Parameters for msgtest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
`37. Tools: Example of Using msgtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
`38. Tools: Parameters for ruletest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
`39. Tools: Example of Using ruletest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
`40. Tools: Example of Using NNRTrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
`
`© Copyright IBM Corp. 1999
`
`vii
`
`HP_1018_0009
`
`
`
`41. Tools: How MQSIputdata Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
`42. Tools: mqsiputdata.mpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
`43. Tools: Starting MQSIputdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
`44. Tools: Message With NEON Header (MQRFH). . . . . . . . . . . . . . . . . . . . . 67
`45. Tools: Message Reformatted by the Rules Daemon . . . . . . . . . . . . . . . . . 69
`46. Tools: How MQSIgetdata Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
`47. Tools: mqsigetdata.mpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
`48. Tools: Starting MQSIgetdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
`49. Tools: Output of MQSIgetdata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
`50. Tools: Parameters for NNFie (Import and Export Formats) . . . . . . . . . . . . 72
`51. sqlsvses.cfg for Use with DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
`52. Tools: Parameters for NNRie (Import and Export Rules). . . . . . . . . . . . . . 75
`53. Tools: Export Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
`54. Tools: Import Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
`55. Visual Tester Install: Select Database and Queuing . . . . . . . . . . . . . . . . . 79
`56. Visual Tester Install: OCX Registration Failure . . . . . . . . . . . . . . . . . . . . . 79
`57. Visual Tester Logon Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
`58. Visual Tester: Load Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
`59. Visual Tester: Test Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
`60. Visual Tester: Test Reformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
`61. Visual Tester: Test Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
`62. Formatter Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
`63. Delimited Fields Example: Input Objects . . . . . . . . . . . . . . . . . . . . . . . . . . 90
`64. Defining the Literal Semicolon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
`65. Example of Defining a Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
`66. Example of Defining an Input Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
`67. Example of Creating a Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
`68. Example of Associating Fields with Input Control Names . . . . . . . . . . . . . 95
`69. Delimited Fields Example: Output Objects . . . . . . . . . . . . . . . . . . . . . . . . 96
`70. Defining an Output Control for a Field with a Literal Value . . . . . . . . . . . . 97
`71. Assigning an Output Control to a Field . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
`72. Mapping Input to Output Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
`73. Prefix/Suffix Example: Input Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
`74. Prefix/Suffix Example: Output Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
`75. Defining a Prefix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
`76. Output Control with Suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
`77. Assigning an Output Control Name to a Field . . . . . . . . . . . . . . . . . . . . . 104
`78. Output Operation Collections Example: Objects . . . . . . . . . . . . . . . . . . . 105
`79. Defining an Output Operation Collection . . . . . . . . . . . . . . . . . . . . . . . . . 106
`80. Output Operations Available for Collection . . . . . . . . . . . . . . . . . . . . . . . 107
`81. List of Output Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
`82. Substitution Example: Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
`83. Defining a Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
`
`viii
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0010
`
`
`
`84. Specifying Substitution Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
`85. Length and Data Example: Input Objects . . . . . . . . . . . . . . . . . . . . . . . . 113
`86. Input Control for Fields with Length and Data . . . . . . . . . . . . . . . . . . . . . 114
`87. Test Input Format with Length and Data . . . . . . . . . . . . . . . . . . . . . . . . . 115
`88. Length and Data Example: Output Objects . . . . . . . . . . . . . . . . . . . . . . . 116
`89. Output Control for a Field with Length and Data . . . . . . . . . . . . . . . . . . . 117
`90. Test Output Format with Length and Data. . . . . . . . . . . . . . . . . . . . . . . . 118
`91. Tag and Data Example: Input Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
`92. Input Control for Fields with Tag and Data . . . . . . . . . . . . . . . . . . . . . . . 120
`93. Input Control for Field with Tag, Length and Data . . . . . . . . . . . . . . . . . . 121
`94. Tag and Data Example: Output Objects . . . . . . . . . . . . . . . . . . . . . . . . . 122
`95. Output Control for a Field with Tag (from Input) and Data. . . . . . . . . . . . 124
`96. Output Control for a Field with Tag and Data . . . . . . . . . . . . . . . . . . . . . 124
`97. Conversion of a Date Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
`98. Input Control for a Custom Date and Time Field . . . . . . . . . . . . . . . . . . . 128
`99. Output Control for a Custom Date and Time Field. . . . . . . . . . . . . . . . . . 129
`100.Objects for Input Compound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
`101.Objects for Output Compound. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
`102.Rules Hierarchy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
`103.Adding a New Application Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
`104.Rules Window with Simple Expression . . . . . . . . . . . . . . . . . . . . . . . . . . 138
`105.Rule Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
`106.Subscription - Simple Put Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
`107.Using Two Rules and Reformatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
`108.Test of Multiple Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
`109.Fruit Salad Example - Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
`110.Fruit Salad Example - Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
`111.Fruit Salad Example - Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
`112.Fruit Salad Example - Rule Expression. . . . . . . . . . . . . . . . . . . . . . . . . . 157
`113.Fruit Salad Example - Subscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
`114.Fruit Salad Example - Rule Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
`115.Fruit Salad Example - Fields for Reply Messages . . . . . . . . . . . . . . . . . 160
`116.Fruit Salad Example - Rule Expression for Second MQSI Instance . . . . 161
`117.Security for a Rule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
`118.Sample SAP IDoc Loaded in Formatter GUI. . . . . . . . . . . . . . . . . . . . . . 165
`
`ix
`
`HP_1018_0011
`
`
`
`x
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0012
`
`
`
`Tables
`
`1. MQSI Database Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
`2. Tutorial: Formatter Objects to Define. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
`3. MQSI Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
`4. MQSIputdata Input Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
`5. MQSI Header (MQHRF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
`6. Substitution Example: Table for Countries. . . . . . . . . . . . . . . . . . . . . . . . 109
`7. Fields in the MQRFH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
`8. Fruit Salad Example - Message Format for FruitIn Queue . . . . . . . . . . . 154
`9. Fruit Salad Example - Reformatted Message for AppleQ . . . . . . . . . . . . 156
`10. Fruit Salad Example - Message Format for FruitStandIn Queue. . . . . . . 156
`11. Fruit Salad Example - Message Format for FruitStandOut Queue . . . . . 159
`12. Fruit Salad Example - Message Format for FruitSalad Queue . . . . . . . . 159
`
`© Copyright IBM Corp. 1999
`
`xi
`
`HP_1018_0013
`
`
`
`xii
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0014
`
`
`
`Preface
`
`The application integration market is rapidly emerging, driven by
`organizations’ business need and the availability of a new class of software,
`known as message brokers.
`
`The MQSeries Integrator is the first product available in the MQSeries
`Integrator layer of IBM’s Business Integration with MQSeries. It is message
`brokering software that ensures business-critical applications and processes
`can understand each other. Based on MQSeries' messaging and queuing
`capabilities, the MQSeries Integrator is a real-time, intelligent, rules-based
`message routing and dynamic message content transformation and
`formatting system that allows you to integrate all types of applications and
`systems into robust, flexible and scalable information networks.
`
`This redbook explains how and for what you can use the MQSeries Integrator
`in your enterprise. It gives you a broad understanding of the product and its
`features that increase productivity in application integration. It describes:
`
`• How to integrate applications where one program produces output in a
`different format from what the partner program needs as input. Examples
`that show how the MQ Series Integrator can add information to a message
`are also included.
`
`• How to use the product for intelligent routing, that is, sending a message
`to one or more different programs according to information within the
`message. Examples explain how you can forward a complete message or
`different parts of a messge to several partners.
`
`• How to use the graphical user interface provided with the MQSeries
`Integrator to perform integration tasks quickly and easily.
`
`Persons who have no knowledge of the MQSeries Integrator can use this
`publication as a textbook.
`
`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.
`
`Dieter Wackerow is the MQSeries expert at the International Technical
`Support Organization, Raleigh Center. His areas of expertise include
`application design and development for different industries, performance
`evaluations, capacity planning, and modelling of computer systems and
`
`© Copyright IBM Corp. 1999
`
`xiii
`
`HP_1018_0015
`
`
`
`networks. He writes extensively and teaches IBM classes worldwide on all
`areas of application development with MQSeries.
`
`Morten Saetra is an IBM Certified MQSeries Specialist in Norway. He has
`five years of experience in MQSeries and 13 years with CICS. During this
`time he has advised and supported customers in various MQSeries and CICS
`projects. Besides that he also teaches MQSeries classes for IBM Learning
`Services.
`
`Ken Palmer is a Certified I/T Specialist in the United States. He has 9 years
`of experience in the transaction system arena. He has worked at IBM for 12
`years. His areas of expertise include MQSeries, which he implemented at the
`1996 Atlanta Olympic Games.
`
`Jorgen Becker-Hansen has worked with middleware for over six years,
`recently joining MQSeries Strategic Support as a consultant in the UK. He
`holds a Computer Science degree from the University of Westminster.
`
`Thanks to the following people for their invaluable contributions to this project:
`
`Bashar Kilani
`Mark Swinson
`IBM Hursley, England
`
`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:
`
`• Fax the evaluation form found in “ITSO Redbook Evaluation” on page 189
`to the fax number shown on the form.
`
`• Use the online evaluation form found at http://www.redbooks.ibm.com
`
`• Send your comments in an internet note to redbook@us.ibm.com
`
`xiv
`
`Using the MQSeries Integrator Version 1.0
`
`HP_1018_0016
`
`
`
`Chapter 1. Overview
`
`Conducting business globally and electronically becomes more and more
`complex. With the rapid growth of business on the Internet, the wave of
`mergers and acquisitions, and industry deregulation, companies can no
`longer afford isolated IT systems that can't talk to each other.
`
`With MQSeries, IBM provides middleware that allows customers to reliably
`interconnect heterogeneous platforms and environments using asynchronous
`messaging. Customers have used the base MQSeries product to reliably
`interconnect their applications and systems within their enterprise, and also
`across enterprises.
`
`Now IBM announced additional products and capabilities to address larger
`business integration needs. These new capabilities not only will provide value
`added services to assist in applications and information integration, but will
`also support integration of their business processes. Furthermore, customers
`will be able to do such integration within their enterprise and across their
`customer/supplier/third-party enterprises.
`
`1.1 Business Integration
`IBM provides a solution for business integration. IBM Business Integration
`with MQSeries consists of three offerings which can be used together or
`separately, in any combination:
`• MQSeries, IBM's industry-leading, messaging-oriented middleware,
`enables diverse applications to communicate securely and reliably, with
`enterprise-level performance, over a wide range of platforms. MQSeries
`leads the market with over 4000 customer sites and has broad partner
`support.
`• MQSeries Integrator (MQSI) software enables integration of applications
`and systems into robust, flexible and scalable information networks. Based
`on MQSeries messaging and queuing capabilities, the MQSeries
`Integrator is a real-time, intelligent rules-based message routing and
`dynamic message content transformation and formatting system. Along
`with this functionality, preconfigured templates for major packaged
`applications and e-bus