Pages

IBM WMB


IBM WEB SPHERE MESSAGE BROKER




What is WebSphere Message Broker [WMB]



Message Broker (MB) introduction:


Application Connectivity:
  
Application connectivity is about providing a way for application programs to interconnect, and allow information to flow between them, without requiring the applications to be aware of the details of the connection. Basic connectivity is the starting point for any integration solution. It provides the transport on which information will flow.


            There are many characteristics that distinguish different transport options, but when integrating across heterogeneous environments and when dealing with applications that were not designed to intercommunicate, there are several mandatory functions needed for success: assured delivery (and persistence), once-only delivery, and asynchronous delivery. It is also essential that the transport be capable of delivering any type of data: Extensible Markup Language (XML), SOAP, and proprietary (when this makes the mostsense for a particular customer’s situation).


These functions are delivered through WebSphere MQ, the standard for messaging connectivity. WebSphere MQ can provide all an application needs provided the number of applications being interconnected is small, two or three for example. But as the number of applications being interconnected increases, additional application connectivity services are needed to implement a more efficient and effective solution.

Message Brokering

  When you are working in a large environment, message brokering functions are required. Fundamentally, message brokers are used to centralize routing and transformation functions, and these functions are essentially handled by a message flow.

          A message flow is a sequence of operations performed on a message by a series of message processing nodes. The actions are defined in terms of the message format, its content, and the results of individual actions along the message flow 

Notice, however, that the flow is, as was the case with basic messaging, simply an extension of the path from the source application to the destination application. In other words, it is assumed that the destination wants, expects, and will handle all messages sent to it.


                     Basically, the Message Broker is a WebSphere MQ application that routes and transforms messages.

The WebSphere Message Broker consists of four components (Toolkit, configuration manager, broker, and User Name Server) that communicate with each other using WebSphere MQ messages. The format of this information is XML.

Message Broker ToolKit

The WebSphere Message Brokers Toolkit is an integrated development environment (IDE) and graphical user interface (GUI) based on the open source Eclipse platform. Application developers work in separate instances of the Message Brokers Toolkit (also known as workbenches) to develop message sets and message flows.
Tasks that can be performed using ToolKit
• Definition of message flows
• Definition and import of message definitions
• Deployment of message flows and message sets to brokers
• Control of log entries written during deploy
• Start, stop, and trace of message flows running in brokers
• Registering brokers in the configuration domai
• Viewing and deleting subscriptions for publish/subscribe
• Setting topic-based access control for publish/subscribe

Broker

A broker is a system service on Windows platforms, a daemon process on UNIX platforms, or a started task on z/OS platforms. It controls processes that run message flows.

Applications often send messages to the broker using WebSphere MQ queues and connections. The broker routes each message using the rules defined in message flows and message sets, which also transforms the data into the structure required by the receiving applications.

Broker Domains  

A broker domain is one or more brokers that share a common configuration, together with the single configuration manager that controls them. The configuration manager maintains all configuration details about the brokers in its domain within its internal configuration repository.

Configuration Manager

The configuration manager functions as the interface between toolkit instances, its internal configuration repository, and a set of brokers executing message flows.

The configuration manager provides brokers with their initial configuration, and updates them with any subsequent changes. It maintains the broker domain configuration. The configuration manager is the central runtime component that manages the components and resources that constitute the broker domain. Administrators typically install, create, and start a configuration manager for each broker domain.
 

User name server

The User Name Server is an optional component, needed only when topic-based access control for publish/subscribe is desired or required.

Message Flows 

A message flow is really nothing more than a program created using graphical tools. The toolkit component provides both the environment and tools to accomplish this task.


 

Message broker nodes are used in Message flows.  A message flow node is a processing step in a message flow.
 
                A message flow node receives a message, performs a set of actions against the message, and optionally passes the message on to the next node in the message flow. A message flow node can be a built-in node, a user-defined node, or a subflow node.
   
 A built-in node is a message flow node that is supplied by WebSphere Message Broker. The built-in nodes provide input and output, manipulation and transformation, decision making, collating requests, and error handling and reporting functions.
   
 A user-defined node is an extension to the broker that provides a new message flow node in addition to those supplied with the product. It must be written to the user-defined node API provided by WebSphere Message Broker for both C and Java languages.
    
A subflow is a directed graph that is composed of message flow nodes and connectors and is designed to be embedded in a message flow or in another subflow. A subflow must include at least one Input node or one Output node. A subflow can be executed by a broker only as part of the message flow in which it is embedded, and therefore cannot be independently deployed. 

A message flow node has a fixed number of input and output points known as terminals. You can make connections between the terminals to define the routes that a message can take through a message flow.
Input and output nodes define points in the message flow to which client applications send messages, and from which client applications receive messages.Client applications interact with these nodes by putting messages to, or getting messages from, the I/O resource that is specified by the node as the source or target of the messages. Although a message flow must include at least one input node, it does not need to include an output node.

Overview of all the nodes available in WMB v6.0, 6.1 and 7.0

Input Nodes:
MQInput:
    Use an MQInput node if the messages arrive at the broker on a WebSphere MQ queue, and the node is to be at the start of a message flow. 

MQGet:
    Use an MQGet node if the messages arrive at the broker on a WebSphere MQ queue and the node is not to be at the start of a message flow. 

SCADAInput:
    Use a SCADAInput node if the messages are sent by a telemetry device. 

HTTPInput:
    Use an HTTPInput node if the messages are sent by a Web services client. 

Real-timeInput or Real-timeOptimizedFlow:
    Use one of these nodes if the messages are sent by a JMS or multicast application.    The Real-timeInput node is an input node and the Real-timeOptimizedFlow node is a complete message flow that provides a high performance publish/subscribe message flow. 

JMSInput
    Use a JMSInput node if the messages are sent by a JMS application. 

User-defined input node:
    Use a user-defined input node if the message source is a client or application that uses a different protocol or transport.

Input node
    If you are creating a message flow that you want to embed in another message flow (a subflow) that you will not deploy as a stand-alone message flow, you must include at least one Input node to receive messages into the subflow. 

Output Nodes:
Publication
    Use a Publication node to distribute the messages using the publish/subscribe network for applications that subscribe to the broker across all supported protocols. 

MQOutput
    Use an MQOutput node if the target application expects to receive messages on a WebSphere MQ queue, or on the WebSphere MQ reply-to queue that is specified in the input message MQMD 

MQReply
    Use an MQReply node if the target application expects to receive messages on the WebSphere MQ reply-to queue that is specified in the input message MQMD. 

SCADAOutput
    Use a SCADAOutput node if a telemetry device is the target of the output messages, and the Publication node is not suitable. 

HTTPReply
    Use an HTTPReply node if the messages are in response to a Web services client request. 

HTTPRequest
    Use an HTTPRequest node if your message flow interacts with a Web service. 

Real-timeOptimizedFlow
    Use a Real-timeOptimizedFlow node if the target application is a JMS or multicast application. 

JMSOutput
    Use a JMSOutput node if the messages are for a JMS destination. 

User-defined output node
    Use a user-defined output node if the target is a client or application that uses a different protocol or transport. 

Output node
    If you are creating a message flow that you want to embed in another message flow (a subflow) that you will not deploy as a stand-alone message flow, you must include at least one Output node to propagate messages to subsequent nodes that you connect to the subflow. 

Nodes for manipulating, enhancing, and transforming messages
Compute
    Use the Compute node to:
        * Manipulate message content
        * Transform the message in some way
        * Interact with a database to modify the content of the message or the database and pass on one or more new messages 

JavaCompute
    Use the JavaCompute node to:
        * Examine an incoming message and, depending on its content, propagate it unchanged to one of the node’s two output terminals. The node behaves in a similar way to a Filter node, but uses Java™ instead of ESQL to decide which output terminal to use.
        * Change part of an incoming message and propagate the changed message to one of the output terminals.
        * Create and build a new output message that is totally independent of the input message. 

Mapping
    Use the Mapping node to create a new message from the input message by mapping the content of elements of the output message from elements of the input message, or from database content. You can also extract parts of the message, and optionally change their content, to create a new output message that is a partial copy of the message that is received by the node. 

Database
    Use the Database node to interact with a database that is identified by the node properties. The Database node handles both predefined and self-defining messages. 

DataDelete, DataInsert, DataUpdate
    The DataDelete, DataInsert, and DataUpdate nodes are specialized forms of the Database node that provide a single mode of interaction (deletion of one or more rows, insertion of one or more rows, or update of one or more existing rows). 

Warehouse
    The Warehouse node provides a store interface that you can use to store all or part of the message in a database 

XMLTransformation
    Use the XMLTransformation node to transform an input XML message into another format using XSLT style sheets.
    It, can perform the following actions:
    * Sort the data
    * Select data elements to include or exclude based on some criteria
    * Transform the data into another format 

JMSMQTransform
    Use the JMSMQTransform node to transform a message with a JMS message tree into a message that has a tree structure that is compatible with the format of messages that are produced by the WebSphere MQ JMS provider. 

MQJMSTransform
    Use the MQJMSTransform node to receive messages that have a WebSphere MQ JMS provider message tree format, and transform them into a format that is compatible with messages that are to be sent to JMS destinations. 

MQOptimizedFlow
    Use the MQOptimizedFlow node to replace a publish/subscribe message flow that consists of an MQInput node connected to a Publication node, and that uses the JMS over WebSphere MQ transport. 

User-defined
    Use a user-defined node to handle specific requirements that are not met by the built-in nodes.

Decision making nodes

Validate
    Use the Validate node to check that the message that arrives on its input terminal is as expected.     

Filter
    Use the Filter node with an ESQL statement to determine the next node to which the message is sent by this node.    

FlowOrder
    You can connect the terminals of this node to force the message to be processed by one sequence of nodes, followed by a second sequence of nodes. 

Passthrough
    Use the Passthrough node to enable version control of a subflow at run time. Use this node to add a label to your subflow.    

RouteToLabel and Label
    Use the RouteToLabel node following a Compute node for complex routing. Define a list of destinations in a Compute node that are acted on by the RouteToLabel node, which interrogates the destinations and passes the message on to the corresponding Label node. 

ResetContentDescriptor
    Use the ResetContentDescriptor node to set new message properties that are used when the message bit stream is next parsed by a subsequent node in the message flow.

Nodes for controlling time-sensitive operations

TimeoutControl
    Use a TimeoutControl node and a TimeoutNotification node together in a message flow to control events that occur at a specific time or at defined time intervals. The TimeoutControl node receives an input message that contains a timeout request. All or part of this input message is validated and stored to be propagated by an associated TimeoutNotification node in the message flow. The input message is also propagated unchanged to the next node in the message flow. 

TimeoutNotification
    Use a stand-alone TimeoutNotification node to generate messages that are propagated at configured times or time intervals to the next node in the message flow for further processing.

Nodes for collating requests

Use the AggregateControl, AggregateReply, and AggregateRequest  nodes to collate related requests and responses. Use these nodes to generate several requests in response to one input message, to control and coordinate the responses that are received in response to those requests, and to combine the information that is provided by the responses to continue processing.

Error handling and reporting nodes
Trace
    Include a Trace node to generate one or more trace entries to record what is happening in the message flow at this point. 

TryCatch
    Include a TryCatch node to control the error processing when exceptions are thrown. 

Throw
    Include a Throw node to force an exception to be thrown, and specify the identity of the exception, to make it easier to diagnose the problem. 

New nodes in v6.1

File and FTP nodes

FileInput node reads files from the local file system or FTP server 

FileOutput node writes files to the local file system or FTP server

Route, database route nodes:

The new Route node provides a graphical technique to enable incoming requests to be examined, and flow sent down the appropriate part of the message flow, depending on the specified criteria. 

The DatabaseRoute node provides a similar function to the Route node, but the routing decision is based on the contents of a relational database. 

DatabaseRetrieve node enables data to be retrieved from one of more relational databases, and use a similar dialogue to the DatabaseRoute node.

New nodes in V7
V7 introduced new nodes for SCA (service component architecture). These are nodes are basically for use with websphere process server which uses SCA. 

SCA Input Node: A WebSphere Process Server SCA Import component can use Message Broker as an SCA endpoint. The message received by the broker can be a SOAP over HTTP message or an MQ message on a queue, depending on the binding used by the node. 

SCA Reply Node: This allows a response message to be sent from the broker back to the originating Process Server SCA client, in response to a prior message received by an SCA Input Node. 

SCA Request Node: This allows synchronous requests to be made from the broker, allowing the broker to participate in synchronous message exchange patterns with a Process Server SCA export component. The message sent by the broker can be a SOAP message over HTTP, or an MQ message, depending on the binding used by the node. The node will perform a blocked wait for a specified time period until a response is received



 
 

 
  



 
 





















What is MQ?

MQ stands for Message queuing. MQ allows application programs to use the message queuing to participate in message-driven processing.

what are the advantages of MQ?
  • Integration
  • Asynchrony
  • Assured delivery
  • Scalability
What is the format of the command "dspmqver"?

Version.release.modification.fixpack. 6.0.2.7

What is a user exit in terms of MQ?

Using these user exits, we can insert our code into the queue manager function.

What are the logging configuration files?

mqs.ini - config file for mq level settings
qm.ini - config file for queue manager level settings


What is the algorithm used in MQ for ensuring integrity?

Log write integrity is the algorithm used to ensure integrity. This can be changed in QM config file

When a queue manager starts, what are the default components that start with the Queue manager?

The Queue Manager task:

  • LOGGER-IO
  • ERROR-LOG
  • CHECKPOINT
  • ASYNCQ
  • EXPIRER
  • STATISTICS


What is the communication protocol used by MQ Explorer to connect to the remote QMs?

TCP/IP Protocol


What is a Channel?

Channel can be depicted as a pipe/connection for communication between queue managers to exchange messages.

What are various types of channels in MQ v6?
  • Sender(SDR)
  • Receiver(RCVR)
  • Cluster Receiver(CLUSRCVR)
  • Cluster Sender(CLUSSDR)
  • Server(SVR)
  • Requester(RQSTR)
  • Client Connection(CLNTCONN)
  • Server connection(SVRCONN)
  •  
What is the purpose of Channel Initiator in MQ?
monitor the system-defined initiation queue SYSTEM.CHANNEL.INITQ

Channel Listener - listens for any incoming network requests and starts the appropriate receiver channel.

What are the types of Queues available in MQ V6?
  • Local
  • Alias
  • Remote
  • Model - dynamic queues that are created on the fly by the applications
  • Cluster queue

What are the types of logging in MQ?

  • Circular -lc
  • Linear - ll

Inorder to instruct Websphere MQ to advance/write to a new linear log, "RESET QMGR TYPE(ADVANCELOG)"

In order to recover a queue from a media failure, what type of logging combined with messaging should be?
ans. Linear logging with persistent messaging

Name the log control file in MQ v6?

Log control file is amqhlctl.lfh
Default location of logs
  • UNIX: /var/mqm/log/
  • Windows: C:\Program Files\IBM\WebSphere MQ\log\
Log Defaults in UNIX:
  • LogPrimaryFiles=3
  • LogSecondaryFiles=2
  • LogFilePages=1024
  • LogType=CIRCULAR
  • LogBufferPages=0
  • LogDefaultPath=/var/mqm/log
What is a dead-letter queue handler? How do you invoke it?

runmqdlq - command to start the DLQ handler(monitor & handle messages in DLQ)

dead letter queue handler can be used to both select a message and perform various actions on that message. The runmqdlq command takes its input from stdin. When the command is processed, the results and a summary are put into a report that is sent to stdout. By taking stdin from the keyboard, you can enter runmqdlq rules interactively.


What is a MCA?

A Message Channel Agent(MCA) - sits at each end of the channel controlling the sending and receiving messages. MCA takes the messages from the transmission queue and puts them on the communication link(channel) between the queue managers.

What is an Initiation queue?

Queues that are used in triggering. A message is put by the queue manager on the initiation queue when the trigger event occurs


What is a Command Server in Websphere MQ z/OS?
Command Server is a component of Websphere MQ that works with command processor component.
Reads messages from system-command input queue, verifies them, passes the valid ones as commands to the command processor
command processor processes the message and replies back to the reply-to queue that is specified.

System command input queue -> SYSTEM.COMMAND.INPUT
SYSTEM.ADMIN.COMMAND.QUEUE
reply-to queue -> SYSTEM.COMMAND.REPLY.MODEL

Security/Authorization

Authorization for using MQI calls, commands and access to objects is provided by the Object Authority Manager (OAM). The “setmqaut” command is used to grant or revoke authorizations as required.
A security refresh is required after setmqaut commands are issued. This can be done by recycle of QMGR to refresh the security cache or
by runmqsc command “refresh security(*) all”
“dspmqaut” and “dmpmqaut” can be used to view authorities.

Stopping queue managers in WebSphere MQ for Windows
To stop a queue manager running under WebSphere MQ for Windows:
  1. List the names (IDs) of the processes currently running using the Windows Process Viewer (PView)
  2. Stop the processes using PView in the following order (if they are running):
AMQZMUC0
Critical process manager
AMQZXMA0
Execution controller
AMQZFUMA
OAM process
AMQZLAA0
LQM agents
AMQZLSA0
LQM agents
AMQZMGR0
Process controller
AMQZMUR0
Restartable process manager
AMQRMPPA
Process pooling process
AMQRRMFA
The repository process (for clusters)
AMQZDMAA
Deferred message processor
AMQPCSEA
The command server
AMQXSSVN
Shared memory servers
AMQZTRCN
Trace
  1. Stop the WebSphere MQ service from Services on the Windows Control Panel.
  2. If you have tried all methods and the queue manager has not stopped, reboot your system.
Stopping queue managers in WebSphere MQ for UNIX systems
To stop a queue manager running under WebSphere MQ for UNIX systems:
  1. Find the process IDs of the queue manager programs that are still running using the ps command. For example, if the queue manager is called QMNAME, use the following command:
ps -ef | grep QMNAME
  1. End any queue manager processes that are still running. Use the kill command, specifying the process IDs discovered using the ps command.
End the processes in the following order:
amqzmuc0
Critical process manager
amqzxma0
Execution controller
amqzfuma
OAM process
amqzlaa0
LQM agents
amqzlsa0
LQM agents
amqzmgr0
Process controller
amqzmur0
Restartable process manager
amqrmppa
Process pooling process
amqrrmfa
The repository process (for clusters)
amqzdmaa
Deferred message processor
amqpcsea
The command server
Note: Processes that fail to stop can be ended using kill -9.
If you stop the queue manager manually, FFSTs might be taken, and FDC files placed in /var/mqm/errors. Do not regard this as a defect in the queue manager.
The queue manager should restart normally, even after you have stopped it using this method



WebSphere Message Broker Interview Questions
Q:
What exactly do you understand by message broker??
A:
A Message Broker is an intermediary program that helps communicating multiple system to each other by transforming, routing the messages in the way they need.


Q:
Why do we require message broker when we have MQ?
A:
Both message broker and mq works as middleware programs, that is to help communicating different systems, but mq has a slight drawback that it cannot transform the messages. It can just send the message to other system.


Q:
What is the difference between Message Broker and MQ?
A:
WebSphere MQ facilitates communication between applications by sending and receiving message data via messaging queues. WebSphere MQ provides a secure and reliable layer of transport for moving data unchanged in the form of messages between applications but it is not aware of the content of the messages.

WebSphere Message Broker is built to extend WebSphere MQ, and it is capable of understanding the content of each message that it moves through the Broker. Message Broker can do 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.


Q:
What are the advantages of using Websphere message broker?
A:
Websphere message broker provides services, based on message brokers to allow you to:
  • Route a message to several destinations, using rules that act on the contents of one or more of the fields in the message or message header.
  • Transform a message, so that applications using different formats can exchange messages in their own formats.
  • Store a message, or part of a message, in a database.
  • Retrieve a message, or part of a message, from a database.
  • Modify the contents of a message; for example, by adding data extracted from a database.


Q:
What all are the main components used in Message Broker?
A:
The main components used in Message Broker Name Server are
  • User Name Server
  • Configuration Manager
  • Broker


Q:
What do you understand by Broker Domain?
A:
Group of brokers under a single configuration manager constitute a Broker Domain.


Q:
What is the significance of nodes in message flows?
A:
A message flow node receives a message, performs a set of actions against the message, passes the original message or the changed message, to the next node in the message flow.


Q:
If configuration manager is down, what are the effects on the running brokers?
A:
The running broker will also be down at the moment when configuration manager is down.


Q:
How can we create broker?
A:
Two ways to create broker:
  • By using Websphere Message Broker Explorer.
  • By using command prompt.


Q:
What is the command use to create broker?
A:
mqsicreatebroker is the command used to create broker.


Q:
What is User name Server?
A:
The User Name Server is an optional runtime component that provides authentication of users and groups and give an administrative control over who can publish and who can subscribe operations.



Q:
What is the Role of Username server?
A:
The User Name Server interfaces with operating system facilities to provide information about valid users and groups in a broker domain.


Q:
Can a single queue manager have two brokers?
A:
No a single queue mnager cannot have two brokers.


Q:
With Which command one can deploy the bar files?
A:
Using the mqsideploy command one can deploy the bar files.


Q:
What is the difference between a Root and OuputRoot?
A:
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



Q:
What is the Use of Configmanager?
A:
To Connect to the remote broker or local broker and to deploy the message flows onto the Broker.



Q:
Which perspective you used to deploy the flow?
A:
Administrator perspective is used to deploy the flow.



Q:
What do you understand by EAI? Name some EAI tools?
A:
Enterprise Application Integration refers to the integration of one or more applications and processes together.
Tools: WBI Message Broker, Tibco, WebMethods and ICS



Q:
What are the Features of Message Broker?
A:
WMB has many features, The main features are :
  • Routing
  • Transformation and
  • Integration



Q:
What do you mean by an Execution Group?
A:
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.



Q:
What is the significance of SCHEMA in message broker?
A:
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.



Q:
What are the perspectives you have mainly used while development in message broker?
A:
The perspectives mainly used while the development in message broker are
  • Administration Perspective
  • Application Development Perspective
  • Debugging Perspective
  • Java Perspective (MB 6)


Q:
What is the significance of message flows in message broker?
A:
A message Flow describes the sequence of steps followed in the broker that processes an input message when an input message is received.


Q:
What is PARSER?
A:
A Parser is a program that takes the incoming message, interprets its bit stream and creates an internal representation of it in a tree like structure, which can be then understand by message broker assembly.


Q:
What is a Format?
A:
Physical Representation of a message is a Format.


Q:
What you do to make your services actually run?
A:
Packaging services in a BAR file and deploy the BAR file on the broker.


Q:
What is a BAR?
A:
Broker Archive or BAR is a package of message flows, message sets, java utility classes, xslts etc. that are grouped together to be deployed on the broker.


Q:
Which command is used to create a BAR?
A:
mqsipackagebar command.


Q:
What does mqsiapplybaroverride command do?
A:
The mqsiapplybaroverride command is used to replace configurable values in the broker archive (BAR) with new values that you specify in a properties file.


Q:
Which nodes in WMB supports aggregation?
A:
  • AggregateControl
  • AggregateRequest
  • AggregateReply


Q:
Is it possible to create multiple instances of a message flow?
A:
Yes. We can create multiple instance of a message flow by deploying the message flows to different execution group.


Q:
What is a logical message tree?
A:
Logical message tree is the internal representation of a message.


Q:
What are the types of Trees?
A:
Four sub tree of a logical tree created by input node of a message flow:
  • Message tree
  • Environment tree
  • Local Environment tree
  • Exception List tree.



Q:
What is the purpose of a filter node?
A:
The purpose of a filter node is to route a message based on the content dynamically


Q:
What are the types of TRACES?
A:
  • User trace
  • Service trace.


Q:
What are the Types of Queues, one can create in MQ?
A:
  • Local queue
  • Remote queue
  • Transmission queue
  • Alias queue
  • Dead letter queue


Q:
What are the types of clients in MQ?
A:
There are two types of clients in MQ
• Fat Clients: Does have a local queue manager.
• Slim clients: Does not have a local queue manager, whereas the queue manager reside on the server.



Q:
With which all nodes one can change message in a message flow?
A:
Compute Node, Message Mapping Node, Filter Node, ResetContentDescriptor Node ca change message in a message flow.



Q:
What will happen if we don’t specify queue name in a MQOUTPUT or MQINPUT node?
A:
Message will be backed out and an exception will be thrown with the message no queue name is defined.



Q:
What happen if a message is sent to a queue and the queue is filled?
A:
Then the message goes to the relevant dead letter queue.



Q:
What is the difference between Environment and Local Environment tree?
A:
The environment tree differs from the local environment tree in that a single instance of it is maintained throughout the message flow. If you include a Compute node, a Mapping node, or a JavaCompute node in your message flow, you do not have to specify whether you want the environment tree to be included in the output message. The environment tree is included automatically, and the entire contents of the input environment tree are retained in the output environment tree. Any changes that you make are available to subsequent nodes in the message flow, and to previous nodes.



Q:
In what all cases message goes into DeadLetter Queue?
A:
  • When the Destination queue is full
  • When the Destination queue doesn’t exist
  • When the incoming message too large
  • When the Sender is not authorized to use the destination queue.



Q:
WMB provide supports for what types of messages?
A:
WMB provide support for following type of messages:
  • MRM
  • XML
  • XMLNS
  • XMLNSC
  • JMSMap
  • JMSStream
  • MIME
  • BLOB
  • IDOC



Q:
What do you mean by Correlation names?
A:
A correlation name is a field reference referencing a well-defined starting point in the logical message tree and to describe a standard part of the tree format.


Q:
What do you mean by ResetContentDescriptor node?
A:
ResetContentDescriptor node request to parse the message with different parser, leaving the message content unchanged.


Q:
What is the difference between an MQGet node nd MQInput node?
A:
The MQGet node reads a message from a specified queue, and establishes the processing environment for the message. Whereas, The MQInput node receives a message from a WebSphere MQ message queue that is defined on the queue manager of the broker.

You can use an MQGet node anywhere in a message flow, unlike an MQInput node, which you can use only as the first node in a message flow.


Q:
What is the difference between SOAPRequest node and SOAPAsyncRequest node?
A:
The SOAPAsyncRequest node sends a Web service request, but the node does not wait for the associated Web service response to be received. This asynchronous functionality enables multiple outbound requests to be made almost in parallel because the outbound request is not blocked waiting for the response.

Whereas, The SOAPRequest node is a synchronous request and response node, which blocks processing after sending the request until the response is received.


Q:
What is the difference between Mapping node and Compute node transformation?
A:
In Compute node you can transform the message by coding ESQL in the ESQL resource file attached. Whereas, In mapping node you can use graphical maps to transform input message by associating an input message model such as a DFDL or XML schema, or an MRM Message Set and an output message model.

In compute node you can change the entire message even the header assemblies. But, In mapping node you can change the message assembly, message body, and properties.


Q:
What is the difference between Input and MQInput node?
A:
Use the Input node as an In terminal for an embedded message flow (a subflow).The MQInput node receives a message from a WebSphere MQ message queue that is defined on the queue manager of the broker. It is the first node of your message flow.


Q:
What is the purpose or use of compute node?
A:
The Compute node is used to:
  • Build a new message using a set of assignment statements
  • Copy messages between parsers
  • Convert messages from one code set to another
  • Transform messages from one format to another


Q:
How the interaction with Database does take place using Compute node?
A:
In Data Source specify the name by which the appropriate database is known on the system on which this message flow is to execute.


Q:
Difference between try catch node and throw node?
A:
Include a Throw node to force an error path through the message flow if the content of the message contains unexpected data.

If a downstream node (which can be a Throw node) throws an exception, the TryCatch node catches it and routes the original message to its Catch terminal. Connect the Catch terminal to further nodes to provide error processing for the message after an exception.


Q:
How will input messages with different - different delimiters between the fields are handled in WMB?
A:
Using MRM domain we can input messages with different - different delimeters between the fields in WMB.


Q:
What do you mean by depth of a Queue?
A:
Queue depth, is the number of pending input/output messages in a queue.


Q:
How can we know the current depth of a queue?
A:
Using MQSC property CURDEPTH we can know the current depth of a queue.


Q:
Message Broker supports what all formats?
A:
Message Broker supports XML, TDS, CSV, CWF, EDIFACT, SWIFT, COBOL formats


Q:
What all nodes uses ESQL?
A:
ESQL can be used with the Compute, Database, and Filter nodes.


Q:
What is ESQL?
A:
Extended Structured Query Language (ESQL) is a programming language based on Structured Query Language (SQL), which is commonly used with relational databases such as DB2. ESQL extends the constructs of the SQL language to provide support for you to work with both message and database content.


Q:
What functionality ESQL provides?
A:
Through ESQL you can
  • Change the message content.
  • Modify an existing message
  • Create a new message
  • Add dynamic terminals
  • Route a message
  • Propagate a new request



Q:
What are the types of variables in ESQL?
A:
ESQL variables can be described as external variables, normal variables, or shared variables.



Q:
What are external variables, normal variables, or shared variables?
A:
         External variables:
  • Also known as user defined properties.
  • Exist for entire life time of a message flow and are visible to all messages passed through the flow.
  • Defined at module or schema level.
  • You have to assign an initial value at the time of declaring an external variable and then can modify the initial value at deployment time by using the BAR editor.

    Normal Variables:
  • Have lifetime of just one message pass through a node.
  • Visible to that message only in which it was defined.
  • To define, omit both EXTERNAL and SHARED keyword.

    Shared variable:
  • Used to implement in-memory cache in the message flow.
  • Have a long life time and are visible to multiple messages pass through the flow.
  • Exist for the lifetime of Execution group, lifetime of flow or node, lifetime of node’s ESQL that declares the variable.
    Initialized when the first message pass through the node or flow after broker startup.



Q:
What are patterns?
A:
A pattern captures a tested solution to a commonly recurring problem, addressing the objectives that you want to achieve.



Q:
What are the benefits of using patterns?
A:
Patterns provide the following benefits:
  • Give you guidance for the implementation of solutions
  • Increase development efficiency, because resources are generated from a set of predefined templates
  • Result in higher quality solutions, through reuse of assets and common implementation of programming approaches, such as error handling and logging



Q:
How do you ensure that messages do not lose?
A:
For application and internal messages traveling across WebSphere MQ, two techniques protect against message loss:
  • Message persistence - If a message is persistent, WebSphere MQ ensures that it is not lost when a failure occurs, by copying it to disk.
  • Sync point control - An application can request that a message is processed in a synchronized unit-of-work .



Q:
How to use functions in your esql code?
A:
Use CALL keyword to call functions or methods.



Q:
What are the ways in which you can access databases from a message flow?
A:
You can access a database from a message flow in two ways:
  • You can design a message flow that responds to events generated by the database.
  • After a flow has already started, you can access the database to read or update information in it. Information from the database can be used to enhance or influence the operation of the message flow.

Q:
What all nodes can access databases?
A:
We can access a database from a message flow by using the following nodes:
  • Compute
  • Database
  • DatabaseInput
  • DatabaseRetrieve
  • DatabaseRoute
  • Filter
  • JavaCompute
  • Mapping


Q:
What is Publish/Subscribe?
A:
Publish/subscribe is a style of messaging application in which the providers of information (publishers) are decoupled from the consumers of that information (subscribers).


Q:
What are the techniques used in transforming and enriching messages in WMB?
A:
We can transform and enrich messages by using one or more of the following techniques:
  • Mappings
  • ESQL
  • Java
  • XSL style sheets
  • PHP
  • .NET


Q:
What are the basic error handling techniques available in message flow?
A:
There are two general approaches to handle errors in a message flow:
  • Failure checking
  • Catching Exceptions


Q:
What are message models?
A:
Most message formats are not self-defining, and a parser must have access to a predefined model that describes the message, if it is to parse the message correctly. A message model is used by WebSphere Message Broker to model a message format.


Q:
What are the advantages of modeling messages?
A:
Even if your messages are self-defining, and do not require modeling, message modeling has the following advantages:
  • Runtime validation of messages. Without a message model, a parser cannot check whether input and output messages have the correct structure and data values.
  • Enhanced parsing of XML messages. Although XML is self-defining, all data values are treated as strings if a message model is not used. If a message model is used, the parser is provided with the data type of data values, and can cast the data accordingly.
  • Improved productivity when writing ESQL. When you are creating ESQL programs for WebSphere Message Broker message flows, the ESQL editor can use message models to provide code completion assistance.
  • Drag-and-drop operations on message maps. When you are creating message maps for WebSphere Message Broker message flows, the Message Mapping editor uses the message model to populate its source and target views. Without message models, you cannot use the Message Mapping editor.
  • Reuse of message models, in whole or in part, by creating additional messages that are based on existing messages.
  • Generation of documentation.
  • Provision of version control and access control for message models by storing them in a central repository.


Q:
What are the ways to create message models?
A:
You can create a message model by using the following methods:
  • Importing an application message format that is described by an XML Schema, XML DTD, C structure, COBOL structure, SCA import or export, or WSDL definition.
  • By creating an empty message model file, then creating your message by using the editors provided in the WebSphere Message Broker Toolkit.
  • By using the Adapter Connection wizard to import EIS metadata.
  • By creating a populated model file from example message data.
    .


Q:
What is the difference between mqsicreatemsgdefs or mqsicreatemsgdefsfromwsdl command-line utilities?
A:
The mqsicreatemsgdefs command has a bulk import capability, but mqsicreatemsgdefsfromwsdl imports only one WSDL definition at a time.


Q:
What are message sets?
A:
A message set is a folder in a message set project that contains a logical grouping of your messages and the objects that comprise them (elements, types, groups).


Q:
What is a message definition file?
A:
A message definition file contains the messages, elements, types, and groups which make up a message model within a message set. Every message set requires at least one message definition file to describe its messages. Message definition files use the XML Schema language to describe the logical format of one or more messages.


Q:
What is a multipart message?
A:
A multipart message contains one or more other messages within its structure. The contained message is sometimes referred to as an embedded message. A multipart message must contain a group, or a complex type, with its Composition property set to Message.




Q:
What is Triggering in MQ?
A:
A message is put to a queue defined as Triggering.


Q:
What does a PROPAGATE keyword do?
A:
The PROPAGATE statement is used to generate multiple output messages in the Compute node. The output messages may have same or different message content. You can also send output messages to any alternate output terminals of the Compute node.


Q:
Why do we use Sequence node?
A:
The Sequence node enables you to receive groups of messages from an input source, and preserve the order in which the messages in each group arrived.




Q:
Which command is used to modify broker parameters?
A:
mqsichangebroker command is used to modify broker parameters.

Q:
What is the purpose of using mqsichangeproperties command?
A:
mqsichangeproperties command can be used to change properties associated with a broker such as:
  • that affect the whole broker; for example, an HTTP listener or Service Federation Management
  • that affect one or more execution groups; for example, the broker registry
  • that affect a configurable service; for example, a JMS provider.

3. What are the main components of IIB/WMB?

The 3 main components in IIB/WMB are Runtime, Development and Administration.
  • Runtime - The broker runtime is the main processing component to which development artifacts are deployed.
  • Development - The Toolkit is used for development of message flows and other development artifacts.
  • Administration - Message Broker Explorer is an administration tool used to perform deploys, create brokers or new execution groups, and enable flow monitoring. WMB V8 provides a WebUI tool to view the broker runtime or resources deployed in a browser.

4. Does IIB/WMB require a database to function?

From Message Broker V7 onwards, there is no database pre-requisite, the product does not require a database for any internal function. You may have database nodes or use databases for other function and so Message Broker does provide functionality to interface with application databases.

5. How do I install IIB/WMB?

IIB/WMB installation comprises of installing a Broker component, the Tookit and Message Broker explorer. On Windows all three components can be installed using Windows Launchpad that is provided with the product. On Unix platforms, installation can be performed through an installation wizard or in silent mode. On z/OS, the installation is performed using SMP/E
Detailed information about installation is provided in the online Information Center

6. Getting started with IIB/WMB. Is there a default configuration of IIB/WMB that I can use?

Yes. IIB/WMB provides a default configuration. This can be started through Toolkit Welcome screen. The default configuration wizard creates a broker and all the resources required.
 
7. Where can I find training and education on setting up and using the IIB/WMB Product?

The IBM Education Assistant site has a number of education modules across multiple Message Broker releases. See the IBM Education Assistant: WebSphere Message Broker page

IBM Education also offers courses on IIB/WMB. See this list of IIB/WMB courses being offered.

8. Where can I find samples for IIB/WMB?

A comprehensive set of samples are provided with IIB/WMB. These samples can be found on the Toolkit Welcome page. The samples cover basic concepts as well as advanced areas like WebServices File processing, Monitoring etc. See the complete list of samples available.


9. Are there IBM forums or user groups available for IIB/WMB users?

The following forums and user groups are available for Message Broker.
1. mqseries.net forum - This forum is active with participation by the Message Broker user community.
2. IBM developerWorks forum
10. How do I create a broker?

A broker can be created using Message Broker explorer or from the command line. Specific information on creating a broker is available in the online Information Center under the topic Configuring brokers for test and production > Configuring brokers
Creating a broker


11. What are the major processes for a running broker?

Once a broker is started, the following processes get started and they can be seen in Task Manager (on Windows) and/or ps listing (on UNIX's). On z/OS these processes run under USS.
  • bipservice - This is a bootstrap process that starts the broker runtime
  • bipbroker - This main administration that manages the broker runtime.
  • biphttplistener - This is the http server process that provides HTTP and SOAP functionality in Message Broker
  • DataFlowEngine - This is the Execution Group process which runs message flow threads. Each message flow runs in this process as a thread.
12. Are there any monitoring tools available in IIB/WMB?

Business level monitoring can be configured in IIB/WMB message flows that enables the different nodes in the message flow to emit events when processing messages. These events can be further fed to other applications such as WebSphere Business Monitor for transaction monitoring, transaction auditing, and business process monitoring. More information can be found in the online Information Center under the topic Performance and monitoring > Business-level monitoring


13. What are the High availability options available in IIB/WMB?
Message Broker can be set up to work with the following High Availability options:
  • Multi-instance mode using multi-instance queue manager
  • Existing High Availability manager/Windows cluster such as HACMP or MSCS cluster

Please see the following page for more information on High availability.
 
14. What are the backup and recovery procedures for IIB/WMB?
The details may be found in the online Information Center under the topic Administering existing brokers > Backing up resources
15. Are there any existing message flow patterns/templates that I can use to design my message flows?
Built-in patterns are supplied with the IIB/WMB Toolkit to create resources that are used to solve specific business problems You can also create user-defined patterns by using the pattern creation templates provided with IIB/WMB Toolkit.
Patterns are available to a pattern user in the Patterns Explorer view in the Broker Application Development perspective of the IIB/WMB Toolkit.
16. How do I migrate from a previous version to the newer version?
You can migrate in two different ways:
  • Import all the development artifacts into the Message Broker Toolkit which will migrate them as necessary and deploy them to the new version runtime.
  • Migrate only the runtime by using the mqsimigratecomponents command
    For example, mqsimigratecomponents <broker> -s <source version> -t <target version>

The details may be found in the online Information Center under the topic Reference > Configuration and administration > Commands > Runtime commands > mqsimigratecomponents command


17. Where can I find the latest Fix Pack for IIB/WMB?
A Fix Pack may be downloaded from the following page Recommended fixes for WebSphere Message Broker
18. When is the next Fix Pack available?

19. Where are the security features provided in IIB/WMB?
IIB/WMB provides a number of security features. Detailed information about all the security features available in IIB/WMB can be found in the online Information Center under the topic Security overview
20. Can I receive updates about IIB/WMB?
Yes. To subscribe to the quarterly IIB/WMB Newsletter, send an email to wsehelp@us.ibm.com with the subject line: subscribe IBM Integration Bus and WebSphere Message Broker









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 OFBROKER,WORKBENCH, WORKSPACE, and CMM?

  BROKER:
A broker is a set of execution processes that hosts one or more message flows toroute, 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 betweenmessage flows in distinct execution groups by ensuring that they execute inseparate 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 formatrecognized by WebSphere Message Broker. The node also establishes the processingenvironment for these messages.
COMPONENTS OF BROKER:
Broker, Configmgr, User name service.
WORKBENCH:WORKSPACE:

What is PARSER and difference between PARSER and FORMAT?
AParser 
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 ResetContentDescriptor 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 usersand 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 localsystem.

 

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 anyactions taken in the node) is committed regardless of the subsequent success or failure of themessage flow 
Define Correlation names?
A correlation name is a field reference that identifies a well-defined starting point in the logicalmessage 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 messageflows. For information about each of these nodes, follow the appropriate link below. The nodeslisted here are grouped according to the function that they provide

Input and output
MQInput nodeMQOptimizedFlow nodeMQOutput nodeMQGet nodeMQReply nodePublication nodeMQeInput nodeMQeOutput nodeSCADAInput nodeSCADAOutput nodeHTTPInput nodeHTTPReply nodeHTTPRequest nodeReal-timeInput nodeReal-timeOptimizedFlow nodeInput nodeOutput nodeJMSInput nodeJMSOutput node
Message manipulation and transformation
Compute nodeDatabase node
 
DataDelete nodeDatalnsert nodeDataUpdate nodeExtract nodeJavaCompute nodeJMSMQTransform nodeMQJMSTransform nodeMapping nodeWarehouse nodeXMLTransformation node 
Collating requests
AggregateControl nodeAggregateReply nodeAggregateRequest node 
Decision making
Check nodeFilter nodeFlowOrder nodeLabel nodeResetContentDescriptor nodeRouteToLabel node
 
TimeoutControl nodeTimeoutNotification nodeValidate node 
Subflow identification
Passthrough node 
Error handling and reporting
Throw nodeTrace nodeTryCatch node 
What are the perspectives we have?
Administration PerspectiveApplication Development PerspectiveDebugging Perspective.Java Perspective (MB 6). 
In which perspective we deploy the flow?
Administrator perspective 


 







No comments:

Post a Comment

Note: only a member of this blog may post a comment.