PCCon MQSeries
PCCon MQSeries
This software and documentation contain proprietary information of Informatica Corporation, they are provided under a license agreement
containing restrictions on use and disclosure and is also protected by copyright law. Reverse engineering of the software is prohibited. No
part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)
without prior consent of Informatica Corporation.
Use, duplication, or disclosure of the Software by the U.S. Government is subject to the restrictions set forth in the applicable software
license agreement as provided in DFARS 227.7202-1(a) and 227.7702-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR
12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable.
The information in this document is subject to change without notice. If you find any problems in the documentation, please report them to
us in writing. Informatica Corporation does not warrant that this documentation is error free.
Informatica, PowerMart, PowerCenter, PowerCenter Connect, PowerConnect, and PowerChannel are trademarks or registered trademarks of
Informatica Corporation in the United States and in jurisdictions throughout the world. All other company and product names may be trade
names or trademarks of their respective owners.
Informatica PowerCenter products contain ACE™ software copyrighted by Douglas C. Schmidt and his research group at Washington
University and University of California, Irvine, Copyright © 1993-2002, all rights reserved.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
The Apache Software is Copyright © 1999-2004 The Apache Software Foundation. All rights reserved.
DISCLAIMER: Informatica Corporation provides this documentation “as is” without warranty of any kind, either express or implied,
including, but not limited to, the implied warranties of non-infringement, merchantability, or use for a particular purpose. The information
provided in this documentation may include technical inaccuracies or typographical errors. Informatica could make improvements and/or
changes in the products described in this documentation at any time without notice.
Table of Contents
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
New Features and Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiv
PowerCenter Connect for IBM MQSeries 7.1.1 . . . . . . . . . . . . . . . . . .xiv
PowerCenter Connect for IBM MQSeries 7.1 . . . . . . . . . . . . . . . . . . . .xiv
PowerCenter Connect for IBM MQSeries 7.0 . . . . . . . . . . . . . . . . . . . .xiv
About Informatica Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About this Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xviii
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xviii
Other Informatica Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Visiting Informatica Customer Portal . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Visiting the Informatica Webzine . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Visiting the Informatica Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Visiting the Informatica Developer Network . . . . . . . . . . . . . . . . . . . . .xix
Obtaining Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
iii
Step 2. Create a Target Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Step 3. Create a Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Step 4. Create a Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Step 5. Create and Schedule a Workflow . . . . . . . . . . . . . . . . . . . . . . . . .9
iv Table of Contents
Chapter 4: MQ Source Qualifier Transformation . . . . . . . . . . . . . . . . 39
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
MQ Source Qualifier Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Associated Source Qualifier Transformation . . . . . . . . . . . . . . . . . . . . . 40
Transformation Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Working with an MQ Source Qualifier Transformation . . . . . . . . . . . . . . . . 42
Message Header Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Message Data Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Working with an Associated Source Qualifier Transformation . . . . . . . . . . . 45
Filtering Messages from the Source Queue . . . . . . . . . . . . . . . . . . . . . . . . . 48
Controlling End of File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Controlling Data Extraction in Real Time . . . . . . . . . . . . . . . . . . . . . . 50
Controlling Forced End of Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Controlling Incremental Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Controlling Queue Clean-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Entering a Filter Condition in the MQ Source Qualifier . . . . . . . . . . . . . . . 56
Filter Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Syntax Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Filtering Messages Using Message Header Ports . . . . . . . . . . . . . . . . . . . 57
Entering a Filter Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Creating an MQ Source Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Configuring an MQ Source Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Creating an Associated Source Qualifier . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Table of Contents v
Editing an MQSeries Target Definition . . . . . . . . . . . . . . . . . . . . . . . . . 75
vi Table of Contents
Appendix D: MQSeries Error Messages . . . . . . . . . . . . . . . . . . . . . . 111
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Designer Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Server Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
FR Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
MQ Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
REP Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
TE Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
TM Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
WRT Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
XMLW Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
List of Figures ix
x List of Figures
List of Tables
Table 1-1. MQSeries Message Header Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. 4
Table 2-1. Command Parameters for Defining the Server-Connection Channel . . . . . . . . .. . . 16
Table 2-2. Command Parameters for Defining the Client-Connection Channel . . . . . . . . .. . . 17
Table 2-3. System Environment Variable Names for Queue Connections on Windows . . . .. . . 18
Table 2-4. System Environment Variable Values for Queue Connections on Windows . . . .. . . 18
Table 4-1. Associated Source Qualifier Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 45
Table 4-2. Logical Operators for Filter Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 56
Table 4-3. Logical Operator Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 57
Table 4-4. MQSeries Message Header Fields with Description and Datatype . . . . . . . . . . .. . . 58
Table 5-1. Values for Message Header Fields in MQSeries Target Messages . . . . . . . . . . . .. . . 68
Table 5-2. Target Definitions for Static MQSeries Targets . . . . . . . . . . . . . . . . . . . . . . . .. . . 73
Table 6-1. runmqlsr Command Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 95
Table B-1. MQSeries and Transformation Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 107
List of Tables xi
xii List of Tables
Preface
xiii
New Features and Enhancements
This section describes new features and enhancements to PowerCenter Connect for IBM
MQSeries 7.0, 7.1 and 7.1.1.
xiv Preface
About Informatica Documentation
The complete set of documentation for PowerCenter includes the following books:
♦ Data Profiling Guide. Provides information about how to profile PowerCenter sources to
evaluate source data and detect patterns and exceptions.
♦ Designer Guide. Provides information needed to use the Designer. Includes information to
help you create mappings, mapplets, and transformations. Also includes a description of
the transformation datatypes used to process and transform source data.
♦ Getting Started. Provides basic tutorials for getting started.
♦ Installation and Configuration Guide. Provides information needed to install and
configure the PowerCenter tools, including details on environment variables and database
connections.
♦ PowerCenter Connect® for JMS ® User and Administrator Guide. Provides information
to install PowerCenter Connect for JMS, build mappings, extract data from JMS messages,
and load data into JMS messages.
♦ Repository Guide. Provides information needed to administer the repository using the
Repository Manager or the pmrep command line program. Includes details on
functionality available in the Repository Manager and Administration Console, such as
creating and maintaining repositories, folders, users, groups, and permissions and
privileges.
♦ Transformation Language Reference. Provides syntax descriptions and examples for each
transformation function provided with PowerCenter.
♦ Transformation Guide. Provides information on how to create and configure each type of
transformation in the Designer.
♦ Troubleshooting Guide. Lists error messages that you might encounter while using
PowerCenter. Each error message includes one or more possible causes and actions that
you can take to correct the condition.
♦ Web Services Provider Guide. Provides information you need to install and configure the Web
Services Hub. This guide also provides information about how to use the web services that the
Web Services Hub hosts. The Web Services Hub hosts Real-time Web Services, Batch Web
Services, and Metadata Web Services.
♦ Workflow Administration Guide. Provides information to help you create and run
workflows in the Workflow Manager, as well as monitor workflows in the Workflow
Monitor. Also contains information on administering the PowerCenter Server and
performance tuning.
♦ XML User Guide. Provides information to create PowerCenter definitions from XML,
XSD, or DTD files, and relational or XML definitions. Includes information on running
sessions with XML data. Also includes details on using the Midstream XML
transformation to extract or generate XML within a pipeline.
Preface xv
Documentation available with our other products includes:
xvi Preface
♦ PowerCenter® Connect for webMethods ™ User and Administrator Guide. Provides
information to install PowerCenter Connect for webMethods, build mappings, extract data
from webMethods documents, and load data into webMethods documents.
♦ PowerCenter® Connect for Web Services User and Administrator Guide. Provides
information to install PowerCenter Connect for Web Services, extract data from a web
service source, transform data using a web service, and load data into a web service target.
♦ PowerCenter® Connect Software Development Kit Developer Guide. Provides
information to install PowerCenter Connect SDK and build plug-ins to extract data from
third-party applications and load data into third-party applications.
Preface xvii
About this Book
The Informatica PowerCenter Connect for IBM MQSeries User and Administrator Guide
provides information to install PowerCenter Connect for IBM MQSeries, build mappings,
extract data from message queues, and load data into message queues. It is written for the
database administrators and developers who are responsible for extracting data from message
queues and loading data into data warehouses or message queues.
This book assumes you have knowledge of relational database concepts and the database
engines, PowerCenter, and the IBM MQSeries system. You should also be familiar with the
interface requirements for other supporting applications. For additional information about
related IBM MQSeries issues, refer to your IBM MQSeries documentation.
The material in this book is available in online help.
Document Conventions
This guide uses the following formatting conventions:
italicized monospaced text This is the variable name for a value you enter as part of an
operating system command. This is generic text that should be
replaced with user-supplied values.
Warning: The following paragraph notes situations where you can overwrite
or corrupt data, unless you follow the specified procedure.
bold monospaced text This is an operating system command you enter from a prompt to
run a task.
xviii Preface
Other Informatica Resources
In addition to the product manuals, Informatica provides these other resources:
♦ Informatica Customer Portal
♦ Informatica Webzine
♦ Informatica web site
♦ Informatica Developer Network
♦ Informatica Technical Support
Preface xix
The site contains information on how to create, market, and support customer-oriented add-
on solutions based on Informatica’s interoperability interfaces.
Belgium
Phone: +32 15 281 702
Hours: 9 a.m. - 5:30 p.m. (local time)
France
Phone: +33 1 41 38 92 26
Hours: 9 a.m. - 5:30 p.m. (local time)
Germany
Phone: +49 1805 702 702
Hours: 9 a.m. - 5:30 p.m. (local time)
Netherlands
Phone: +31 306 082 089
Hours: 9 a.m. - 5:30 p.m. (local time)
Singapore
Phone: +65 322 8589
Hours: 9 a.m. - 5 p.m. (local time)
Switzerland
Phone: +41 800 81 80 70
Hours: 8 a.m. - 5 p.m. (local time)
xx Preface
Chapter 1
Understanding PowerCenter
Connect for IBM MQSeries
1
Overview
PowerCenter Connect for IBM MQSeries integration allows you to extract data from IBM
MQSeries message queues and load data into IBM MQSeries message queues.
Message queues are used in environments where applications communicate by sending each
other data in messages rather than calling each other directly. An application can request data
from another application by putting a request message on a message queue. The receiving
application retrieves the message from the queue, processes the request, and generates a reply
message on a message queue. A messaging and queueing architecture allows programs to run
independently of each other, at different speeds and times and in different locations without
having a logical connection between them.
Using PowerCenter Connect for IBM MQSeries integration, you can extract data from
messages in a queue, transform the data according to your business rules, and then load the
data to a target data warehouse or message queue.
This chapter provides an overview of the integration between PowerCenter and IBM
MQSeries. For more information about IBM MQSeries, see your IBM MQSeries
documentation.
When you use PowerCenter Connect for IBM MQSeries, you can use Lookup
transformations in an MQSeries mapping, but you cannot perform lookups on an MQSeries
source.
Queue Manager
An application connects to a queue manager to send or receive messages through a message
queue. For example, PowerCenter Connect for IBM MQSeries uses a queue manager to read
source messages from a queue and write target messages to a queue. All message queues in an
MQSeries system belong to a queue manager. The queue manager provides functions to
administer queues, create new queues, or control the operation of the queue manager. For
more information about specifying a queue manager in PowerCenter Connect for IBM
MQSeries, see “Step 3. Configure Queue Connection Properties” on page 21.
Message Queue
A message queue is a destination to which messages can be sent. One program sends a message
to another by putting the message on a message queue. The message remains on the queue
until the receiving application retrieves it. For example, PowerCenter Connect for IBM
MQSeries reads source messages from a queue and writes target messages to a queue. The
queue can either be a volatile buffer area in the memory of a computer or a data set on a
permanent storage device set aside by the queue manager to hold messages.
MQSeries Messages
An MQSeries message is a collection of data that one program sends to another program. An
MQSeries message has the following components:
♦ Message header
♦ Message data
MQSeries Architecture 3
Message Header
The message header component contains data about the message on the queue. Message
header data includes message identification number, message format, and other message
descriptor data. In PowerCenter, MQSeries sources and dynamic MQSeries targets
automatically contain MQSeries message header fields. For more information about
MQSeries sources, see “Working with MQSeries Sources” on page 27. For more information
about MQSeries targets, see “Working with MQSeries Targets” on page 65.
Table 1-1 lists all the fields in the message header component of an IBM MQSeries message:
Message Data
Message data is the application data or the contents of the message body. For example, if an
application sends a list of customer names to another application, the customer names
comprise the message data component of the message. The content and format of the message
data is defined by the application that uses the message queue. MQSeries does not enforce any
structure on the content and format of the message data. In PowerCenter, MQSeries sources
and dynamic MQSeries targets automatically contain an MQSeries message data field. For
more information about MQSeries sources, see “Working with MQSeries Sources” on
page 27. For more information about MQSeries targets, see “Working with MQSeries
Targets” on page 65.
MQSeries Architecture 5
MQSeries Sources and Targets
With PowerCenter Connect for IBM MQSeries, you can extract data from IBM MQSeries
message queues and write data to IBM MQSeries message queues.
MQSeries Sources
When you extract data from an MQSeries source, you extract data from the message header
and the message data components of an IBM MQSeries message. PowerCenter treats the
message header component as message header fields. The message header fields contain
information about the message on the queue. Using the message header data, you can filter
messages for extraction. For example, you can extract messages based on the format of the
message, or you can filter messages that originated from a particular application. For a list of
message header fields, see “Message Header” on page 4.
PowerCenter treats the message data component of a message as a field containing message
data. The PowerCenter Server can extract message data in the following formats:
♦ Flat file (fixed-width or delimited)
♦ XML
♦ COBOL
♦ Binary
For more information about MQSeries sources, see “Working with MQSeries Sources” on
page 27.
MQSeries Targets
The PowerCenter Server can load data to the message header and the message data fields of an
IBM MQSeries message. It can load message data to an MQSeries message in the following
formats:
♦ Flat file (fixed-width or delimited)
♦ XML
♦ COBOL
♦ Binary
For more information about MQSeries targets, see “Working with MQSeries Targets” on
page 65.
11
Overview
PowerCenter Connect for IBM MQSeries requires installation and configuration on
PowerCenter and IBM MQSeries. The administrators for each of these systems should
perform the installation and configuration tasks for their respective systems.
To install PowerCenter Connect for IBM MQSeries for the PowerCenter Server on
Windows:
To install PowerCenter Connect for IBM MQSeries for the PowerCenter Server on
UNIX or Linux:
To set memory address space for the IPC segment on the PowerCenter Server:
1. Start the queue manager for which you want to establish the server-connection channel
by entering strmqm from the command line.
2. Start MQSeries commands by entering runmqsc from the command line.
3. Enter the following command to create the server-connection channel:
DEFINE CHANNEL (<channel_name>) CHLTYPE (<channel_type>) TRPTYPE
(<transmission_protocol>) MCAUSER ('<MCA_User_ID>')
Table 2-1 describes the command parameters for defining the server-connection channel:
Required/
Option Argument Description
Optional
DEFINE CHANNEL Required channel_name Enter a new name for the channel.
MCAUSER Required MCA_User_ID Enter a space surrounded by single quotes for the
MCA user ID. For example, enter the following for
MCA user ID:
MCAUSER (' ')
Table 2-2 describes the command parameters for defining the client-connection channel:
Required/
Option Argument Description
Optional
DEFINE CHANNEL Required channel_name Enter a new name for the channel.
3. Repeat step 2 for each queue manager you want to connect to during a PowerCenter
session.
Table 2-3. System Environment Variable Names for Queue Connections on Windows
MQServer MQSERVER
Note: To use a channel table, you need to set two variables. Repeat steps 2 to 4 to enter
the variables one at a time.
3. In the Value field, enter the value for the variable:
Table 2-4. System Environment Variable Values for Queue Connections on Windows
Connection
Value Description
Type
MQServer Enter the connection properties of the queue manager the PowerCenter Server connects to in
the following format:
<Channel Name>\Protocol\<Connection Name>
where the channel name is the name of the server-connection channel you set, TCP is the
transport type, and connection name is the hostname and port number of the machine hosting
the queue manager.
Channel table For MQCHLLIB, enter the absolute path to the amqclchl.tab table. For example you can enter
the following path:
c:\ProgramFiles\MQSeries\QMgrs\QM_cserversonpc.Informatica.com\@IPCC
System
C Shell
Variable
For example:
setenv MQSERVER S_s153664/TCP/192.168.40.64(1414)
For example:
setenv MQCHLLIB /user/channel
For example:
setenv MQCHLTAB amqclchl.tab
System
Bourne Shell
Variable
For example:
MQSERVER = S_s153664/TCP/ 192.168.40.64(1414); export MQSERVER
For example:
MQCHLLIB = /user/channel; export MQCHLLIB
For example:
MQCHLTAB = amqclchl.tab; export MQCHLTAB
3. Click New.
The Select Subtype dialog box appears.
Name Enter the name you want to use for this connection.
Queue Manager Enter the name of the queue manager for the message queue.
6. Click OK.
The new queue connection appears in the Message Queue connection list.
7. To add more connections, repeat steps 3 to 6.
8. To edit or delete queue connection, select the queue connection from the list and click
the appropriate button.
1. From the command prompt of the MQSeries server machine, go to the <mqseries>\bin
directory.
2. Use the amqsputc command to test the connection for the queue.
Note: The amqsputc command puts a new message on the queue. If you test the
connection to a queue in a production environment, make sure you terminate the
command to avoid writing a message to a production queue.
For example, to test the connection to the queue “production,” which is administered by
the queue manager “QM_s153664.informatica.com,” enter the following command:
amqsputc production QM_s153664.informatica.com
27
Overview
Before you extract data from an MQSeries source, you need to define the metadata for the
source in the repository. The metadata that defines a source is called the source definition.
PowerCenter uses the source definition in a mapping to extract data from the source.
When you extract data from an MQSeries source, you extract data from messages in an
MQSeries message queue. Similar to relational sources, an MQSeries source contains data in a
number of fields. There are 29 message header fields in an MQSeries message and one
message data field. The message header fields contain information about the message. The
message data field contains the actual message. The message data can be one or more rows of
data in binary, flat file, COBOL, or XML format. The message data format determines the
types of source definitions you need to use in the mapping. For a complete list of message
header fields, see “Message Header” on page 4.
For MQSeries sources, you can use the following types of source definitions in a mapping:
♦ MQSeries source definition
♦ Associated source definition
Message
Header
Fields
Message
Data Field
MQ Source Qualifier
When you pass the message header fields through an MQ Source Qualifier, you can also use
the message header fields to filter messages that PowerCenter reads from the message queue.
For example, a message queue may contain messages from several applications or messages in
several formats. You can create a filter condition in the MQ Source Qualifier that allows the
PowerCenter Server to only read messages from a particular application and messages of a
particular format. For more information about associating an MQSeries source with an
associated source, and setting filter conditions, see “MQ Source Qualifier Transformation” on
page 39.
MsgId
CorrelId
Message BackoutCount
Header
ReplyToQ
ReplyToQMgr
LAST_NAME
FIRST_NAME
Message
Data ADDRESS
(Flat File Data) CITY
STATE
ZIP
There are two source definitions in the illustration: an MQSeries source definition and an
associated source definition. The associated source definition contains the metadata for the
message data field. Since the message data is in flat file format, the associated source
definition is a flat file source definition.
When you create a Midstream XML Parser transformation, you use the XML Wizard and
XML Editor to define the XML groups. For more information about creating Midstream
XML Parser transformations, see the PowerCenter XML User Guide.
This example shows the Message_ID port in the MQ Source Qualifier linked to the
Message_ID pass-through port in the Midstream XML Parser transformation. The Midstream
XML Parser transformation passes the data through the reference output port COL0 and to
the ID port in the target table.
For more information about creating pass-through ports for a Midstream XML Parser
transformation, see the PowerCenter XML User Guide. For information about writing XML
data, see “Writing XML Message Data” on page 69.
3. Click Done.
The Designer displays an MQSeries source definition in the Source Analyzer workspace
with a predefined set of message header fields and one message data field.
4. Choose Repository-Save.
1. In the Source Analyzer, double-click the title bar of the source definition.
4. Optionally edit the Datatype and Precision of the columns in the source definition.
Note: If the mapping that contains the source definition also contains an associated source
definition, the datatype for the column MsgId must be MQBYTE.
5. Click OK.
Figure 3-6. Associated Source Definition for Flat File Message Data
MQ Source Qualifier
MQSeries Source
Definition
Relational
Target
If the message data in the MQSeries source is in COBOL format, you import a VSAM source
definition from a COBOL file that exactly matches the message data in the MQSeries source.
Relational
Target
Normalizer
Note: The PowerCenter Client does not validate the structure of the message data in the
MQSeries source definition. If the source definition does not exactly match the actual
MQSeries source, the session fails.
MQ Source Qualifier
Transformation
This chapter includes the following topics:
♦ Overview, 40
♦ Working with an MQ Source Qualifier Transformation, 42
♦ Working with an Associated Source Qualifier Transformation, 45
♦ Filtering Messages from the Source Queue, 48
♦ Entering a Filter Condition in the MQ Source Qualifier, 56
♦ Creating an MQ Source Qualifier, 61
♦ Creating an Associated Source Qualifier, 64
39
Overview
In MQSeries mappings, the PowerCenter Server uses an MQ Source Qualifier transformation
to determine how the PowerCenter Server reads data from an MQSeries message queue. If
you extract message data from the MQSeries source in flat file or COBOL format, the
PowerCenter Server uses an associated source qualifier transformation to read the message
data.
When you run a workflow, the PowerCenter Server reads messages from the queue based on
the source qualifier connected ports, transformation properties, and the relationship between
connected and associated source definitions.
Depending on the type of data you want to extract from an MQSeries source, you use one or
both of the following source qualifier transformations in MQSeries mappings:
♦ MQ Source Qualifier transformation
♦ Associated source qualifier transformation
Transformation Datatypes
The transformation datatypes in the Source Qualifier are internal datatypes based on ANSI
SQL-92 generic datatypes, which PowerCenter uses to move data across platforms. When the
PowerCenter Server reads data from an MQSeries source, it converts the data from its native
datatype to the transformation datatype. When you run a workflow, the PowerCenter Server
performs transformations based on the transformation datatypes. When writing data to a
target table, the PowerCenter Server converts the data based on the native datatypes in the
target table.
The transformation datatype for all ports in the MQ Source Qualifier are predefined. You
cannot change the datatype for any of the fields in the MQ Source Qualifier. For more
information about transformation datatypes, see “MQSeries Datatype Reference” on
page 105.
Overview 41
Working with an MQ Source Qualifier Transformation
You must use an MQ Source Qualifier to extract data from an MQSeries source. Similar to
the MQSeries source definition, the MQ Source Qualifier is predefined. The MQ Source
Qualifier allows the PowerCenter Server to read all the message header fields and the message
data field from an MQSeries message.
When you add an MQSeries source definition to a mapping, the Designer creates an MQ
Source Qualifier in the Mapping Designer workspace, connecting each port on the MQSeries
source definition to a corresponding port in the MQ Source Qualifier.
Figure 4-1 displays an MQSeries source definition connected to an MQ Source Qualifier:
The connection from each source column in the MQSeries source definition to the
corresponding input port in the MQ Source Qualifier is predefined. PowerCenter reads data
from all the message header fields in an MQSeries message. You cannot delete any of the
connections.
To extract data from multiple MQSeries message queues, you must have an MQ Source
Qualifier for each message queue source in the mapping. The settings in each MQ Source
Qualifier determine how the PowerCenter Server reads data from each message queue.
MQ Source Qualifier
for Source A
MQSeries
Source B
Target C
MQ Source
Target D
Qualifier for
Source B
Note that each MQSeries source is connected to a separate MQ Source Qualifier. Unlike
other source qualifiers, you cannot join two sources using an MQ Source Qualifier in a
mapping.
When you add an associated source qualifier to a mapping, you need to associate it with an
MQ Source Qualifier. The association allows the PowerCenter Server to extract the message
data from the MQSeries source based on the transformation settings in the associated source
qualifier. For example, if the message data in the MQSeries source is in flat file format, you
use a flat file Source Qualifier to read the message data.
Note: If your mapping contains an associated source qualifier for XML data, see “XML
Message Data Without Midstream XML Transformations” on page 97.
MQ Source
Definition
Associated Source
Qualifier (Flat File)
Associated
Source Definition
Flat File
When you associate an MQ Source Qualifier with a Source Qualifier for a flat file source
definition, the Designer creates a MsgId port in the Source Qualifier with the same datatype
and precision as the MsgId port in the MQ Source Qualifier. It links the MsgId ports in the
MQ Source Qualifier and the Source Qualifier for the flat file source definition in the
mapping. The association through the MsgId preserves the relationship between the header
data and the message data in the MQSeries source. It allows the PowerCenter Server to
correlate the messages in the queue with their message data.
When you run a session, the PowerCenter Server reads the messages from the MQSeries
source based on the settings of the MQ Source Qualifier. For each message that it reads, it also
reads the message data according to the configurations of the Source Qualifier for the flat file
source definition. Similarly, if the message data in the MQSeries source is in COBOL format,
you use a Normalizer transformation to read the message data.
MQ Source Qualifier
MQSeries
Source
Definition
Relational
Target
Associated Source
Definition for Message Data
(VSAM) Normalizer Transformation
Enter functions in
a filter condition.
Destructive Read
For more information about entering filter conditions, see “Entering a Filter Condition in the
MQ Source Qualifier” on page 56.
You can also select the Destructive Read option and enter filter conditions in the session
properties. Destructive Read and filter conditions set at the session level override settings in
the Source Qualifier. For information about entering filter conditions in the session
properties, see “Entering a Filter Condition in the Session Properties” on page 79. For more
information about setting Destructive Read in the session properties, see “Message Recovery”
on page 83.
where n is the number of messages the PowerCenter Server reads from the message queue. To
read 100 messages from the source queue, enter the following filter condition:
MsgCount(100)
Idle Mode
Use the Idle(n) function in a filter condition to indicate how long the PowerCenter Server
waits for the queue to be idle before it stops reading from the queue. Enter the following
expression when you use the Idle(n) function:
Idle(n)
where n is an integer representing seconds. For example, if the value of n is 30, the
PowerCenter Server waits 30 seconds after reading from the queue. If no new messages arrive
on the queue within 30 seconds, the PowerCenter Server stops reading from the queue.
If you use the $$$SessStartTime variable instead of a specific time, you must enclose the
variable in quotes. For example, you must enter:
StartTime(“$$$SessStartTime”)
where n is an integer representing seconds. For example, if the value of n is 60, the
PowerCenter Server reads messages from the queue for 60 seconds before stopping.
You can use the ForcedEOQ(n) function in a filter condition to run a session in real time
when the mapping configuration or session properties do not support the FlushLatency(n)
function.
For example, you want to run a real-time session with an MQSeries mapping that contains an
Aggregator transformation with the All Input option selected for the Transformation Scope
property. When a mapping contains an Aggregator transformation with these conditions, the
PowerCenter Server cannot use the FlushLatency(n) function in a filter condition to commit
messages to a target based on a specified maximum latency period. For more information
about using an Aggregator transformation in a mapping, see the PowerCenter Transformation
Guide.
To run the session in real time, use the ForcedEOQ(n) function in a filter condition and
configure the workflow to run continuously. When you use the ForcedEOQ(n) function, the
PowerCenter Server stops reading messages from the source at the end of the ForcedEOQ(n)
period. The PowerCenter Server can then write the data to the target.
For a list of mapping configurations and session properties that do not support the
FlushLatency(n) function, see “Controlling Data Extraction in Real Time” on page 50. For
more information about executing a session in real time, see “Extracting Data in Real Time”
on page 80.
Destructive Read
For more information on selecting Destructive Read in the session properties, see
“Configuring a Session with an MQSeries Mapping” on page 87.
If you select Destructive Read, the mapping cannot contain an associated source qualifier. If
the mapping contains an associated source qualifier, the PowerCenter Server ignores the
Destructive Read condition. To remove messages from the source queue for mappings that
contain an associated source qualifier, use the RemoveMsg(TRUE) function.
You can combine the RemoveMsg(TRUE) function with other functions. For example, if you
want to extract 100 messages from the source queue and also want to remove the messages
from the source queue once the messages are successfully loaded to the target. Enter the
following function in the filter condition:
MsgCount(100) && RemoveMsg(TRUE)
You can enter a filter condition in the Filter Editor in the Properties tab of the Source
Qualifier or the Mapping tab of the session properties.
For more information about entering functions in a filter condition in a Source Qualifier, see
“Entering a Filter Condition” on page 59. For information about entering functions in a filter
condition in the session properties, see “Entering a Filter Condition in the Session Properties”
on page 79.
Filter Syntax
The filter condition is an expression that returns TRUE or FALSE. For example, if you want
the PowerCenter Server to read messages from the queue that are of the lowest priority, you
would enter the following condition:
Priority == 0
Table 4-2 lists the logical operators you can use to create filter conditions:
EQUAL TO = ==
NOT not !
OR or ||
LEFT PARENTHESIS (
RIGHT PARENTHESIS )
Precedence Operators
Highest Equals (==), Not Equal to (!=), Less than (<), Less than or equal to (<=), Greater than (>),
Greater than or equal to (>=)
NOT
AND
Lowest OR
Syntax Rules
Use the following rules to create filter conditions in the MQ Source Qualifier:
1. Use the following syntax in the filter condition if you create a filter based on message
header ports:
<Port> [=, >=, <=, <, >, < > ]‘value’
2. Use the following syntax in the filter condition if you create a filter with a function:
<Function> (‘value’)
3. You must use the correct parameters for the ‘value’ in the filter expression. For example,
to filter messages by PutDate, you must use the correct date format used by the PutDate
field:
PutDate >= ”20000901” && PutDate <= “20001001”
This example filters messages that were put on the queue from September 1, 2000, to
October 1, 2000. The format for the PutDate field is YYYYMMDD.
4. Time values must be relative to Greenwich Mean Time and in the format H24MMSS.
For example, to read all messages that were put on the queue at 5:30 PM on September 1,
2000, enter the following condition:
PutDate = “20000901” && PutTime = “173000”
5. If the datatype of the ‘value’ is string, you must use double quotes around the value. For
example, to filter all messages where the ReplyToQ field is “PRODUCTION,” you
would use the following syntax:
ReplyToQ = “PRODUCTION”
Table 4-4. MQSeries Message Header Fields with Description and Datatype
MQSeries Message
Datatype Description
Header Field
PutDate String(8) Date when message was put on queue. Format is YYYYMMDD.
PutTime String(8) Time when message was put on queue. Format is HHMMSS.
Offset Number Offset of data in physical message from start of logical message.
MQSeries Message
Datatype Description
Header Field
1. In the Mapping Designer, double-click the title bar of the MQ Source Qualifier.
The Edit Transformation dialog box appears.
2. Select the Properties tab.
3. Open the Filter Editor by clicking the right corner of the Filter option.
The Filter Editor dialog box appears.
4. On the Ports tab, double-click the Message Header port you want to use in your filter
condition.
You can also select a built-in function from the Variables tab. Click Variables-Built-in,
and select the function you want to use.
5. Use transformation language syntax to create the filter condition.
6. Click Validate to make sure that the filter condition has no errors.
7. Click OK to return to the Edit Transformation dialog box.
5. Enter a precision for the message data port up to 100 MB. The default value is 64 KB.
The message header ports are predefined. You cannot change the configuration of the
message header ports. For more information about message header ports, see “Working
with an MQ Source Qualifier Transformation” on page 42.
7. Enter any of the following additional settings for the MQ Source Qualifier:
Option Description
Filter Specifies the filter condition PowerCenter uses when extracting records. For more
information about filter conditions, see “Entering a Filter Condition in the MQ Source
Qualifier” on page 56.
Tracing Level Sets the amount of detail included in the session log when you run a session containing
this transformation. For more information about the tracing level, see “MQ Source Qualifier
Transformation” on page 40.
Destructive Read Evaluates filter conditions specified in the message header ports and removes messages
from the source queue at synchronization points. For more information about Destructive
Read, see “Controlling Queue Clean-up” on page 53.
Recovery Cache Cache folder where the PowerCenter Server stores message data when reading from the
Folder MQSeries source. For more information about the recovery cache folder, see “Message
Recovery” on page 83.
2. Click the Associated Source Qualifier tab and select Use Associated Source Qualifier.
3. From the list of associated source qualifiers, select the associated source qualifier you
want to use in your mapping. Click OK.
The Designer creates a MsgId port in the associated source qualifier, and links the MsgId
ports on the MQ Source Qualifier and the associated source qualifier.
65
Overview
When the PowerCenter Server writes data to an MQSeries target, it writes data to an
MQSeries message queue. You can load data to one message queue or multiple message
queues.
Similar to the MQSeries source, the MQSeries target contains message header fields and a
message data field. The PowerCenter Server can load data to the message header fields and the
message data field in the message. Depending on the type of data that you want to load to the
message queue, choose a dynamic or static MQSeries target definition.
Message
Header
Fields
Message
Data Field
Similar to the MQSeries source definition, the MsgId field in the dynamic MQSeries target
definition is also a primary key field. Since MsgId is a unique identifier for a particular
message, values you project to the MsgId field must be unique. If you project a MsgId value
to a queue where that MsgId already exists, MQSeries can ignore the value you pass to the
target or use an automatically generated value for the message in its place.
Certain message headers in an MQSeries message require a set of values that the MQSeries
server assigns. When loading data to an MQSeries target, the MQSeries server assigns values
to these fields.
Table 5-1. Values for Message Header Fields in MQSeries Target Messages
UserIdentifier Defined by the environment. If the MQSeries server cannot determine this value, the value
for the field is null.
AccountingToken Defined by the environment. If the MQSeries server cannot determine this value, the value
for the field is MQACT_NONE.
PutAppName Defined by the environment. If the MQSeries server cannot determine this value, the value
for the field is null.
To write data to the GroupId field in the target, you must project a value to the MsgFlags
field in the target. Otherwise, the PowerCenter Server writes a null value to the GroupId field.
For example, you can set a flag to determine the group ID by the last message in the group.
For more information about setting the group ID, see your IBM MQSeries documentation.
The datatype for the message data field in the MQSeries target definition is binary. When you
use a dynamic MQSeries target definition in a mapping, the PowerCenter Server can only
load binary and XML data to the message data field in the target message.
When you create a Midstream XML Generator transformation, you use the XML Wizard and
XML Editor to define the XML groups. For more information about creating Midstream
XML Generator transformations, see the PowerCenter XML User Guide.
On Commit Property
When you select the Create New Document option, you must specify Source as the Commit
Type and set a commit interval in the session properties. When you specify source-based as
the commit type, the PowerCenter Server commits data to the target based on the number of
records in an active source. When you specify a commit interval, the PowerCenter Server
commits data to the target based on the number of records you specify as the commit interval.
This example shows the ID data in the Source Qualifier linked to the COL0 reference input
port in the Midstream XML Generator transformation. The Midstream XML Generator
For example, if you want to load data in COBOL format to a message queue, you need to use
a static MQSeries target in the mapping.
Figure 5-5 shows a mapping with a flat file target definition as the static MQSeries target:
Note that the message header fields in the MQ Source Qualifier are not projected to any port
in the target definition. Since you are not loading data to the message header fields, the
1. In the Warehouse Designer, double-click the title bar of the target definition.
Keywords Add keywords to the target definition when you want to perform searches in the
Repository Manager.
4. Optionally, edit the datatype and precision of the columns in the target definition.
5. Click OK.
77
Overview
After you create mappings in the Designer, you can create a session and use the session in a
workflow to extract, transform, and load data. You can create sessions and workflows in the
Workflow Manager.
Before configuring an MQSeries workflow, you must complete the following tasks:
♦ Configure a registered server. You need to configure a registered server to run workflows.
For more information about registering a server, see the PowerCenter Installation and
Configuration Guide.
♦ Configure source and target connections. You must configure the connections necessary
to extract data from the source and write data to the target. Depending on the type of
session you run, the PowerCenter Server may require application, queue, relational, FTP,
or external loader connections. For example, to extract data from a message queue and load
data to a relational target, the PowerCenter Server requires a queue connection for the
source message queue and a database connection for the relational target. For more
information about configuring connections, see “Step 3. Configure Queue Connection
Properties” on page 21.
For more information about sessions and workflows, see the PowerCenter Workflow
Administration Guide.
Before you run an MQSeries workflow, make sure the MQSeries listener is running. This
enables the PowerCenter Server to connect to a queue manager to read and write MQSeries
messages.
Figure 6-1. Filter Attribute on the Mapping Tab of the Session Properties
Filter Condition
For more information about creating filter conditions, see “Entering a Filter Condition in the
MQ Source Qualifier” on page 56.
Filter
Condition
Message Recovery
You can configure message recovery for sessions that fail when reading messages from an
MQSeries source. When you enable message recovery, the PowerCenter Server stores all
messages it reads from the MQSeries source in a cache before processing the messages for the
target. If the session fails, restart the session to recover the messages the PowerCenter Server
could not process in the previous session run.
During the recovery session, the PowerCenter Server reads the messages from the cache. After
the PowerCenter Server reads the messages from the cache and processes the messages for the
target, the session completes. Restart the session to begin reading messages from the
MQSeries source.
The PowerCenter Server removes messages from the message cache file after the Real-time
Flush Latency period expires. It also empties the cache file at the end of the session. If the
session fails after the PowerCenter Server commits messages to the target but before it
removes the messages from the cache file, targets may receive duplicate rows during the next
session run.
To enable message recovery, you must perform the following:
♦ Select Enable Recovery in the session properties.
♦ Specify a recovery cache folder in the session properties at each partition point.
You can also select the Destructive Read option in the session properties to remove messages
from the source queue once the PowerCenter Server puts the messages in the recovery cache
folder. For more information about Destructive Read, see “Controlling Queue Clean-up” on
page 53.
Destructive
Read
Recovery
Cache Folder
Pipeline Partitioning
You can increase the number of partitions in a pipeline to improve session performance.
When you increase the number of partitions, the PowerCenter Server can create multiple
connections to sources and process partitions of sources and target data concurrently.
When you create a session in a workflow, the Workflow Manager validates each pipeline in the
mapping for partitioning. You can specify multiple partitions in a pipeline if the PowerCenter
Server can maintain data consistency when it processes the partitioned data.
For MQSeries sources, you can specify multiple partitions if there is no associated source
qualifier in the pipeline. For the MQ Source Qualifier, you can only specify the pass-through
partition type when you create partition points. For MQSeries targets, you can specify pass-
through, key range, hash keys, and round-robin partition types when you create partition
points. For more information about partitioning and a list of all partitioning restrictions, see
the PowerCenter Workflow Administration Guide.
1. In the Task Developer, double-click an MQSeries session to open the session properties.
Commit Commit
Interval Type
If you enable message recovery, you can configure a value for the recovery cache folder
from the Properties settings of the Mapping tab (Sources node). Or, use the default cache
folder $PMCacheDir\.
Associated MQ Source
Source Qualifier for the
MQSeries Source
6. From the Connections settings on the Mapping tab, select a connection type for each
source definition:
♦ For associated source definitions, set the connection type to None.
♦ For MQ Source Qualifiers, the connection type is set to Queue.
7. In the Value pane, select a connection value for the MQ Source Qualifier.
8. From the Properties settings on the Mapping tab (Sources node), verify the following
settings for associated sources:
♦ Source File Directory. Use the default value.
♦ Source Filename. Use the default value.
♦ Source Filetype. Set to Direct.
10. From the Connections settings on the Targets node, select a connection type for each
MQSeries target definition:
♦ For static MQSeries target definitions, set the connection type to Queue.
♦ For dynamic MQSeries target definitions, the connection type is set to Queue.
Tip: If you want to specify the way in which the PowerCenter Server writes XML data to
MQSeries targets, select Queue as the connection type for XML target definitions in the
mapping. If you want to configure the session for transactional consistency, verify that all
MQSeries targets in a single pipeline belong to the same target connection group. For
more information about configuring transactional consistency, see “Maintaining
Transactional Consistency for Dynamic MQSeries Targets” on page 68.
For more information about configuring queue connections, see “Step 3. Configure
Queue Connection Properties” on page 21.
11. In the Value pane, select a connection value for each target definition.
Tip: If you configure the session for transactional consistency, verify that all dynamic
MQSeries targets in a single pipeline belong to the same target connection group.
If you select Destructive Read, the mapping cannot contain an associated source qualifier.
If the mapping contains an associated source qualifier, the PowerCenter Server ignores
the Destructive Read condition. To remove messages from a queue for a mapping that
contains an associated source qualifier, enter the RemoveMsg(TRUE) function in a filter
condition.
Required/
Option Argument Description
Optional
-m Required queue manager name Enter the name of the queue manager you want to connect to.
-p Optional port number Enter a value for the port number. If the port number is 1414,
which is the default MQSeries port number, you can omit this
option.
& Optional Enter an ampersand character (&) to run the process in the
background.
Running Workflows 95
96 Chapter 6: Creating and Configuring MQSeries Workflows
Appendix A
97
Overview
Mappings from PowerCenter Connect for MQSeries 7.0 or prior use associated source
definitions and static MQSeries target definitions to read and write XML message data. To
read XML message data, the mapping contains an associated source definition specific to the
message data format. To write XML message data, the mapping contains a static MQSeries
target definition specific to the message data format.
With PowerCenter Connect for MQSeries 7.1.1, you can use Midstream XML
transformations in a mapping to speed the process of reading and writing XML message data.
When you use a Midstream XML transformation, you do not have to include an associated
source definition or static MQSeries target definition in your mapping.
For more information about reading XML message data using a Midstream XML Parser
transformation, see “Reading XML Message Data from an MQSeries Source” on page 31. For
more information about writing XML message data using the Midstream XML Generator
transformation, see“Writing XML Message Data” on page 69.
Mappings with associated source definitions and static MQSeries target definitions that read
and write XML message data are still valid. For more information about reading XML
message data using an associated source definition, see “Reading XML Message Data Using an
Associated Source Definition” on page 99. For more information about writing XML data
using a static MQ Series target definition, see “Writing XML Message Data Using a Static
MQSeries Target Definition” on page 101.
Relational
Target
Associated Source
Qualifier (XML)
Note: The Designer does not validate the structure of the message data in the MQSeries source
definition. If the source definition does not exactly match the actual MQSeries source, the
session fails.
Note that the message header fields in the MQ Source Qualifier are not projected to any port
in the target definition. Since you are not loading data to the message header fields, the
message header fields in the MQSeries target remain static. The target definition only receives
data from the XML Source Qualifier.
Note: For new mappings to write XML message data to an MQSeries target, use a dynamic
target definition and a Midstream XML Generator transformation. For more information
about writing XML message data to an MQSeries target, see “Writing XML Message Data” on
page 69.
Writing XML Message Data Using a Static MQSeries Target Definition 101
Working with XML Message Data in Static MQSeries Targets
During a workflow, the PowerCenter Server can write XML message data to a static MQSeries
target in the following ways:
♦ The PowerCenter Server can write one XML document containing all XML data for a
session to a single MQSeries message.
♦ The PowerCenter Server can generate multiple, complete XML documents and write each
XML document to a separate MQSeries message during a session run.
♦ The PowerCenter Server can split a single XML document into multiple, partial XML
documents and write each one to a separate MQSeries message during a session run.
When you want to write XML data to a static MQSeries target, you specify how the
PowerCenter Server writes the data by configuring the On Commit Transformation Attribute
in the target properties settings in the Designer. You can select one of the following options:
♦ Ignore Commit
♦ Create New Document
♦ Append to Document
For more information about options in the properties settings, see “Writing XML Message
Data” on page 69.
Figure A-3 shows the XML output options in an XML target definition:
Writing XML Message Data Using a Static MQSeries Target Definition 103
104 Appendix A: XML Message Data Without Midstream XML Transformations
Appendix B
105
Datatypes
PowerCenter uses the following datatypes in MQSeries mappings:
♦ IBM MQSeries datatypes. IBM MQSeries datatypes appear in MQSeries source and
target definitions in a mapping.
♦ Native datatypes. Flat file, COBOL, or XML datatypes associated with MQSeries message
data. Native datatypes appear in flat file, VSAM, and XML source definitions. Native
datatypes also appear in flat file and XML target definitions in the mapping.
♦ Transformation datatypes. Transformation datatypes are generic datatypes that
PowerCenter uses during the transformation process. They appear in all transformations in
a mapping.
MQSeries Datatypes
The following datatypes display in the MQSeries source and target definitions:
♦ MQBYTE
♦ MQCHAR
♦ MQHEX
♦ MQLONG
For more information about MQSeries datatypes, see your IBM MQSeries documentation.
Native Datatypes
With PowerCenter Connect for MQSeries, you can extract message data from an MQSeries
source in flat file, COBOL, or XML format, and load message data in an MQSeries target in
flat file or XML format. For information about flat file and COBOL datatypes, see the
PowerCenter Designer Guide. For more information about XML datatypes, see the XML User
Guide.
Transformation Datatypes
When the PowerCenter Server reads data from an MQSeries source, it converts the data in the
message header fields and the message data field to transformation datatypes used in the MQ
Source Qualifier. When writing data to a target table, the PowerCenter Server converts the
data based on the native datatypes in the target table.
For information about transformation datatypes that display in the associated source qualifier
for flat file and COBOL datatypes, see the PowerCenter Designer Guide.
“123W”
In the first example, the field contains an odd number of characters. There should be two
characters per byte that represent the hexadecimal value of this byte. In the second example,
the field contains a W that cannot be converted to a numeric value. As a result, the
PowerCenter Server drops both of these rows during the session run.
If a field with the MQHEX datatype contains a decimal value, the data may be inconsistent.
Datatypes 107
108 Appendix B: MQSeries Datatype Reference
Appendix C
Code Pages
109
Using Code Pages
When you configure the queue connection in the Workflow Manager for an MQSeries source
or target, the PowerCenter Server automatically selects a code page for the message data,
which is the code page of the PowerCenter Server.
When the PowerCenter Server reads data from MQSeries sources that contain a different code
page than the PowerCenter Server, the PowerCenter Server can convert the data to the
PowerCenter Server code page if the data is in string format.
When the PowerCenter Server writes data to dynamic MQSeries targets that contain a
different code page than the PowerCenter Server, the PowerCenter Server can convert the
data to the code page of the MQSeries server when you set the data conversion option to “yes”
for the remote channel definition in MQSeries.
For a complete discussion of code page compatibility, see the PowerCenter Installation and
Configuration Guide.
111
Overview
PowerCenter Connect for IBM MQSeries returns messages when you perform tasks. Some
messages are errors, and some are informational. You can use this chapter to help determine
what causes error messages to appear and what measures you can take to correct the error.
When an error message is a result of an internal error, causes are listed when possible, but
contacting our technical support is still the best recourse. For contact information, see
“Obtaining Technical Support” on page xx.
Messages from PowerCenter Connect for IBM MQSeries can originate from the following
sources:
♦ PowerCenter Designer
♦ PowerCenter Server
♦ IBM MQSeries
The Designer displays messages while importing source definitions, creating and validating
mappings. The PowerCenter Server displays messages in the session log, server log, server
event log, or workflow log.
Messages from the IBM MQSeries can display in conjunction with PowerCenter messages.
For IBM MQSeries error messages, see your IBM MQSeries documentation.
For other PowerCenter messages, see the PowerCenter Troubleshooting Guide.
FR Codes
The following messages may appear when a session reads file sources:
FR_3075 Error: Source filetype cannot be indirect for an MQ associated source qualifier.
Cause: You selected Indirect for the Source filetype. When the mapping contains an
associated source qualifier, the source file type must be direct.
Action: Select Direct as the source file type.
MQ Codes
MQ error messages contain an MQSeries error <reason> code and a <reason message>. For
example, in the error message below, the <reason> code is “2058” and the <reason message> is
“Q_MGR_NAME_ERROR.”
MQ_29001 “Cannot open queue [QUEUE_NAME], reason 2058 (Q_MGR_NAME_ERROR)”
You can use the <reason> code and the <reason message> to get more details about the error
from your IBM MQSeries documentation.
The messages are listed by error code number.
MQ_29000 Cannot connect to queue manager <queue manager> reason <reason> <reason
message>.
Cause: The queue manager name is inaccurate.
MQ_29003 Error disconnecting from queue manager <queue manager> reason <reason>
<reason message>.
Cause: The PowerCenter Server could not disconnect from the queue manager due to
the reason code stated in the message.
Action: Look up the reason code in your IBM MQSeries documentation for
instructions to correct the error.
MQ_29006 Message data truncated reading from queue <queue>:<queue manager> reason
<reason> <reason message>.
Cause: The message size is too large for the PowerCenter Server to read.
Action: Look up the reason code in your IBM MQSeries documentation for
instructions to correct the error.
MQ_29009 Invalid RowsPerMesage value for queue <queue>:<queue manager> (<rows per
message> > 0).
Cause: The Rows Per Message parameter in the session properties is incorrect.
Action: Specify a value greater than 0 for the Rows Per Message in the session
properties.
MQ_29010 Error opening cache <cache file> for reading: <operating system error>.
Cause: You might not have permission to read from the cache file.
or
Cause: The $PMCacheDir variable is incorrect.
Action: Fix the operating system error stated in the message.
MQ_29011 Error opening cache <cache file> for writing: <operating system error>.
Cause: You might not have permission to write to the cache file.
or
Cause: The hard disk is full.
or
Cause: The $PMCacheDir variable is incorrect.
Action: Fix the operating system error stated in the message. Look in the directory
$PMCacheDir.
Windows pmmqdrvc.dll
Solaris libpmmqdrvc.so
Linux libpmmqdrvc.so
AIX libpmmqdrvc.a
HP libpmmqdrvc.sl
or
Cause: PowerCenter could not load the MQ driver shared library due to insufficient
permissions.
Action: Make sure the permissions for the MQ driver file are correct.
MQ_29013 Delete operation for this target not enabled. Queue connection is
<queue>:<queue manager>.
Cause: The MQSeries target received a row with the delete flag set to TRUE. The
MQSeries target, however, was not setup to allow deletes.
Action: Enable deletes for the MQSeries target (by default DELETEs are enabled for
the MQSeries target).
MQ_29014 MsgId field has not been set. Queue connection is <queue>:<queue manager>.
Cause: You might not have projected the MsgId field into the dynamic MQSeries
target for message deletion.
Action: Make sure something is projected into the MsgId port of the dynamic
MQSeries target.
MQ_29108 Line <line>, column <column>: Incompatible types for relational operator.
Cause: The relational operators [=, <>, >=, <=, >, <] in the left-hand and right-hand
sub-expression have incompatible datatypes.
Action: Edit the filter expression with compatible datatypes for relational operators in
the left-hand and right-hand sub-expression.
MQ_29109 Line <line>, column <column>: Not enough arguments to function, <function
name> () should have argument(s).
Cause: The function does not enough arguments.
Action: Apply arguments to the function in the filter expression.
MQ_29110 Line <line>, column <column>: Too many arguments to function, <function
name> () should have argument(s).
Cause: There are too many arguments in a function.
Action: Use fewer arguments in a function.
MQ_29111 Line <line>, column <column>: Wrong type in <function name> (), Argument
should be CHAR/BYTE.
Cause: The function expects an argument in MQCHAR or MQBYTE type.
Action: Make sure argument is of MQCHAR or MQBYTE type in the filter
expression.
MQ_29113 Line <line>, column <column>: Wrong type in <function name> (), Argument
should be LONG.
Cause: The function expects an argument in MQLONG type.
Action: Make sure argument is of MQLONG type in the filter expression.
MQ_29114 Line <line>, column <column>: String literal not terminated properly.
Cause: The string literals must be in double quotes.
Action: Use double quotes to enclose string literals in the filter expression.
MQ_29115 Line <line>, column <column>: Bad date format in <function name> (),
Argument <argument number> should be <correct date format>.
Cause: The argument in the function does not contain the correct date format.
Action: Use the <correct date format> for the argument in the filter expression.
MQ_29211 Warning: Some message data was truncated reading from queue
<queue>:<queue manager>.
Cause: This is only a warning. The MQ reader truncated one or more
MESSAGE_DATA columns because the size of the message exceeded the
maximum size for the MESSAGE_DATA port in the MQ Source Qualifier.
Action: However, you can increase the size of the MESSAGE_DATA column in the
MQ Source Qualifier. For more information about increasing the size of the
MESSAGE_DATA column, see “Message Data Field” on page 43.
MQ_29212 Warning: Message with a total length of <length> was truncated to <length>.
Cause: This is only a warning. This is a more detailed warning that appears when
Tracing is set to “VERBOSE RUN.” The message number is given as
MSGNO.
Action: However, you can increase the size of the MESSAGE_DATA column in the
MQ Source Qualifier. For more information about increasing the size of the
MESSAGE_DATA column, see “Message Data Field” on page 43.
MQ_29221 Partial message written into queue <queue>:<queue manager> due to commit.
Cause: This is an informational message. The PowerCenter Server did not commit all
rows in a message to the target. This might occur when the PowerCenter
Server reaches the end of a commit interval or a short FlushLatency interval. It
commits the remaining rows at the next commit interval.
Action: None.
MQ_29222 Error committing from queue manager <queue manager>: reason <reason>
<reason message>.
Cause: The PowerCenter Server could not commit messages to the target. The
MQSeries system may not contain enough log space.
Action: Verify that your MQSeries system contains enough log space.
or
Action: Check the additional error message for more information.
MQ_29223 Error backing out from queue manager <queue manager>: reason <reason>
<reason message>.
Cause: The PowerCenter Server could not roll back messages from the target.
Action: Check the additional error message for more information.
MQ_ 29231 Transactional MQ targets with the same queue manager name cannot be in
different TCUs.
Cause: The MQSeries targets have the same queue connection but belong to different
transaction control units (TCU). As a result, the session failed.
Action: Make sure that all MQSeries targets with the same queue connection belong to
the same TCU. For more information about TCUs, see the PowerCenter
Transformation Guide.
MQ_29237 Failure occurred while reading messages from the queue in destructive mode.
Cause: The IBM MQSeries installation may not allow deleting messages from the
queue.
Action: Look up the reason code in your IBM MQSeries documentation for
instructions to correct the error.
MQ_29240 Cache folder specified for reader partition <partition name> is invalid.
Cause: The operating system cannot find the recovery cache folder.
Action: Verify the recovery cache folder specified in the session properties exists.
MQ_29244 Reader partition <partition name> failed doing GMD flush: <additional error
message>.
Cause: The recovery cache folder may have insufficient memory.
Action: Verify the recovery cache folder has sufficient memory for large files.
or
Cause: The recovery cache folder may not have write permission.
Action: Verify the recovery cache folder has write permission.
REP Codes
The following messages relate to repository functions and may appear in the session log.
TE Codes
The following messages relate to transformations used in the session.
TE_7111 Error: RealTime commit does not allow partition types other than pass-through
for each partitioning point.
Cause: You selected a partition type other than pass-through for a partition point for a
real-time session.
Action: When you run a real-time session, you must select pass-through partitioning at
all partition points.
TE_7135 Error: Recovery is enabled for more than one source in the concurrent source
set. Recovery is not supported for such mappings. The sources enabled for GMD
in the concurrent source set are <source names>.
Cause: You attempted to perform session recovery on a mapping that contains one
target load order group with multiple sources, and one or more of those
sources is a real-time source. The real-time sources in the target load order
group are connected to a multiple input group transformation or target.
Action: If the sources are connected to a Joiner transformation, you can enable the
backward compatibility flag. The backward compatibility flag allows the
PowerCenter Server to read sources connected to a Joiner transformation
sequentially as it did in versions prior to 6.x.
or
Action: If the sources in the target load order group are connected to a multiple input
group other than the Joiner transformation, disable session recovery. To
remove message recovery for the session, clear the Enable Recovery option in
the session properties.
TM_6264 Connection is not set in the Workflow Manager for the MQ Source Qualifer
transformation <MQ Source Qualifer name> partition <partition name>. The
session failed.
Cause: The PowerCenter Server cannot find the queue connection you specified. As a
result, the session failed.
Action: Assign a valid queue connection to the session. Then, validate the session.
WRT Codes
The following messages are generated by the Writer and may appear in the session log:
WRT_8189 Invalid field type (MQCHAR expected) for <target name> target.
Cause: Internal error.
Action: Contact Informatica Technical Support.
WRT_8226 Target Load Order Group <TLOG> is set for real-time flushing. Target based
commit is switched to source based commit and target based commit interval is
used as source based commit interval.
Cause: This is an informational message. You configured the session for real-time data
extraction with target-based commits. The PowerCenter Server will run the
session with source-based commits.
Action: If you want to run the session in real time, you do not need to take any action.
or
Action: If you want to run the session with target-based commits, remove the
FlushLatency(n) function from the filter condition.
XMLW_31056 Fatal error opening MQ Series queue <queue> for XML output.
Cause: The PowerCenter Server could not open the MQSeries queue.
Action: Verify that your MQSeries environment settings are correct, that the queue
you specified in the queue connection properties exists, and that the
connection properties are valid.
A Concat
description 48
associated source definition configuring
description 36 channels for Queue Managers 16
importing 36 message recovery 83
types 36 MQ Source Qualifier 61
working with 36 MQSeries queue managers 16
associated source qualifier PowerCenter Connect for IBM MQ Series 12
connecting to MQ Source Qualifier 46 queue connection attributes 21
creating 64 Queue Connection Properties 21
creating for XML message data 100 real-time sessions 80
description 45 session slots 85
message data format 45 transactional consistency 68, 85
MsgId 46 connections
Normalizer transformation 45 configuring 78
overview 7, 40 continuous workflows
types 45 configuring session slots 85
description 85
creating
C mappings 8
MQSeries Server-Connection Channel 16
client-connection channel MQSeries source definitions 8, 33
configuring for an MQSeries queue manager 17 sessions 9
COBOL
See VSAM source definition
code pages
See also PowerCenter Installation and Configuration
D
Guide datatypes
supported 110 See also PowerCenter Designer Guide
129
transformation 41 static MQSeries target 73
Destructive Read FlushLatency
using for queue clean-up 53 definition 48
documentation ForcedEOQ
conventions xviii definition 48
description xv functions
online xviii Concat 48
dynamic MQSeries target definitions defining queue reading mode 49
creating 75 EndTime 48
datatypes 68 FlushLatency 48
description 67 ForcedEOQ 48
editing 75 Idle 48
overview 66 MsgCount 48
working with 67 RemoveMsg(TRUE) 54
StartTime 48
using in filter conditions 48
E
editing
MQSeries source definitions 34
I
EndTime IBM MQSeries
description 48 installing 12
error messages Idle mode
Designer 113 configuring 50
FR codes 114 description 48
MQ codes 114 importing
overview 112 associated source definition 36
PowerCenter Server 114 incremental data extraction
REP codes 124 description 52
session log 114 Informatica
TE codes 124 documentation xv
TM codes 126 Webzine xix
WRT codes 126 installing
XMLW codes 127 See also PowerCenter Installation and Configuration
Guide
IBM MQSeries 12
F installation steps 12
PowerCenter Connect for IBM MQSeries Client 15
filters PowerCenter Connect for IBM MQSeries Server on
creating 59 UNIX or Linux 13
defining queue reading mode 49 PowerCenter Connect for IBM MQSeries Server on
description 56 Windows 13
entering 56
language 56
logical operators 56
messages 6
M
syntax rules 57 mapping parameters
using functions 48 See also PowerCenter Designer Guide
using message header ports 57 setting 40, 79
flat files mapping variables
associated source definition 28 See also PowerCenter Designer Guide
associated source qualifier 64 setting 40, 79
130 Index
mappings data extraction process 7, 8
creating 8 data loading process 7, 8
Message Count definition 3
configuring 50 sources 6, 27
description 50 targets 6
message header MQSeries listener
description 4 starting before you run a workflow 95
filtering messages 30 MQSeries queue managers
loading message header data 74 configuring channels 16
message IDs MQSeries source definitions
in Midstream XML Generator transformations 71 associating message data 30
in Midstream XML Parser transformations 32 association 30
message queue creating 8, 33
data source 28 defined 28
description 3 editing 34
message recovery message data field 30
configuring 83 message header fields 29
description 83 MsgId 30
recovery cache folder 83 working with 29
using with certified messages 83 MQSeries static target definitions
messages configuring for XML data 102
data field 5 MQSeries target definitions
definition 3 See dynamic MQSeries target definitions
filtering 6 See static MQSeries target definitions
identification 30 MsgCount
Midstream XML Generator description 48
description 69 MsgId
pass-through ports 71 association in MQ Source Qualifier 46
Midstream XML Parser MQSeries source definitions 30
description 31 MQSeries target definition 67
pass-through ports 32
MQ Source Qualifiers
configuring 61 N
connecting to an associated source qualifier 44
creating 61 Normalizer transformation
description 42 associated source qualifier 64
filtering data 40
for multiple message queues 42
message data datatypes 43 P
message data port 43
message header ports 43 pass-through ports
overview 7, 40 creating in Midstream XML Generator
selecting an associated source qualifier 40 transformations 71
setting mapping parameters 40 creating in Midstream XML Parser transformations 32
setting mapping variables 40 PowerCenter Connect for IBM MQSeries
setting message data size 40 uninstalling 25
setting tracing level 40 PowerCenter Server
working with 42 installing 13
MQSeries
architecture 3
configuring channels for queue managers 16
Index 131
Q MQSeries 28
overview 28
queue clean-up starting
Destructive Read 53 MQSeries listener 95
RemoveMsg(TRUE) 54 StartTime
Queue Connections description 48
test 23 using the $$$SessStartTime variable 50
Queue Manager static MQSeries target definitions
description 3 creating 74, 103
queue reading modes defined 73
description 49 for XML 101
Idle mode 50 importing 74, 103
Message Count mode 50 loading message header data 74
time slice mode 50 multiple targets 74
overview 66
working with 73, 101
R system environment variables
configuring for queue connections 17
real-time sessions
configuring FlushLatency 80
configuring ForcedEOQ 82
configuring source-based commit 81
T
description 80 target connection groups
recovery maintaining transactional consistency 68, 85
See message recovery testing
recovery cache folder Queue Connections 23
for message recovery 83 time slice mode
RemoveMsg(TRUE) configuring 50
description 54 description 50
using for queue clean-up 54 transactional consistency
restrictions configuring 85
debug sessions 2 defined 66
lookup transformation 2 with dynamic MQ targets 68
running transformations
sessions 9 Midstream XML Generator 69
Midstream XML Parser 31
S
server-connection channel
U
configuring for an MQSeries queue manager 16 uninstalling
session logs PowerCenter Connect for IBM MQSeries 25
description 114
sessions
creating 9 V
overview 78
running 9 VSAM
$$$SessStartTime variable associated source definition 28, 30
using for StartTime 50
source definitions
associated 28
132 Index
W
webzine xix
X
XML
associated source qualifier 100
Midstream XML Generator transformations 69
Midstream XML Parser transformations 31
reading message data 31
static MQSeries target 73, 101
writing message data 69
writing XML data to MQSeries messages with static
targets 102
Index 133
134 Index