1. WebSphere MQ Introduction Presented by Mikhail Vladimirov (Leximera, Inc. http://www.leximera.com)
2. A bit of history IBM WebSphere MQ product was first released in 1992 and was previously known as MQSeries; re-branded to WebSphere MQ in 2002 to join the WebSphere product line. Normally is referred to simply as “MQ”.
3. To see the technology proposition of MQ, let’s review an example of EAI (Enterprise application integration) technology
7. Enter the MQ World MQ is an IBM’s Message Oriented Middleware (MOM) offering in the Enterprise area that provides the universal messaging backbone across 80 different platforms. Competition: TIBCO Oracle Microsoft Progress
14. Channels Communication between queue managers is done via channels. A channel provides uni-directional communication link; a second channel is required to return data. The names of the of both (sender and receiver) channels must be the same. Main types of message channels: Sender - initiates connection to the receiver and acts as the "transaction coordinator" Receiver – the listener counterpart on the remote QM A sending channel has a defined destination on the remote QM and is linked with a specific transmission queue to hold in-flight messages Message Channels are implemented by programs called Message Channel Agents (MCA)
15. MQI commands MQCONN MQOPEN MQPUT MQGET MQCLOSE MQDISC MQINQ MQSET MQBEGIN MQCMIT MQBACK connect to a queue manager open an object (e.g. a queue) put a message on a queue get a message from a queue close an object disconnect from a queue manager inquire about attributes of object set attributes of a queue start a unit of work commit changes rollback changes
16. Command line interface Show QMs on the system: $ dspmq QMNAME(QM2) STATUS(Ended immediately) QMNAME(WBRK61_DEFAULT_QUEUE_MANAGER) STATUS(Running) ------------------------------------------------- Start/stop QM $ strmqm <QMName> / endmqm –i <QMName>
17. MQSC command line processor runmqsc [QMGR name if not default] – invoke command line processor dis queue(*) – show all queues dis ql(*) - show all local queues dis qr(*) - remote queues There is a great deal of commands for creating/defining MQ objects (queues, channels, etc.), manipulating their state (stop/start) as well as inquiring about their statuses
18. MQSC command line processor (cont’d) DISPLAY CHSTATUS ('UX.TO.WIN.CHA01') START CHANNEL('UX.TO.WIN.CHA01') DISPLAY QUEUE(LAB.IN) CURDEPTH //#of msg in queue // Local name definition (creation) DEFINE QLOCAL (ORANGE.LOCAL.QUEUE) [USAGE (NORMAL)] // not an xmit queue // Remote queue definition (creation) DEFINE QREMOTE (LOCAL.QUEUE.NAME.HERE) RNAME (LOCAL.QUEUE.NAME.THERE) RQMNAME(QM2) XMITQ (MY.XMITQ)