Sunteți pe pagina 1din 35

WEBSPHERE MESSAGE BROKER

WebSphere Message Broker technical overview


WebSphere Message Broker enables information packaged as messages to flow between different
business applications, ranging from large traditional systems through to unmanned devices such as
sensors on pipelines.

For an animated introduction to the basic concepts and features of WebSphere Message Broker
shown in the diagram, run the Quick Tour.
WebSphere Message Broker processes messages in two ways: message routing and message
transformation.
Message routing
Messages can be routed from sender to recipient based on the content of the message.
The message flows that you design control message routing. A message flow describes the
operations to be performed on the incoming message, and the sequence in which they are carried
out.
Each message flow consists of the following parts:
A series of steps used to process a message; see Message flow nodes.
Connections between the nodes, defining routes through the processing; see Message flow
connections.
IBM supplies built-in nodes and samples for many common functions. If you require additional
functions, you can write your own user-defined nodes; see User-defined extensions overview.
You create message flows in the WebSphere Message Broker Toolkit which is an integrated
development and administration console, and is known as the WebSphere Message Broker Toolkit.
Message transformation
Messages can be transformed before being delivered:

They can be transformed from one format to another, perhaps to accommodate the different
requirements of the sender and the recipient.
They can be transformed by modifying, combining, adding, or removing data fields, perhaps
involving the use of information stored in a database. Information can be mapped between
messages and databases. More complex manipulation of message data can be achieved by
writing code, for example in Extended SQL (ESQL) or Java, within configurable nodes.
Transformations can be made by various nodes in a message flow. Before a message flow node can
operate on an incoming message, it must understand the structure of that message.
Some messages contain a definition of their own structure and format. These messages are
known as self-defining messages, which you can handle without the need for additional
information about structure and format; see Predefined and self-defining elements and
messages.
Other messages do not contain information about their structure and format. To process
them, you must create a definition of their structure; see Message definition files.
The message definitions that you design are created within a message set which contains one or
more message definitions. Message sets also categorize message definitions. The category facility,
which you can extend using XSLT scripts, is used for generating Web Services Description
Language (WSDL) and documentation; see Message categories.
Like message flows, you create message definitions in the WebSphere Message Broker Toolkit.
They can contain two types of information:
The logical structure: the abstract arrangement and characteristics of the data, represented
as a tree structure; see The message model.
One or more physical formats: the way the data is represented and delimited in the physical
bit stream; see Physical formats in the MRM domain.
Create the broker environment
The work of routing and transforming messages takes place in a broker. Within the broker, you can
define one or more execution groups, which are processes in which message flows run.
The mode in which your broker is working, can affect the number of execution groups and message
flows that you can deploy, and the types of node that you can use. See Restrictions that apply in
each operation mode.
You can install and create one or more brokers on one or more computers that are running a
supported operating system. If you create multiple brokers, you can configure your environment to
provide protection against failure, and you can separate work across different divisions in a
business.
You administer the broker by using product commands, the WebSphere Message Broker Explorer,
the Brokers view within the WebSphere Message Broker Toolkit, or the Administration API for
WebSphere Message Broker (also known as the CMP API) in your own applications.
Develop applications
After your system administrator has created your brokers, your application developers can create
and modify message flows and message definitions by using the WebSphere Message Broker
Toolkit.
Different perspectives in the WebSphere Message Broker Toolkit are used to develop message
flows, message sets, and other related resources; see WebSphere Message Broker Toolkit.

You can use a repository to provide access control and version control of your development
resources. A repository also allows multiple developers to work on the same resources in parallel;
see Development repository.
Your applications can communicate with the broker by using a range of protocols that includes
WebSphere MQ, JMS 1.1, HTTP and HTTPS, Web Services (SOAP and REST), File, Enterprise
Information Systems (including SAP and Siebel), and TCP/IP. For more information about
connecting applications, see Application connectivity.
Deploy applications to the runtime environment
When you have created and configured your message flows, message sets, and associated
resources by using the Broker Application Development perspective of the WebSphere Message
Broker Toolkit, you can deploy the executable data to one or more brokers; see Deployment
overview.
You can deploy data in the following ways:
From the Brokers view of the WebSphere Message Broker Toolkit
From the stand-alone administrative interface, the WebSphere Message Broker Explorer
From the Test Client environment in the WebSphere Message Broker Toolkit
By using a command
By creating applications that use the Administration API application programming interface
When you deploy message flows and message sets, they are compiled and enveloped in a broker
archive (BAR) file, and sent to the target broker; see Deployment overview. The BAR file has
configurable system properties. You can override properties such as queue and database names,
without the need to change source files or redevelop the message flow. This configuration makes it
easier to move definitions between systems.
The broker opens the BAR file, removes the contents, makes a record of the information that it has
received, and discards the envelope. It retains the information in its local storage area within the
computer file system, so that it can restore the application resources and restart messages flows if
and when required.
Publish/Subscribe
Publish/subscribe is a style of messaging for which WebSphere Message Broker provides limited
support; in Version 7.0 this support has transferred tp WebSphere MQ. If you have been connecting
publish/subscribe applications to brokers in previous versions, see Migrating publish/subscribe
information to WebSphere MQ Version 7.0.1.
A message flow is a sequence of processing steps that run in the broker when an input message is
received.
A message flow node is a processing step in a message flow. It can be a built-in node, a user-
defined node, or a subflow node.
A message flow node has a fixed number of input and output points known as terminals.




Q. What is an ESB?
"Enterprise Service Bus" Serves across different applications and across different message
structures. If you assume that your program or application understands one type of input, and it has
to communicate with other program which understands entirely different kind of input. E.S.B acts as
a mediator and makes communication possible
between those two Applications which speak
Two different languages, in the truer sense, E.S.B
is much of a translator.

As the above diagram demonstrates the
consumers are consuming services from the
service providers via E.S.B. Now to the big
picture. Consumer-1 only understands ### and
nothing else, thats the same case with Consumer-
2 who understands *** only. Now they have to
consume services provided by Provider-1 who can
communicate only in $$$ followed by Provider
%%% and HHH . imagine this scenario without
E.S.B in the middle!!
The E.S.B acts as a translator it translates data
coming from Consumer-1 into such format that it
is compatible with Service-1. this looses the
coupling between Service Consumer and Service
Provider.
WebSphere Message Broker Does the same. It
translates routs & enriches the incoming message
and propagates it to the output side.

A. An Enterprise Service Bus (ESB) is a flexible connectivity infrastructure for integrating

applications and services. An ESB can power your Services Oriented Architecture (SOA)
deployment by reducing the number, size, and complexity of interfaces between your applications
and services. An ESB performs the following:
Matches and routes communications between services
Converts between different transport protocols
Transforms message formats between requestor and service
Identifies and distributes business events from disparate sources
An ESB allows your organization to focus on your core business needs rather that the IT
Infrastructure required to connect the programs together. An ESB allows you to add new services
faster, and make changes to existing services, with little or no impact to existing services. As ESBs
evolve into control and enforcement points for dynamic management, their new benefits include
being able to:
Add new services both faster, and dynamically, and
Invoke alternative services based on real-time needs.
Q. What are the IBM ESB offerings?
A. IBM delivers the most complete IBM ESB solutions ranging from platform-based, platform-neutral
and purpose-built hardware:
WebSphere ESB is a platform-based ESB and optimized with WebSphere Application server for an
integrated SOA platform.
WebSphere Message Broker is a platform-independent based ESB and is built for universal
connectivity and transformation in heterogeneous IT environments.
WebSphere DataPower Integration Appliance XI50 is an purpose-built hardware ESB and is built for
simplified deployment and hardened security.
Q. Why does IBM offer three ESBs?
A. IBM's approach to ESB solutions reflects the realities of evolving IT architectures, which are
heterogeneous. One size does NOT fit all when it comes to ESB solutions. Businesses should have
the freedom to select ESBs that fit their needs, rather than shoehorn a solution that is not optimal in
their environment.
Q. When do I use WebSphere ESB, WebSphere Message Broker or WebSphere DataPower
Integration Application XI50?
A. When to Use WebSphere ESB?
You use WebSphere Application Server and/or your team has skills with WAS Administration and
Java coding or
You are now or planning on developing business process using WebSphere Process Server
(WebSphere ESB and WPS have common tooling, programming model, and runtime) or
You are integrating with ISV business applications hosted on WAS or 3rd party solutions which
extend and support WAS or
You are mainly focused on standards based interactions using XML, SOAP, Java, JEE, and WS or
You want to mediate between Web services and existing systems using JMS, WebSphere MQ, and
WebSphere JCA Adapters or
Reliability and extensive transactional support are key requirements or

You want to minimize your server investment by co-hosting WebSphere services and ESB in one
application server
When to Use WebSphere Message Broker?
You are currently using WebSphere Message Broker but would like to extend existing application
integration solutions to SOA and related standards or
Extend your web services support using WS-Security and WS-Addressing or
You have extensive heterogeneous infrastructures, including both standard and non-standards-
based applications, protocols, and data formats or
You have extensive MQ skills and infrastructure or
You are implementing a wide range of advanced messaging and integration patterns including
complex event processing or
You need extensive pre-built mediation support or
You have very complex transformation needs or
Reliability and extensive transactional support are key requirements or
You have very large files to process or
You need the deploy and interact with other ESBs as a remote host or
You need to integrate with other applications via the WebSphere Adapters or
To achieve very high-performance with horizontal and vertical scaling
When To Use WebSphere DataPower?
Ease of use is a primary consideration
Simple experience of drop-in installation and admin-based configuration with no or minimal
development required or
Security, policy and SLA management is required for web services management. Or
You are transforming between XML-and-XML or XML-and-any other format
Your interaction patterns are relatively simple or
You are using XML-based or WS-Security extensively or
You require use of advanced Web services standards or
You need to minimize message latency when adding an ESB layer or
You are doing extensive XML processing combined with high performance requirements
Your ESB must be in production very quickly
Q. How do WebSphere ESB, WebSphere Message Broker, and WebSphere DataPower
interoperate?
A. IBM's ESB portfolio enables a full range of interoperability scenarios using web services via
SOAP/HTTP, JMS, and WebSphere MQ. WebSphere Message Broker and WebSphere DataPower
Integration Appliance XI50 now have a single tool and security policy description for optimal security
requirements. With a simple click within WebSphere Message Broker, WebSphere DataPower
Integration Appliance XI50 will perform WS-Security processing. Applications and message flows will
remain unchanged.

Q. What tools do you use with WebSphere Message Broker?

A. WebSphere Message Broker includes the WebSphere Message Broker toolkit which is based on
the Rational Software Development Platform which itself is built on Eclipse. The toolkit runs on either
Windows or Linux on Intel, and enables the customer to configure the system, develop the message
flows and manage deployed environments. The toolkit also provides visibility of adapters (remote or
local) in a Broker message flow.

Q. What tools do you use with WebSphere ESB?
A. WebSphere Integration Developer, or WID, is the tool for use with both WebSphere ESB and
WebSphere Process Server. WID is designed to be an easy-to-use tool, targeted at the Integration
Developer. WID is built on the Rational Software Development Platform which itself is built on
Eclipse. WID does not require the user to be a Java developer in order to build and deploy
mediations; however it is can be integrated with Rational Application Developer (RAD) for those
customers who wish to write their own Java code. Besides WID, other tools available are DataPower
tooling, native web UI for administration and configuration of service interactions, WebSphere
Transform Extender, XSLT editor, and XSLT maps.

Q. Do I need WebSphere MQ if I have WebSphere Message Broker?
A. Although WebSphere Message Broker is built on top of WebSphere MQ (and is included with
Message Broker), WebSphere Message Broker and WebSphere MQ address different business
needs. WebSphere MQ provides secure and reliable connectivity between application and systems,
supported on more than 80 platform configurations. This provides the ability to move data
unchanged between virtually all business environments likely to be deployed in a business
infrastructure. WebSphere Message Broker is used as a transport for moving data between
applications, but it is capable of performing additional tasks through understanding of data formats,
allowing it to provide intelligent routing and transformation of XML data formats. Businesses will still
see a need for WebSphere MQ to connect up the multiple different environments that make up the
typical IT infrastructure deployed around an enterprise, but are likely to see a need for an ESB to
add value in environments where it can act on the structured data being exchanged between
standards-based applications.

Q. Are JCA Technology Adapters bundled in WebSphere Message Broker?
A. The WebSphere Technology Adapters are a category, not a product. There are several -- JDBC,
eMail, TCP/IP, Flat Files, etc. They are contrasted with the WebSphere Application Adapters such
as for SAP, Siebel, PeopleSoft, etc. For WebSphere ESB and WebSphere Process Server, both
types of adapters come "bundled" with WebSphere Information Developer. BUT this does not entitle
the user to deploy them. The Application Adapters must still be licensed for use. The Technology
Adapters, on the other hand, are can be used with WESB/WPS with no license, i.e., the license for
their use comes effectively with your license of WESB/WPS. With WebSphere Message Broker 6.1,
the Application Adapters are now packaged with the WebSphere Message Broker Toolkit and show
up on the palette as Broker nodes. Like WESB/WPS, the customer still requires a license to deploy
them. The WebSphere Technology Adapters do not come with WMBT and do not work with WMB,
BUT that is OK because WMB comes with a set of nodes (JDBC, File, TCP/IP, eMail, etc) that
provide equivalent function and no additional cost is required.

Q. Do I need WebSphere ESB if I already use WebSphere Application Server?
A. Because WebSphere ESB is built on WebSphere Application Server, through their WebSphere
ESB license; customers are able to utilize WebSphere Application Server function. In addition,
WebSphere ESB also includes additional functions not supplied with WebSphere Application Server
(WebSphere Application Server ND edition allows unrestricted use). WebSphere ESB is likely to
appeal to many WebSphere Application Server customers who are looking to integrate applications

running in their enterprise, who do not want to implement the integration required to link the
applications by coding bespoke application logic, either within the application programs themselves
or by coding additional adapter logic. WebSphere ESB will allow the integration of applications with
minimal programming, with the integration logic being performed on the data 'in-flight' between
applications.

Q. If WebSphere Process Server is powered by ESB technologies; do I need to buy
WebSphere ESB as well?
A. WebSphere Process Server is powered by the same technology available with WebSphere ESB.
This capability is part of the underlying functionality of WebSphere Process Server and no additional
license for WebSphere ESB is required for WebSphere Process Server to take advantage of these
capabilities. However customers may choose to deploy additional standalone licenses of
WebSphere ESB around their enterprise to extend the connectivity reach of the process integration
solutions powered by WebSphere Process Server. For example, WebSphere ESB could be installed
closer to an SAP application to host a WebSphere Adapter for SAP and to transform SAP messages
before sending that information across the network to a business process choreographed by
WebSphere Process Server.
whats the difference between Functional Testing and Unit Testing?
Unit: testing with different test cases
Functional: testing with the exact input

In remote queuing, if the queue on the target queue manager is full, then to
which deadletter queue will the message propagate?
Into the remote systems Deadletter queue.

What is the difference between Environment and Local Environment?
Environment variables scope is defined for the whole flow where as the Local Environment
variables scope is defined for that node and can be passed on to the next node as well.

What happens if a message is sent to a local queue, which is filled, and a remote
queue, which is filled? Any difference in them?

No much difference in behavior, The message moves to the relevant default dead-
letter queue.

What is SCHEMA of broker?
A broker schema is a symbol space that defines the scope of uniqueness of the names of
resources defined within it. The resources are message flows, ESQL files, and mapping
files.

What is User name Server and where it is defined?
The User Name Server is an optional runtime component that provides authentication of
users and groups performing publish/subscribe operations.

What is PARSER and difference between PARSER and FORMAT?
A Parser is defined as a program that interprets the bit stream of an incoming message and
creates an internal representation of it in a tree structure

Ex: MRM parser
A Format is a physical representation of a message.
Ex: XML wire format.

How do you initilize the environment before starting the broker components?
We must use MQSISTART to start the broker component, this command will start the
configured queue manager associated with the broker component if its not already running,
no listeners or channels are started with it.

What Extra nodes Will you get if you upgrade from MB V7.0 TO Version: 7.0.0.2



We will look into each node properties and a small description about them... in the next
coming posts...

After finishing installation and starting the components, where do you check the
logs to see the most recent events?
In the Event log Of the Message Broker Toolkit. and in the Systems
ControlPanel>AdministrativeTools>EventViewer>Application category .

What does mqsilist command do ?
to list all the components installed on the system, all the execution groups defined to a
specific broker, or all the message flows contained in a named execution group on a
specific broker.
1 mqsilist
2? -a
3? BrokerName
3.1? -e Egroup




How do you change ConfigurationTimeout and ConfigurationDelayTimeout for a
given broker?
Configuration timeout and deloay timeout can be changed by mqsichangebroker using
these parameters

-k internalConfigurationTimeout (Optional):
The maximum time (in seconds) that is allowed for an internal configuration change to be
processed. For example, it defines the length of time taken within the broker to start an
execution group. The response time of each execution group differs according to system
load and the load of its own processes. The value must reflect the longest response time
that any execution group takes to respond. If the value is too low, the broker returns a
negative response, and might issue error messages to the local error log.Specify the value
in seconds, in the range 10 to 3600. The default is 60.

-g configurationChangeTimeout (Optional):
The maximum time (in seconds) that is allowed for a user configuration request to be
processed. It defines the length of time taken within the broker to apply to an execution
group a configuration change that you have initiated. For example, if you deploy a
configuration from theworkbench, the broker must respond to the Configuration Manager
within this time. A message flow cannot respond to a configuration change while it is
processing an application message. An execution group that has been requested to change
its configuration returns a negative response to the deployed configuration message if any
one of its message flows does not finish processing an application message and apply the
configuration change within this timeout. Specify the value in seconds, in the range 10 to
3600. The default is 300. For information about how to set the value for this timeout, see
Setting configuration timeouts.
on mqsicreatebroker command what does the parameter -j specifies?
-s unsQMgrName

(Optional) The name of the WebSphere MQ queue manager that is associated with
the User Name Server.
Specify this parameter if you require either authentication services
orpublish/subscribe access control. If you do not specify this parameter, the broker
assumes that no User Name Server is defined. To enablepublish/subscribe access
control, specify the -s and -j parameters.
-j
(Optional) If you require publish/subscribe access control, specify this parameter.
You must also specify the -s parameter.

What does -s parameter specifies on mqsicreateconfigmgr command

1 mqsicreateconfigmgr ConfigmgrName -i ServiceUserID -a ServicePassword -
q QueueManagerName
2? -n Db2DataBaseToMigrate
3? -u MigrationDataBaseUserID
4? -p MigrationDataBasePassword
5? -s UserNameServerQueueManagerName
6? -w Workpath

what happens, if you do not create the required Qs in MQ before running
mqsicreate commands?
Checks whether the specified WebSphere MQ queue manager already exists:
If it does not exist:
If you run this command on z/OS, it reports an error and fails.
If you run this command on Linux, UNIX, orWindows, this command
creates a queue manager.
What are the 3 important parts of the odbc32.ini file ?
There are four parts that can comprise an ODBC.INI file.The second and third sections are not
mandatory for operation. The sections of the ODBC.ini file are listed below.

Sections of the ODBC.INI
------------------------------------
A. ODBC data sources This section contains the name of each data source and the
driver name associated with it.
B. Options that apply to all data sources These options are used for tracing and
debugging purposes.
C. Default data source section This section contains information about the default
data source. It will be a copy of one of the data sources listed by name later. It will
have a single group in it , called "default."
D. Groups configured for each data source. This group has sections for each data
source. All attributes for a particular data source are listed, one per line.
How do you create broker database in Windows/Linux (commands)

We have the mqsicreatedb command for this, it takes 1 compulsory parameter, this
is the minimum number of parameters you need to supply to create a broker
database,You could just simply type in mqsicreatedb brtdb this will create a
database with no port set to access it, on the current user profile you typed this
command, or you could set the port while creating the database in the first
place mqsicreatedb brtdb -p 1600, optionally you can also specify a workbench user
Id and Password mqsicreatedb brtdb -i wbrkuid -a wbrkpw -e Derby -p 1527 this will
create a Derby database.
For creating a DB2 database login with administrative privileges and create a
database using this command
Create Database brtdb this will create a database and you will have full privileges on
it..... to grant privilages to other user you have to use GRANT ALL ON brtdb TO
USER UserWITH GRANT OPTION

Message Broker's Architecture...
Lets look at the functional architecture of the Websphere Message Broker...

First let me make it clear that Message Flows Run in Execution Groups, and execution
groups exist in Brokers, each broker has its own Database, Execution groups are more or
less, like processes in which Flows run...as i previously said brokers have databases... they
use these databases to store the information required to process a message at run-time....
Message flows handle messages, a series of nodes are wired to perform a specific
transformation or routing or enrichment of a message.... to do all this transformation, the
message should be well known to the integrator and the sender too, this is achieved by
using a Message-Set. Configuration manager is like an agent between the toolkit and
the Execution Set of brokers, we need it to deploy flows and edit some configuration
parameters....

QuickTip--
When you get: AsyncRequest HTTP Error returned - 202 Ack expected Text:CHARACTER:HTTP/1.1
500 Other Error


while using SOAP AsyncRequest node that means the service is not expecting to be handled
asynchronously and has returned the response immediately instead of returning an ack and
then later returning the response.

Difference between Root and Output Root?
Root is used in the Database content changing and in Filter node.
Output Root is used in the ESQL code for a Compute node that creates a new output message
based on the input message
Is it possible to set Properties of node apart from right click and setting the properties?
Windows Show View Basic Properties
3) Which interface we have to implement when we are going to create an input custom node?
MbInputNodeInterface
Difference between RAD and ORDINARY deployment?

Using Resource adapter deployment, we can reuse the deployment till the server is re-booted.
Define BROKER, BAR, EXECUTION GROUP, SCADA, and COMPONENTS OF BROKER,
WORKBENCH, WORKSPACE, and CMM?
BROKER: A broker is a set of execution processes that hosts one or more message flows to
route, transform, and enrich inflight messages.
BAR: Flows and sets that are to be deployed are packed in it and sent to configuration manager
EXECUTION GROUP:An execution group is a named grouping of message flows that have
been assigned to a broker. The broker enforces a degree of isolation between message flows in
distinct execution groups by ensuring that they execute in separate address spaces, or as unique
processes
SCADA: The SCADAInput node is used to receive messages from clients that connect to the
broker across the WebSphere MQ Telemetry Transport. SCADA device clients use the MQIsdp
protocol to send messages, which are converted by the SCADAInput node into a format recognized
by WebSphere Message Broker. The node also establishes the processing environment for these
messages.
COMPONENTS OF BROKER: Broker, Configmgr, User name service.
WORKBENCH:
WORKSPACE:
What is PARSER and difference between PARSER and FORMAT?
A Parser is defined as a program that interprets the bit stream of an incoming message and creates
an internal representation of it in a tree structure
Ex: MRM parser
A Format is a physical representation of a message.
Ex: XML wire format
What is ResetContentDescriptor node?
Use the RCD node to request that the message is reparsed by a different parser.
What is User name Server and where it is defined?
The User Name Server is an optional runtime component that provides authentication of users and
groups performing publish/subscribe operations.
What is SCHEMA of broker?
A broker schema is a symbol space that defines the scope of uniqueness of the names of resources
defined within it. The resources are message flows, ESQL files, and mapping files.
How can we see the error log files in broker?
The Windows Event Viewer is where WebSphere Message Broker writes records to the local
system.
Default properties of Mqinput node?

Property M C Default Description

Property M C Default Description
Message Domain No No The domain that will be used to parse the
incoming message.
Message Set No No The name or identifier of the message set
in which the incoming message is defined.
Message Type No No The name of the incoming message.
Message Format No No The name of the physical format of the
incoming message.
Topic No Yes The default topic for the input message.
Which node is used to change the message in the flow?
Compute Node, Filter Node and ResetContentDescriptor.
What is the use of commit for connection to Databases?
Any work that has been done using the respective data source in a message flow (including any
actions taken in the node) is committed regardless of the subsequent success or failure of the
message flow
Define Correlation names?
A correlation name is a field reference that identifies a well-defined starting point in the logical
message tree and is used in field references to describe a standard part of the tree format.
Functions of ESQL?
MQInput node and INPUT node differences?
You must use an Input node to provide the in terminal to a subflow.
The Input node provides an in terminal for an embedded message flow (a subflow).

How many Builtin nodes are there? Categories them?
WebSphere Message Broker supplies built-in nodes that you can use to define your message flows.
For information about each of these nodes, follow the appropriate link below. The nodes listed here
are grouped according to the function that they provide.
Input and output
MQInput node, MQOptimizedFlow node, MQOutput node, MQGet node, MQReply node, Publication
node, MQeInput node, MQeOutput node, SCADAInput node, SCADAOutput node, HTTPInput node,
HTTPReply node, HTTPRequest node, Real-timeInput node, Real-timeOptimizedFlow node, Input
node, Output node, JMSInput node, JMSOutput node.
Message manipulation and transformation

Compute node, Database node, DataDelete node, Datalnsert node, DataUpdate node, Extract node,
JavaCompute node, JMSMQTransform node, MQJMSTransform node, Mapping node, Warehouse
node, XMLTransformation node .
Collating requests
AggregateControl node, AggregateReply node, AggregateRequest node .
Decision making
Check node, Filter node, FlowOrder node, Label node, ResetContentDescriptor node, RouteToLabel
node, TimeoutControl node, TimeoutNotification node, Validate node.
Subflow identification
Passthrough node
Error handling and reporting
Throw node, Trace node, TryCatch node.
What are the perspectives we have?
Administration Perspective
Application Development Perspective
Debugging Perspective.
Java Perspective (MB 6).
In which perspective we deploy the flow? Administrator perspective
How to create Broker from Command prompt? Using mqsicreatebroker command.
Use of Configmanager? To deploy the message flows onto the Broker.
What is the uniqueness of MB over ICS? Parallel processing
What is EAI? What are those tools?
Enterprise Application Integration refers to the integration of one or more applications and processes
together. Tools: WBI Message Broker, ICS, WebMethods and Tibco.
What is the Broker Domain?
Group of brokers that coordinate a single configuration manager constitute a Broker Domain
What error is going to occur when we didnt specify the queue name in the MQInput node?
The Error message is Unset mandatory Qname Name Property on node MQInput .
How to call the method or function in the coding?
Using the CALL keyword.
Performance monitoring tools?
WebSphere Application Server , Java Management Extensions (JMX),
Functional Testing and Unit Testing?
Unit testing with different test cases
Functional testing with the exact input
How many objects are required for distribution queuing?
QueueManager, SenderChannel, ReceiverChannel, LocalQueue
MQ Objects?

Queue manager , Send queue ,Receive queue , Administration queue ,Restart queue ,Spill queue
Triggering in MQ?
Application Triggering and Channel Triggering.
MQ-triggering, queues, initiation q, deadletter q, process definition, etc.?
Distribution queuing?
Unix Commands?
grep, find, sortetc.
Difference between MCA and MQI channels?
A message channel connects two queue managers via message channel agents (MCAs). Such a
channel is unidirectional. It comprises two message channel agents, a sender and a receiver, and a
communication protocol. An MCA is a program that transfers messages from a transmission queue
to a communication link, and from a communication link into the target queue.For bidirectional
communication you have to define two channel pairs consisting of a sender and a receiver.
A Message Queue Interface (MQI) channel connects an MQSeries client to a queue manager in its
server machine. Clients dont have a queue manager of their own. An MQI channel is bidirectional.
How to configure MQ?
By using runmqsc <Qmanager> command.
How will you Test your Flows?
Using Debugging Mode, Trace Node ..etc..
What workflow will do?
A message Flow is a sequence of processing steps that execute in the broker when an input
message is received.
MQSI Server, MQSI Client difference? How to connect these two through command prompt?
MQSeries Client
A client workstation does not have a queue manager of its own. It shares a queue manager in a
server with other clients. All MQSeries objects, such as queues, are in the server.Since the
connection between client and server is synchronous, the application cannot work when the
communication is broken. You could refer to such workstations as slim clients.
MQSeries Server
A workstation can be a client and a server. A server is an intermediate node between other nodes. It
serves clients that have no queue manager and manages the message flow between its clients,
itself and other servers. In addition to the server software you may install the client software, too.
This configuration is used in an application development environment
Connection: strmqm QMA
start runmqlsr -t tcp -m QMA -p 1414
runmqsc
start channel (QMA.QMB)
end

How will you install and configure CVS & How will you use in MB?
Double-click the Windows cvsnt-2.0.5.exe file to launch the installer.
Displays CVS Setup window appears
Select the option to accept the licence agreement and click Next.
Select Destination Directory screen, the default installation location is
set to Workspace\cvsnt. If you have enough space to install to this
location click Next.
The next screen asks you to choose the components that you wish to install,
Make your selections and click Next.
The Typical installation option already contained all of the components and
protocols that we needed.
The next screen asks where the program should appear on the Start menu.
Accept the default and click Next.
Ensure that both the check boxes to install the CVS services
The Ready to Install screen lists the options you have selected. Click Install
to start the installation. A progress bar appears while the files are copied.
Finally, click Finish when the completion window appears.
Reboot the system. The installation of the CVS server is now complete.
Event Monitoring? (Performance monitoring> Queue depth event)?
Q Depth High,Q Depth Low,Q Depth Full
How will we use a Cobol copybook in MB?
You can populate your message set with message definitions by importing COBOL copybook files,
using either the New Message Definition File wizard or the mqsicreatemsgdefs command line utility.
Types of messages?
MRM, XML, XMLNS, XMLNSC, JMSMap, JMSStream, MIME, BLOB, IDOC.
Deadletter queue cases?
Destination Q is full
Destination Q doesnt exist
Msg too large
Sender is not authorized to use the destination Q
How many types of clients in MQ?
Two Types: Fat Clients and Slim clients.
MQ commands?
CRTMQM, STRMQM, DLTMQM, ENDMQM.
To create Queues, listeners, and channels
DEFINE QUEUE / CHANNEL
DISPLY To display the queue or channel status
Difference between Circular logging and linear logging?

Circular logging gives you restart recovery. Linear logging gives you both restart recovery and media
recovery.
Difference between MQCONN and MQCONNX?
MQCONN (MQSTATE, qManagerName) : Connects to a queue manager, which is identified
by qManagerName, a string of up to 48 characters. MQSeries sets the connection
handle (MQSTATE.hconn) for use in subsequent calls.
MQCONNX (MQSTATE, qManagerName, MQCNO): Connects to a queue manager with
options that control the way that the call works. The queue manager is identified by
qManagerName, a string of up to 48 characters. MQSeries sets the connection
handle (MQSTATE.hconn) for use in subsequent calls.
Difference between MQPUT and MQPUT1?
MQPUT(MQSTATE, MQMD, MQPMO, BUFFER) : Adds a message to the queue. The buffer
cannot be more that 32767 bytes, but that restriction does not apply if you are
using the EGL add statement.
MQPUT1(MQSTATE, MQOD, MQMD, MQPMO, BUFFER): Opens a queue, writes a single
message, and closes the queue
Can we use MQPUT1 in java? Yes we can use.
If we want to perform some operation at receiving application when it receives some
message, then what objects are required at the receiving application?
Target QM, Target Q, Receiver channel and Listener.
How to get the depth of a queue?
By using MQSC property CURDEPTH
What formats MB support?
XML, TDS, CWF, EDI, SWIFT
Where do you place pass-thru node in message flow?
In the sub flows immediate to the input node.
Features of Message Broker?
Routing,Transformation and Integration .
What is CVS (Concurrent Version System)?
It is a repository that will store the previous versions.
Difference between compute and mapping node?
In the compute node we can change the headers but in Mapping node we cant change.
Types of Queues in MQ?
local queue
Remote queue
Transmission queue
Alias queue
Dead letter queue

How do you test your message flows and design test case?
By using debugging perspective.
We can create the Test Case according to the client specification error codes.
If new functionalities (new nodes) are added how will you implement in Interface?
How to configure Adapters?
What are the different ways for giving input without using MQInput node?
Custom input nodes
Why we are migrating from Web Methods to MB?
Advantages of compute node?
To construct one or more new output messages.
To build a new message using a set of assignment statements.
To copy messages between parsers
To convert messages from one code set to another
To transform messages from one format to another
How can you interact with Database using Compute node?
Specify in Data Source the name by which the appropriate database is known on the system on
which this message flow is to execute.
How will you handle errors in Message Flow?
By using Debugging perspective, and Trace node.
Explain about Pub-Sub? How do you implement MQ pub-sub?
Difference between MQ pub-sub and MB pub-sub?
The differences in the publish/subscribe support provided by WebSphere MQ and WebSphere
Message Broker are described in the following topics:
Message formats, Streams, Stream authority, Topics Wildcard characters,
Default topic routing, Retained publications, Metatopics, Subscription points,
Content-based filtering and Throughput.
Aggregate nodes?
Aggregation nodes are used in fan-out and fan-in process.
Fan-out: The initial request to the message flow , representing a collection of related requested
items, is split into the appropriate number of individual requests to satisfy the subtasks of the initial
request.
Fan-in: Replies from the subtasks are combined and merged into a single reply that is returned to
the original requester (or another target application) to indicate the completion of the processing.
WebSphere Message Broker provides three message flow nodes that support aggregation:
AggregateControl, AggregateRequest, AggregateReply.
Filter node?
To route a message according to message content.
Database node?

To interact with a database in the specified ODBC data source.
You can use specialized forms of this node to:
Update values within a database table (the Data Update node)
Insert rows into a database table (the Data Insert node)
Delete rows from a database table (the Data Delete node)
Store the message, or parts of the message, in a warehouse (the Warehouse node)
Logical Message Tree? Message Tree Structure?
The logical tree structure is the internal (broker) representation of a message.
The message tree is a part of the logical message tree in which the broker stores its internal
representation of the message body
Can we create multiple instances of a message flow?
Yes we can. One way is by adding multiple node. For ex.
A single message flow can handle DATA received across MQ and
Messages that are received across native IP connections.
About Resetcontentdescripter node, Label node?
Resetcontentdescripter Node: To request that the message is reparsed by a different parser.
Label Node: use it in combination with a RouteToLabel node to dynamically determine the route
that a message takes through the message flow, based on its content. The RouteToLabel node
interrogates the Local Environment of the message to determine the identifier of the Label node to
which the message must next be routed.
What are the properties of TRACE Node?
The Description properties of the Trace node are described in the following table.

Property M C Default Description
Destination Yes No User
Trace
The destination of the trace record written by the
node. Valid choices are User Trace, File, Local
Error Log, and None.
File Path No Yes The fully-qualified file name of the file to which to
write records. Valid only if Destination is set to
File.
Pattern No No The data that is to be included in the trace record.
Message Catalog No No The name of the message catalog from which the
error text for the error number of the exception is
extracted. The default value (blank) indicates that
the message is taken from the message catalog

Property M C Default Description
supplied with WebSphere Message Broker.
Message Number No No 3051 The error number of the message that is written.
Short Description No No A brief description of the node.
Long Description No No Text that describes the purpose of the node in the
message flow.

What are the types of TRACES?
User trace, Service trace.
User: used for debugging your applications. It can trace brokers, execution groups, and
Deployed message flows.
Service: More comprehensive Broker tracing. It starts tracing for workbench, configuration
Manager, username server.
What is an Execution Group?
An execution group is a named grouping of message flows that have been assigned to a broker. The
broker enforces a degree of isolation between message flows in distinct execution groups by
ensuring that they execute in separate address spaces, or as unique processes
What are the types of Trees?
Message Tree, Environment Tree, Local Environment Tree, Exception list Tree .
What is the difference between Environment and Local Environment?
The Environment tree is a part of the logical message tree in which you can store information
while the message passes through the message flow
What is the Role in your Project?
Explain your role in the project
How to connect Broker in MB?
From Broker domain, using ConfigMgr.
How to connect to database to the remote system?
By doing node catalog and the database catalog.
What is the role of configuration manager?
Connecting to the broker and to deploy the message flows.
How to debug applications in message flow?
Using Debugging perspective, User traces
What is the content of the configuration manager Repository?
It contains the information of the Broker Domain it is related to.
Exception Handling in MB?

By using Compute node, email node and java compute node.
What is the difference between try catch node and throw node?
The message routes out from the out terminal of the Try catch node and if any exception is thrown
(say, by a throw node),then the try catch node catches it and sends the original message through
the catch terminal for error processing
In route to label node where we will gave label name, and syntax of the label name?
SET OutputLocalEnvironment.Destination.RouterList.DestinationData.labelname=name of the label
to which the message is to be routed ;
Assignment in processing node?
How does Message Broker handle a 500 MB input message?
What is the difference between hconn and hconnx?
Hconn is a handle used to connect to Queue manager in MQCONN and MQCONNX api calls.
How will you separate (more number) database exceptions into a different queue?
(Mention 2 ways)
How will you accept an incoming message if its length and structure are not
defined?
How do you change a blob to a fixed structure?
Using TDS, what properties will you set in the message set for the following input:
abc,123|a*xyz,k,55 (i.e., an input message with different delimiters between different data types),
input might not be in the same manner every time.
Are there any wire formats that MB support other than xml and cwf?

Which is good based on performance IF or CASE. Why?
CASE
In clustering, which queue manager will contain the default full repository?
We will be setting the properties at the time of creation of the Queue manager.
We are getting 4 different inputs in 4 formats. How will you handle them using
single message set without using cwf format?
In remote queuing, if the queue on the target queues manager is full, then to which
dead letter queue will the message propagate?
Target dead letter queue
What are the different configuration management tools?
Tivoli, Clear case.
Functionality of mapping node?
Mapping node to construct one or more new messages and populate them with new information,
with modified information from the input message, or with information taken from a database. You
can modify elements of the message body data, its associated environment, and its exception list.
If new functionalities (new nodes) are added how will you implement in Interface?

How will you handle CWF and TDS format?
By developing message sets and using them in the message flow.
How will you trace the errors through command prompt?
Mqsiformatlog, Mqsilist, Mqsichangetrace, mqsireadlog and mqsireporttrace
How can you validate the XML message in the flow?
Using a Message set with the required XML format or by using validate node.
How will you set headers in pub-sub?
By setting the MQRFH2 headers
E.g.:
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = MQSTR;
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
SET OutputRoot.MQRFH2.psc.Command = RegSub;
SET OutputRoot.MQRFH2.psc.Topic = InputRoot.MRM.topel;
SET OutputRoot.MQRFH2.psc.QMgrName= DebugQM;
SET OutputRoot.MQRFH2.psc.QName = PUBOUT;
SET OutputRoot.MQRFH2.psc.RegOpt= PersAsPub;
Explain about PROPAGATE and LAST MOVE?
The PROPAGATE statement is used to generate multiple output messages in the Compute node.
The output messages that you generate can have the same or different content. You can also direct
output messages to any of the four alternate output terminals of the Compute node, or to a Label
node.
The LASTMOVE field function tells you whether the last MOVE function succeeded.
Logical Message Tree? Message Tree Structure?
The logical tree structure is the internal (broker) representation of a message.
The message tree is a part of the logical message tree in which the broker stores its internal
representation of the message body
Can we create multiple instances of a message flow?
Yes by deploying the message flow to different execution groups.
How to import COBOLCOPY BOOK or C format?
By importing the COBOLCOPY BOOK or C file into the existing project and building a message
definition file from this imported structures.
What are the properties MQMD and MQRFH2 Headers?
MQMD are a must headers and are present from starting to end of the message flow but MQRFH2
are optional and are set according to the business need.
What are the properties of TRACE Node?
Destination, File Path, Pattern, Message Catalog and Message Number
What are the types of TRACES?

User trace, service trace, ODBC trace, WebSphere MQ Java Client trace, and Configuration
Manager Proxy trace.
What are the types of Trees?
The input node creates the logical tree, which consists of four sub trees:
Message tree, Environment tree, Local Environment tree, Exception List tree.
What is the difference between Environment and Local Environment?
Environment variables scope is defined for the whole flow where as the Local Environment
variables scope is defined for that node and can be passed on to the next node as well.
How to connect Broker in MB?
Using configuration manager.
How to connect to database to the remote system?
By ODBC driver name.
Exception Handling in MB?
By using the following nodes Throw node, Trace node, Try Catch node.
What is the difference between try catch node and throw node?
Throw node throws an exception where as a try catch node is used to handle the error, which is
raised.
Difference between Root and Output Root?
Both are correlation names. Root is used in nodes which do not create a new output where as
Output Root is used in a node which can create a new output node.
In route to label node where we will gave label name, and syntax of the label
Name assignment in processing node?
By setting the Local Environment variable
Syntax:
LocalEnvironment.Destination.Routerlist.DestinationData = Label name;
Will broker run on AIX system or not? Yes
If the comments for CopyEntireMessage() and CopyMessageHeaders() functions
are not removed, then what will happen?
Functionality of floworder node?
FlowOrder node to control the order in which a message is processed by a message flow. The input
message is propagated to the first output terminal and the sequence of nodes connected to this
terminal process the message. When that message processing is complete, control returns to the
FlowOrder node. If the message processing completes successfully, the input message is
propagated to the second output terminal and the sequence of nodes connected to this terminal
processes the message.
Is there any alternative for MQ to use along with MB? No.
How to suspend a queue manager in a cluster?

In the Navigator view (in the Queue Manager Clusters folder), right-click the queue manager, the
click Suspend cluster membership
What happens if a message is sent to a local queue, which is filled, and a remote
queue, which is filled? Any difference in them?
The message moves to the relevant default deadletter queue
Can we give all the format types in a single message set, If so how?
YES.

How will you declare an array in MB and how will you retrieve the desired value
from an array?
Two types of representations
Dynamic Arrays
Structure-field arrays.

Dynamic Arrays:
Syntax:
myDataItem01 CHAR(30)[] { maxSize=5 };
Structure-field arrays:
record myRecord01Part
10 name[3];
20 firstOne CHAR(20);
20 midOne CHAR(20);
20 lastOne CHAR(20);
end

To retrieve Values:
MyRecord01.name.lastOne[2]
MyRecord01.lastOne [2]
lastOne[2]

What are the properties of .bar file and when they are used?
The unit of deployment to the broker is the broker archive or bar file.The bar file is a zip-format file
which can contain a number of different files:
A .cmf file for each message flow. This is a compiled version of the message flow. You can have any
number of these files within your bar file.
A. dictionary file for each message set dictionary. You can have any number of these files within
your bar file.
A broker.xml file. This file is called the broker deployment descriptor. You can have only one of these
files within your bar file. This file, in XML format, resides in the META-INF folder of the zip file and
can be modified using a text editor or shell script.
Any number of XML files(.xml) and style sheets (.xsl files) for use with the XMLTransformation node.
Any number of JAR files for use with the Java Compute node.
As a zip-format archive, the broker archive file can also contain any additional files you need. For
example, you might want to include Java source files for future reference.

How will you handle an input message with different delimiters between the fields?
Using MRM domain
What are the advantages of Message broker?
Comprehensive monitoring using predefined workspaces that provide statistical information such as
Current Message Rates, Current Average Message Time, and Sub-flow Statistics.
Comprehensive solution for complex WebSphere MQ environments that enables drill down to
problem components
Custom workspaces can be tailored for individual job functions.
What happens when the queue name is not specified in the MQOutput node?
Message is backed out.
what is the difference between catch terminal and failure terminal in MQInput node?
Catch terminal: The output terminal to which the message is routed if an exception
is thrown downstream and caught by this node.
Failure terminal: failure terminal detects an internal error, it propagates the message to that terminal.
The output terminal to which the message is routed if an error occurs. Even if the Validation property
is set, messages propagated to this terminal are not validated.
What are the differences between MB 5.0 and 6.0?
Some additional nodes are added Like Java Compute node.
Configuration manager can be created with out referring database.
Can be installed and configured on Aix also.
How to specify reference keyword in the esql and what is the use of it?
Declare ptr REFERENCE TO InputRoot.xml.emp.eno;
Here, ptr refers to a specific field reference
About SAP connector?
What is the need of transaction mode property in the compute node?
The transaction mode for the node. This can be Automatic or Commit. It is valid only if you have
selected a database table for input.
What are the types of data formats that MB will support?
XML,TDS,CWF
What is the difference between TDS and CWF?
The Tagged/Delimited String format (TDS) is the physical representation of a message that has a
number of data elements separated by tags and delimiters.
Custom Wire Format (CWF) is the physical representation of a message that is composed of a
number of fixed format data structures or elements, which are not separated by delimiters
Command used to deploy?
Using mqsideploy

What should you do before creating the broker and the configuration manager?
We have to create the data source name and Queue manager
Types of testing?

Explain about web services nodes?
WebSphere MQ Web Services Transport connects Web services and clients that use the HTTP
protocol for messaging
A WSDL definition for that service can be imported into a message set using the new WSDL
importer.
HTTPInput: node to receive Web service requests for processing by a message
flowUse the HTTPRequest node to interact with a Web service
SET OutputRoot.HTTPResponseHeader = NULL;

HTTPReply :node to return a response from the message flow to the Web service client.
Select the Ignore Transport Failures check box if you want transport-related failures to be ignored
(for example, if the client is disconnected). If you clear the check box, and a transport-related error
occurs, the input message is propagated to the failure terminal. If you clear the check box, you must
supply a value for Reply send timeout.
Set the Reply send timeout value if you are not ignoring transport failures. This is the length of time
that the node waits for an acknowledgment that the client has received the reply.
Explain about JMS nodes?
JMS Input Node: to receive messages from JMS destinations.
The JMSInput node receives and propagates messages with a JMS message tree. You can set the
properties of the JMSInput node to control the way that the JMS messages are received.
JMS Output Node: to send messages to JMS destinations.

Process of clustering and what are the advantages of clustering?
Grouping up of two or more Queue managers
Advantages : load balancing,reduces network traffic
Working of XML Transformation node?
Used to transform an XML message to another form of XML message, according to the rules
provided by an XSL (eXtensible Stylesheet Language) style sheet.
You can use node properties. This ensures that the transformation defined by this single style sheet
is applied to every message processed by this node.
You can use the content of the XML data within the message itself. This transforms the message
according to a style sheet that the message itself defines.This behavior is only available for XSL and
XML files that are located within a Message Flow project.
You can set a value within the LocalEnvironment folder associated with the message. This provides
a dynamic choice of style sheet, because you must set this value (in a Compute node) within the
message flow after receipt of the message. You can therefore use a variety of inputs to determine
which style sheet to use for this message, such as the content of the message data or a value in a
database.
Configuration of HTTP Input Node?

HTTP INPUT Node:
In URL Selector, put the path part of the URL from which this node receives Web service requests.
Do not give the full URL.
Enter the Maximum client wait time timeout interval, as a number of seconds. This is the length of
time that the TCP/IP listener that received the input message from the Web service client waits for a
response from the HTTPReply node in the message flow. If a response is received within this time,
the listener propagates the response to the client. If a response is not received in this time, the
listener sends a SOAP Fault message to the client that indicates that its timeout has expired.
Select the Fault Format as one of SOAP 1.1, SOAP 1.2 or HTML.
If the node is to accept secure HTTP, select the Use HTTPS check box.
Select Default in the properties dialog navigator and set values for the properties describing the
message domain, message set, message type, and message format that the node uses to
determine how to parse the incoming message.
In the Message Domain field, select the name of the parser that you are using from the drop-down
list. You can choose from:
MRM, XML, XMLNS, XMLNSC, JMSMap, JMSStream, IDOC, MIME, BLOB
If you are using the MRM or IDOC parser, select the correct message set from the drop-down list in
the Message Set field. This list is populated with available message sets when you select MRM or
IDOC as the domain.
Leave the Message Set field blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers.
If you are using the MRM parser, select the correct message from the drop-down list in Message
Type. This list is populated with messages that are defined in the message set that you have
selected.
Leave Message Type blank for XML, XMLNS, XMLNSC, JMS, IDOC, MIME, and BLOB parsers.
If you are using the MRM or IDOC parser, Select the format of the message from the drop-down list
in the Message Format field. This list includes all the physical formats that you have defined for this
message set.
Leave the Message Format field blank for XML, XMLNS, XMLNSC, JMS, MIME, and BLOB parsers.
Select Validation in the properties dialog navigator if you want the MRM parser to validate the body
of messages against the dictionary generated from the message set. (If a message is propagated to
the failure terminal of the node, it is not validated.)
Select General Message Options in the properties dialog navigator. Parse Timing is, by default, set
to On Demand. This causes validation to be delayed until it is parsed by partial parsing. If you
change this to Immediate, partial parsing is overridden and everything in the message is parsed and
validated, except those complex types with a Composition of Choice or Message that cannot be
resolved at the time. If you change this to Complete, partial parsing is overridden and everything in
the message is parsed and validated; complex types with a Composition of Choice or Message that
cannot be resolved at the time cause a validation failure.

Select Description in the properties dialog
navigator to enter a short description, a long
description, or both.
Click Apply to make the changes to the
HTTPInput node without closing the
properties dialog. Click OK to apply the
changes and close the properties dialog.
Click Cancel to close the dialog and discard
all the changes that you have made to the properties.

What is message assembly, How do you create it?
Message assembly is the collection of different trees such as MQMD Properties, Properties Body ...
Message assembly consists of Message Trees which inturn contain data... such as MQMD headers
contain details about the Queue, Queue manager, Message ID Correlation ID... etc.. Message
Assembly is already created for a message which comes in through a input node, If we intend to
create a message assembly we should first figure out what is the end system if its a MQ we should
generate MQ headers, if its a file output node no message headers are required... while creating a
message header we must take care so that we wont miss the Compulsory properties like MQMD
headers should have Message ID and Correlation ID for sure... ignoring these details will lead to
message failure...

What is the difference between 6.1 and 7.0?
There are a lot of enhancements from Message Broker v6 to v7 a lot of new nodes have been added
in v7 they are,
JDEdwardsInput node
JDEdwardsRequest node
FileRead node
EmailInput node
SCAAsyncRequest node
SCAAsyncResponse node
SCARequest node
Resequence node
Sequence node
SecurityPEP node
Lets look into each node briefly, lets start with JDEdwardsInput node,JDEdwardsRequest node.

JDEdwardsInput: This node is used to interact with JD Edwards EnterpriseOne applications. For
example, a JDEdwardsInput node monitors a JD Edwards EnterpriseOne application for a specified
event. When that event occurs, theJDEdwardsInput node generates a message tree that represents
the business object with the new event details. The message tree is propagated to the Out terminal
so that the rest of the message flow can use the data to update other systems, or audit the changes.


JDEdwardsRequest node: This node is used to discover JD Edwards EnterpriseOne business
functions and XML lists. For example, a user might want to retrieve address details for a person
where the record exists on a JD Edwards server. The JDEdwardsRequest node can send and
receive business data.
FileRead node: we can use the FileRead node to read one record, or the entire contents of a file,
from within the middle of a message flow, see Routing or enriching a message based on the
contents of a file. The FileRead node is like the FileInput node which reads a file from the start of a
message flow, except it is driven to read the file by an incoming message.Just like MQGet node.
EmailInput node:The EmailInput node receives an email, with or without attachments, from an
email server that supports Post Office Protocol 3 (POP3) or Internet Message Access Protocol
(IMAP). The body of the email message, and any attachments, are propagated in the Multipurpose
Internet Mail Extensions (MIME) domain. All other information relating to the email is stored in
the Root.EmailInputHeader logical tree.
SCAAsyncRequest node & SCAAsyncResponse node:The SCAAsyncRequest node sends a
request to a business process that is running on WebSphere Process Server, but the node does not
wait for the associated response to be received. However, the SCAAsyncRequest node does wait
for an acknowledgment before continuing with the message flow. The response to the Process
Server request is received by the SCAAsyncResponse node, which can be in the same message
flow or in a separate message flow. The nodes are used as a pair, and correlate responses against
the original requests.

The SCAAsyncRequest node is the first half of the asynchronous request and response node pair.
The SCAAsyncRequest node sends a request to a business process that is running on WebSphere
Process Server. The request is sent by the
SCAAsyncRequest node, but the
SCAAsyncRequest node does not receive
the response. The response is received by
a SCAAsyncResponse node that is
running on a different thread. The
SCAAsyncResponse node is typically at
the beginning of a different message flow;
however, it must be in the same execution
group as the SCAAsyncRequest node.

Resequence node & Sequence node:


The Sequence node: enables us to
receive groups of messages from an input
source, and preserve the order in which
the messages in each group arrived.

Use a Sequence node to generate a monotonically increasing sequence number for each sequence
group. As each message in the group arrives at the Sequencenode, the sequence number for the

group is incremented and stored with the message in a location specified by the node property Path
to store sequence number (for example, LocalEnvironment, MQRFH2 header, message body).

The sequencing applies to messages within the same sequence group only. You can use properties
in the Sequence node to organize messages into groups according to a specified condition; for
example, grouping all messages with the same value in a customer number field in the message. If
no sequence group is specified, a single default group is used for all messages.

The Resequence node: controls the sequence in which a group (or groups) of incoming messages
are propagated through the node in a message flow.

You can use a Resequence node to rearrange groups of messages into sequential order according
to a sequence number in the message. Each message must contain a sequence number, which can
be any positive or negative integer. The sequence number is calculated by an XPath expression
defined in the Path to sequence number property on the node, and it can be one that was added to
the message by a Sequence node.

The Resequence node can reorder multiple sequence groups independently of each other, but it
cannot reorder messages between sequence groups. The group to which a message belongs is
determined by the properties of the Resequencenode.

SecurityPEP node:

The SecurityPEP node enables us to invoke the message flow security manager at any point in the
message flow between an input node and an output (or request) node.

Message flow security enables the broker to perform end-to-end processing of an identity or security
token carried in a message through a message flow. This capability enables you to configure
security for a message flow, allowing you to control access based on the identity or security token
associated with the message and providing a security mechanism that is independent of both
transport type and message format.

The SecurityPEP node enables you to invoke the security manager even if your message flow input
nodes do not support message flow security (for example,TCPIPClientInput or SAPInput nodes). If
you use input nodes that do not support message flow security, or you require some processing or
routing of the message before the required security operation can be identified, you can use
theSecurityPEP node to invoke the message flow security.

Other Changes in Message broker v7:
Brokers does not require a DB
Configuration Manager component no longer exists.

User Name Sever component is removed:

User Name Server are no longer required, Tools now connect directly to the broker, and do not use a
configuration manager. This change reduces the number of steps required for administrative tasks. and
gives the tools direct access to more configuration information.

Pub/Sub Enhancements:
Message Broker V7 uses WebSphere MQ V7.0.1 to handle publish/subscribe (pub/sub) requests, which
means that there is a single topic space and configuration for both products. WebSphere MQ now
handles all topic based publish / subscribe support. Applications use a single topic space that is managed
by WebSphere MQ. Access control is handled by the queue manager. Broker Domains no longer exist.
Default execution groups, which previous versions of Message Broker required in order to run the
pub/sub engine, are no longer used.

WebSphere Process Server Support:
WMB7 makes it easier for application connectivity logic to interact with WebSphere Process Server using
5 newly introduced nodes. SCA Nodes Provide improved interaction between WMB and WPS v6.2
using SOAP/HTTP or MQ Bindings.

WebSphere Adapters Node : Discussed in post below.

Generic Idoc Routing:
By using the SAPInput node in passthrough mode, WebSphere Message Brokercan receive any
IDoc and route it according to IDoc type.The message set for a generic IDoc in ALE passthrough
mode contains four fields. Three of these fields are control information:
The transaction ID
The queue name (if qRFC is used)
The name of the IDoc type
The fourth field is a hexBinary field that contains the entire IDoc in a raw, unparsed format. You
can use the DataObject parser to parse this raw format to a full logical structure of a specific IDoc if
you provide a message set that contains the definition for that IDoc type. To parse raw IDocs, you
must use an MQInputnode with the Message domain property set to DataObject, and the Message
format property set to SAP ALE IDoc.

Publish Subscribe In Detail.
Ever Wonder what a pub sub is?! Its an application publishing and Many others subscribing or vice
versa or many publishing and many subscribing.....whatever....

To do a pub sub Scenario in Message Broker first we should start by creating 3 flows,
Publish_Flow, Registration_Flow, Subscribe_flow. Publish flow is the flow which Sets the topic and
publishes the data. Registration flow is the flow which registers a WMQ Queue for a topic, which is
also known as subscription
The Subscription Flow starts with this Registered Queue,and hears all the data published by the
Publish Flow as long as it is Subscribed.To be subscribed to a topic is pretty simple all we have to do
is to set the MQRFH2.psc details such as,
SET OutputRoot.MQMD.MQRFH2.psc.Command='RegSub';

SET OutputRoot.MQMD.MQRFH2.psc.Topic='Dexter';

And Publishing is way too easier too... Just set the topic, set the command, attach the data, and ram
it into a publish node..
SET OutputRoot.MQRFH2.psc.Topic = 'Dexter';
SET OutputRoot.MQRFH2.psc.Command = 'Publish';
--data to be published
SET OutputRoot."BLOB"."BLOB" =BITSTREAM(InputRoot.XMLNSC.Publish.data);

This is just the over view of whats happening in Publish Subscribe. The complete code for publish
will look like this


--setting output headder
SET OutputRoot.MQMD.ReplyToQ = 'RTQ';
SET OutputRoot.MQMD.Format = MQFMT_RF_HEADER_2;

--setting properties
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCISD = 1208;

--setting topic and command
SET OutputRoot.MQRFH2.psc.Topic = 'Dexter';
SET OutputRoot.MQRFH2.psc.Command = 'Publish';

--data to be published
SET OutputRoot."BLOB"."BLOB" =BITSTREAM(InputRoot.XMLNSC.Publish.data);

this is the code for Register flow...






SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;

SET OutputRoot.MQRFH2.psc.Command='RegSub';

SET OutputRoot.MQRFH2.psc.Topic = InputRoot.XMLNSC.SubsData.Topic;
SET OutputRoot.MQRFH2.psc.QmgrName = InputRoot.XMLNSC.SubsData.QMGR;
SET OutputRoot.MQRFH2.psc.QName = InputRoot.XMLNSC.SubsData.Qname;


What the register flow does is, it takes three parameters Queue name, Queue manager name, and
The most important one TOPIC, just imagine a table with three columns the first one topic, the
second one queue name and, the third one queue manager name, this table is populated every time a

valid subscription request is made, the publication node checks this table and puts the data in the q
name specified in the table, this is the blurred picture of whats happening inside a pub sub....

now coming to the subscribe flow... this is just a normal flow
which has mq input and mq output and all the regular stuff...
this is just to assure that the message indeed reached our flow...


when these three flows run on the broker, the first message we
put, will be into the register flows input node, then into the publish flows input node then we can see
the message passing through the subscribe flow, if the debugging is switched on....


IF you ever wonder how to unsubscribe a topic its pretty simple too u just have to DeregSub all you
have to do is to write is
SET OutputRoot.MQRFH2.psc.Command='DeregSub';
instead of RegSub in the registration flow, you will be unsubscribed off the topic....

Sample Inputs..

Register Flow Input Data:
<SubsData>
<Topic>Dexter</Topic>
<QMGR>WBRK61_DEFAULT_QUEUE_MANAGER</QMGR>
<Qname>REGQ1</Qname>
</SubsData>

Publish Flow Input Data: <Publish><data>I <3 DEXTER</data></Publish>

What Is BIP?
Behavior Intervention Plan is abbreviated as BIP. its a prefix used to differentiate Broker
errors from AMQ errors or CSQ errors

S-ar putea să vă placă și