This post include a summary on IBM WebSphere MQ
Queue Managers, Queues , Channels and Messages. Knowing these concepts will help you to do
simple tasks like creating a queue, sending and receiving messages from a
queue.
1. Queue
Managers
Queue manager is the top level object that holds in
the network (Such as queues and channels). Queue
manager names must be unique. The main tasks done through a queue manager are,
Start channels
Process MQI calls
Create, delete, alter queues and channel
definitions
Run a command server to process MQSC commands
Coordinator for all queue operations.
2. Queues
Queue holds the messages destined to it and send
the messages to consumers in the receiving order. A queue has two defined
limits.
Maximum number of messages that it can hold
Maximum length of a message.
There are several queue types that can be used with
the IBM MQ. They are,
Local queue:
A local queue object identifies a local queue
belonging to the queue manager to which the application is connected. All queues
are local queues in the sense that each queue belongs to a queue manager and,
for that queue manager, the queue is a local queue. Local queues allow programs
to both put messages on , and get messages off.
There are again three types of specifications. They are:
Transmission queue
Initiation queue
Dead Letter queue
a. Transmission queue - This type of Queue Holds the message that is destined for Remote queue. Whenever communication link is available the message would be forwarded to that queue.
Transmission queues are temporarily stores messages that are destined for a remote queue manager. You must define at least one transmission queue for each remote queue manager to which the local queue manager is to send messages directly.
b. Initiation queue - This local queue in which QMgr puts a message to start an application when certain conditions are satisfied.
c. Dead Letter queue - This Dead letter queue is used by QMgr and as well as other applications to put the message when they cant deliver the message to the destined queue.
There are again three types of specifications. They are:
Transmission queue
Initiation queue
Dead Letter queue
a. Transmission queue - This type of Queue Holds the message that is destined for Remote queue. Whenever communication link is available the message would be forwarded to that queue.
Transmission queues are temporarily stores messages that are destined for a remote queue manager. You must define at least one transmission queue for each remote queue manager to which the local queue manager is to send messages directly.
b. Initiation queue - This local queue in which QMgr puts a message to start an application when certain conditions are satisfied.
c. Dead Letter queue - This Dead letter queue is used by QMgr and as well as other applications to put the message when they cant deliver the message to the destined queue.
Remote queue:
Remote queue definitions are definitions on the
local queue manager of queues that belong to another queue manager. To send a
message to a queue on a remote queue manager, the sender queue manager must
have a remote definition of the target queue. Remote queues only allow programs
to put messages only.
Alias queue:
Alias queues are not actually queues; they are
additional definitions of existing queues. another name for a local or remote
queue. Typically used to switch queue
destinations without modifying program code.
Model queue:
A model queue defines a set of queue attributes
that are used as a template for creating a dynamic queue. Dynamic queues are
created by the queue manager when an application issues an MQOPEN request
specifying a queue name that is the name of a model queue. The dynamic queue
that is created in this way is a local queue whose attributes are taken from
the model queue definition. The dynamic queue name can be specified by the
application or the queue manager can generate the name and return it to the
application. Dynamic queues defined in this way are either temporary queues,
which do not survive product restarts, or permanent queues, which do
Cluster
queue:
A cluster queue is a queue that has been shared in
a cluster so that all of the queue managers in the cluster can put and get from
the queue using cluster channels.
3.Channels
A channel is a communication link used by
distributed queue managers. There are two categories of channel in MQ:
Message
channels, which are unidirectional, and transfer messages from one queue
manager to another.
A message channel can transmit messages in one
direction only. If two-way communication is required between two queue managers,
two message channels are required.
There are six types of message channels:
Sender - initiates connection to Receiver
Server - Accepts request to start from requester,
then becomes Sender
Receiver - Passive; waits for initiation sequence
form Sender
Requester - Active at start, then becomes Receiver
Cluster-sender (used amongst Cluster Queue
Managers)
Cluster-receiver (ditto)
MQI channels,
which are bidirectional, and transfer MQI calls from a MQ client to a queue
manager, and responses from a queue manager to a MQ client.
There are two types
of MQI channel : server-connection and client-connection.
4.Messages
A message any arbitrary data that one program wants
to send to another. This data is called the application data. A message needs
to include other information, such as its destination and possibly a return
address. This type of data is called the message descriptor
There are
four types of messages:
A request message is used by one program to ask
another program for something (usually data). A request message needs a reply.
A reply message is used in response to a request
message.
A one-way message, as you would expect, doesn’t
need a reply, though it can carry data.
A report message is used when something unexpected
occurs. For example, if the data in a reply message is not usable, the
receiving program might issue a report message.
- Most useful report messages are generated by the Queue Manager. For example, Delivery confirmation.
- Messages can have a “time-to-live”, called Expiry. A message that has not been delivered before its expiration is removed (not given to an app)
- What to do with undeliverable messages? Each queue manager can have a dead-letter queue.
A persistent message survives the restart of the
queue manager. A non-persistent message does not survive a restart of the queue
manager.Persistent messages are written out to logs and
queue data files. If a queue manager is restarted after a failure, it recovers
these persistent messages as necessary from the logged data. Messages that are
not persistent are discarded if a queue manager stops, whether the stoppage is
as a result of an operator command or because of the failure of some part of
your system.
No comments:
Post a Comment