{"id":3996,"date":"2014-11-24T12:21:06","date_gmt":"2014-11-24T04:21:06","guid":{"rendered":"http:\/\/rmohan.com\/?p=3996"},"modified":"2014-11-24T12:21:06","modified_gmt":"2014-11-24T04:21:06","slug":"websphere-mq-v6-tutorial","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=3996","title":{"rendered":"Websphere MQ v6 Tutorial"},"content":{"rendered":"<p>MQ Series\/MQ: &#8211; It is an IBM web sphere product which is evolved in 1990\u2019s. MQ series does transportation from one point to other. It is an EAI tool (Middleware). WebSphere MQ.<br \/>\n<script src=\"https:\/\/apis.google.com\/_\/scs\/apps-static\/_\/js\/k=oz.gapi.en_GB.u6Fn0i2IZ7I.O\/m=gapi_iframes_style_slide_menu\/exm=gapi_iframes,gapi_iframes_style_bubble,plusone,profile\/rt=j\/sv=1\/d=1\/ed=1\/am=AQ\/rs=AGLTcCMrAcTPuE6kJJL2kgkme477adtFXA\/cb=gapi.loaded_3\" async=\"\"><\/script><\/p>\n<div class=\"content\">\n<div class=\"content-outer\">\n<div class=\"fauxborder-left content-fauxborder-left\">\n<div class=\"content-inner\">\n<div class=\"main-outer\">\n<div class=\"fauxborder-left main-fauxborder-left\">\n<div class=\"region-inner main-inner\">\n<div class=\"columns fauxcolumns\">\n<div class=\"columns-inner\">\n<div class=\"column-center-outer\">\n<div class=\"column-center-inner\">\n<div id=\"main\" class=\"main section\">\n<div id=\"Blog1\" class=\"widget Blog\">\n<div class=\"blog-posts hfeed\">\n<div class=\"date-outer\">\n<div class=\"date-posts\">\n<div class=\"post-outer\">\n<div class=\"post hentry\">\n<div id=\"post-body-3149519460939929518\" class=\"post-body entry-content\">\nVERSIONS:-5.0, 5.1, 5.3, 6.0, 7.0(new version).<br \/>\nCurrently widely used version is 6.2<br \/>\nNote: &#8211; MQ series supports more than 35+ operating systems. It is platform independent. For every OS we have different MQ series software\u2019s.<\/p>\n<p>MQ series deals with two things, they are OBJECTS, SERVICES.<br \/>\nIn <strong>OBJECTS<\/strong> we have<br \/>\n\u2022 QUEUES<br \/>\n\u2022 CHANNELS<br \/>\n\u2022 PROCESS<br \/>\n\u2022 AUTHENTICATION<br \/>\n\u2022 QUERY MANAGER.<br \/>\nIn SERVICES we have LISTENERS.<\/p>\n<p>Objects: &#8211; objects are used to handle the transactions with the help of services.<\/p>\n<p>QUEUE MANAGER maintains all the objects and services.<\/p>\n<p>QUEUE: it is a database structure which stores messages until the application or program receives messages.<\/p>\n<p>TYPES OF QUEUES:-<br \/>\n\u2022 Local Queue<br \/>\n\u2022 Alias Queue<br \/>\n\u2022 Model Queue<br \/>\n\u2022 Remote Queue<br \/>\n\u2022 Repository Queue<\/p>\n<p>Local Queue:-<br \/>\nA queue is local if it is owned by the queue manager to which the application program is connected. It is used to store messages for programs that use the same queue manager. For Example, program A and program B each has a queue for incoming messages and another queue for outgoing messages. Since the queue manager serves both programs, all four queues are local.<br \/>\nNote: Both programs do not have to run in the same workstation. Client workstations usually use a queue manager in a server machine.<\/p>\n<p>Remote Queue:-<br \/>\nThe queue which holds the address of the remote queue manager where the message has to be sent or delivered.<br \/>\nIt is a logical queue where we cannot store the messages and get the messages.<br \/>\nNote: To send the messages we use only Remote Queue, none other than this<\/p>\n<p>Message Flow from remote Queue<br \/>\n\u201cRemote queue-&gt; Transmission queue-&gt; Channel-&gt;Network receiver channel-&gt; Local queue (finally the message will reach here) \u201c<br \/>\nCHANNEL Channel (123.456)channel name.<br \/>\nCHLTYPE (SDR) sender channel<br \/>\nTRPTYPE (TCP) Transport type using TCP protocol<br \/>\nCONNAME (127.0.0.1)(1414)?the channel will connect to the IP address specified in the conn name and looks for the queue manager which is having listener, port number(1414) and connects to the queue manager.<br \/>\nXMITQ (TQ)?the channel will receive the messages from transmission queue manager.<\/p>\n<p>ALIAS QUEUE:-<br \/>\nAlias queues are not real queues but they are definitions. They are used to assign different names to the same physical queue.<br \/>\nAdvantages of alias queue allow multiple programs to work with the same queue but with different attributes or properties.<br \/>\nExample:<br \/>\nAlias for LQ with different parameters<br \/>\nDEFINE QALIAS (PQ) TARGQ (LQ) GET (DISABLED) PUT (ENABLED)<br \/>\nDEFINE QALIAS (PQ) TARGQ (LQ) PUT (ENABLED) GET (DISABLED)<br \/>\nDEFINE QLOCAL (LQ)<\/p>\n<p>MODEL QUEUE:-<br \/>\nA model queue is not a real queue. It is a collection of attributes that are used when a dynamic queue is created.<\/p>\n<p>Repository Queue:-<br \/>\nRepository queues have existed since Version 5.1 and Version 2.1 for OS\/390. They are used in conjunction with clustering and hold either a full or a partial repository of queue managers and queue manager objects in a cluster (or group) of queue managers.<\/p>\n<p>TYPES OF LOCAL QUEUE:-<br \/>\n\u2022 Dead letter Queue<br \/>\n\u2022 Transmission Queue<br \/>\n\u2022 Initiation Queue<br \/>\n\u2022 Local Queue.<\/p>\n<p>DEAD-LETTER QUEUE: &#8211; the enrooted (or) undelivered messages will be landed in to the dead letter queue.<br \/>\nWe have one control command called runmqdlq.It is a control command which is used to route the messages through .rul table.<br \/>\nThis is called dead letter handler. It is important that we need a dead letter queue defined for every queue manager.<br \/>\nNote:- For one Queue manager we can\u2019t have two dead letter queues.<br \/>\nWe have system defined objects called SYSTEM.DEAD.LETTER.QUEUE. Or we can use our own dead letter queue. The messages those are landed in the dead letter header (DLH). By seeing the dead letter header, we can find the reason and the destination.<br \/>\nRULE TABLE:-<br \/>\nSyntax:- DESTQ(DLQ) DESTQM(222) REASON(*) WAIT(NO) FWDQ(LQ) FWDQM(222) HEADER(NO)<br \/>\nRunmqdlq:-rule table path<\/p>\n<p>TRANSMISION QUEUE:-TQ will receive messages from Remote queue and hits or sends the messages to the channel.<\/p>\n<p>CHANNELS:-<br \/>\nIt is a Networked program to transmit or pas the messages over the network. Channel will receive the messages from XMITQ which is defined in the definition of the channel. Transmission queue is also a local queue.<\/p>\n<p>TYPES OF CHANNELS:-<br \/>\n\u2022 Message channels.<br \/>\n\u2022 MQI Channels.<\/p>\n<p>MESSAGE CHANNELS:-Message channels are one way piping channels. They are used for sending or receiving the messages. Message channels are unidirectional.<\/p>\n<p>TYPES OF MESSAGE CHANNELS:-<br \/>\n\u2022 Sender Channel(SDR)<br \/>\n\u2022 Receiver Channel(RCVR)<br \/>\n\u2022 Server Channel(SVR)<br \/>\n\u2022 Requester Channel(RQSTR)<br \/>\n\u2022 Cluster Sender Channel(CLUSSDR)<br \/>\n\u2022 Cluster Receiver Channel(CLUSRCVR)<\/p>\n<p>MQI CHANNELS:-These channels are two way piping channels which can send and receive the messages in both ways.<br \/>\nTYPES:-<br \/>\n\u2022 Server Connection Channel (SVRCONN)<br \/>\n\u2022 Client Connection Channel (CLNTCONN)<\/p>\n<p>COMBINATION OF CHANNELS:-<br \/>\n\u2022 Sender and Receiver<br \/>\n\u2022 Server and Requester<br \/>\n\u2022 Cluster sender and Cluster Receiver<br \/>\n\u2022 Server Receiver<br \/>\n\u2022 Sender Requester<\/p>\n<p>LISTENER:-<br \/>\n\u2022 It is a service of MQ series<br \/>\n\u2022 Every Queue Manager will have a listener defined with a unique port number.<br \/>\n\u2022 (Default port number is:-1414)<br \/>\n\u2022 Listener acts as a mediator between external application or queue managers connecting to the queue manager.<br \/>\n\u2022 To contact the queue manager we should approach through Listener.<\/p>\n<p>MQI COMMANDS:-<br \/>\nMQI Commands are of three types.<br \/>\n\u2022 CONTROL COMMANDS<br \/>\n\u2022 SCRIPT COMMANDS<br \/>\n\u2022 PCF (programmable command format) COMMANDS.<\/p>\n<p>CONTROL COMMANDS case sensitive)<br \/>\n\u2022 Dspmqver :-to display MQ series version<br \/>\n\u2022 Dspmq :-to view all queue managers of MQ series.<br \/>\n\u2022 Crtmqm :-to create a queue manager<br \/>\n\u2022 Strmqm :-to start queue manager<br \/>\n\u2022 Runmqsc :-to enter in to particular queue manager<br \/>\n\u2022 Endmqm :-to end a queue manager<br \/>\n\u2022 Dltmqm :-to delete a queue manager<br \/>\n\u2022 Dspmqcsv :-to display command server<br \/>\n\u2022 Endmqcsv :-to end command server<br \/>\n\u2022 Strmqcsv :-to start command server<br \/>\n\u2022 Runmqlsr :-to run listener service<br \/>\n\u2022 Endmqlsr :-to end listener service<br \/>\n\u2022 Runmqchl :-to run a channel out of queue manager<br \/>\n\u2022 Runmqdlq :-to execute dead letter handle with the help of rule table<br \/>\n\u2022 Setmqaut :-to set authorizations for particular objects like queuemanager,queue\u2019s channels, listeners to user or group<br \/>\n\u2022 Dspmqaut :-to display authorization for particular user<br \/>\n\u2022 Dmpmqaut :-to dump authorization for particular user<br \/>\n\u2022 Runmqchi :-to run a channel initiator for particular queue manager<br \/>\n\u2022 Runmqtrm :-to run trigger monitor on initiation queue for particular queue manager<br \/>\n\u2022 Rcdmqimg :-to take objects (or) record image of a particular queue manager objects<br \/>\n\u2022 Rcrmqobj :-to recreate the mq objects which are already recorded<br \/>\n\u2022 Replace :-s<\/p>\n<p>SCRIPT COMMANDS:-<br \/>\nAfter entering in to queue manager we can find script commands. Script commands are same for every queue manager. (These Commands should be used in CAPITAL LETTERS)<br \/>\n\u2022 DEFINE :-To define\/create MQ manager objects like queue, Channels, process, and listener.<br \/>\n\u2022 ALTER :-to update or modify the existing objects<br \/>\n\u2022 DISPLAY :-to view all the properties of a particular object or to Display all objects<br \/>\n\u2022 DELETE :-to delete created objects<br \/>\n\u2022 CLEAR :-to clear the message from the queue<br \/>\n\u2022 END :-to come out of the queue manager<br \/>\n\u2022 PING :-to check whether other side channel \/ queue manager is ready to accept our request.<br \/>\n\u2022 START :- to start the particular channel or listener<br \/>\n\u2022 STOP :-to stop particular channel or listener<br \/>\n\u2022 REFRESH :-used to refresh the security every time after giving or executing, set mgr or command for queue manager or object<br \/>\n\u2022 RESET :-used to reset channel,cluster,queue manager<br \/>\n\u2022 RESOLVE :-to resolve the channel which is in indoubt state<br \/>\n\u2022 SUSPEND :-to suspend a queue manager from a cluster environment<br \/>\n\u2022 RESUME :-to remove a queue manager from a cluster environment<\/p>\n<p>CHANNEL STATES: &#8211; Channel states are of 5 types<br \/>\n\u2022 Running<br \/>\n\u2022 Inactive<br \/>\n\u2022 Retrying<br \/>\n\u2022 Stopped<br \/>\n\u2022 Paused(receiver channel)<\/p>\n<p>1. RUNNING: &#8211; before going to Running state the status will be initialization and binding Initialization:-channel will initiate the listener Binding:-sender channel binds with receiver, after that it Goes to running state<br \/>\n2. INACTIVE:-we have one attribute called disconnect interval (DISCINT) with 6000 milli seconds (default) and it can be changed as of our convenience. If the channel is idle for a particular period defined in disconnect interval, the channel will go to inactive state.<br \/>\n3. RETRYING:-the channel goes to retrying state if the other side queue manager will not be available, network issue, may be listener not running, may be receiver channel is in pause state, and may be the receiver channel transportation type is different\u2026. Etc.<br \/>\n4. PAUSED STATE:- this state is applicable for receiver (RCVR) channel. Paused state occurs when the receiving queue is full.<br \/>\nNote:-<br \/>\n1. If we do any changes to the channels, listeners, queue manager, to effect the changes we need to stop and then start them.<br \/>\n2. Before starting a channel listener should be in active \/ running, we can check by pinging the channel.<br \/>\n3. Ping is used to check whether the receiver is in active state or not.<br \/>\nSyntax: &#8211; PING CHANNEL (CHANNEL NAME)<\/p>\n<p>MULTI-HOPPING gate way)<br \/>\nPassing the messages between more than one intermediate queue managers is called Multi-Hopping.<br \/>\nNote:-<br \/>\nFor every queue, except remote queue we have two properties.<br \/>\n1. open input count ( Iproess )<br \/>\n2. open output count ( Oprocss )<br \/>\n3. the application which is connected and putting the messages is called \u201c O process \u201c<br \/>\n4. The application which is processing(getting) the messages is calles \u201c I procss \u201c<\/p>\n<p>PROCEDURE TO CREATE MULTI-HOPPING:-<br \/>\n1. Create a queue manager QM1, QM2, QM3.<br \/>\n2. Start the queue managers QM1, Create a remote queue with attributes local queue name (Remote Queue Manager) i.e Rname QM3 in RQMname and the transmission queue called XMITQ (TQ).<br \/>\n3. Create a transmission queue called (TQ)<br \/>\n4. Create a sender channel from (QM1.QM2)<br \/>\n5. In Qm2 create, Create a receiver channel (QM1.QM2)<br \/>\n6. Create a transmission queue with name target queue manager name called QM3.<br \/>\n7. Create a sender channel from (QM2.QM3) with transmission queue called XMITQ (QM3)<br \/>\n8. In QM3 create a local queue called (LQ) which is defined in remote queue of QM1 Rqueue(QM1)<br \/>\n9. Create a receiver channel (QM2.QM3)<br \/>\nWe should have two listeners in QM2 and QM3.<\/p>\n<p>GENERAL ERRORS OCCURING IN REALTIME SCENARIO:-<br \/>\n1. Mqrc 2059 :- Qmanager not available<br \/>\n2. mqrc 2058 :- Qmanager name error<br \/>\n3. mqrc 2085 :-unknown object name<br \/>\n4. mqrc 2035 :- Not authorized<br \/>\n5. mqrc 2033 :-No message available.<br \/>\n(mqrc\u2014mq reason code)<\/p>\n<p>TRIGGERING:-<br \/>\n1. This is an automated event driven by MQ series<br \/>\n2. Triggering is an event which occurs when specific conditions are met on a queue<br \/>\n3. Triggering are of two types<br \/>\n1. CHANNEL TRIGGERING<br \/>\n2. APPLICATION TRIGGERING<\/p>\n<p>CHANNEL TRIGGERING: &#8211; channel triggering is an event which fires the channel when ever a certain conditions are met on transmission queue.<\/p>\n<p>Disconnect Interval of a Channel :-It is an attribute or property of the channel(DISCINT).if the channel is idle for particular interval of time the channel will go to inactive state.(default time is 6000 milli seconds)<\/p>\n<p>TRIGGER CONDITIONS:-<br \/>\n\u2022 Trigger ON<br \/>\n\u2022 Trigger type(first(t.type),every, depth)<br \/>\n\u2022 Trigger data(channel name which is to be fired)<br \/>\n\u2022 Initiation queue(SYSTEM.CHANNEL.INITQ)<br \/>\nIn command prompt:-<br \/>\nDEFINE QLOCAL (TQ) USAGE (XMITQ) TRIGGERTYPE (FIRST) TRIGDATA (111.222) INITQ (SYSTEM.CHANNEL.INITQ)<br \/>\nTo make changes use alter command<br \/>\nALTER QLOCAL (TQ) TRIGGER TRIGTYPE (FIRST) TRIGDATA (111.222) INITQ (SYSTEM.CHANNEL.INITQ)<br \/>\nIf we want to remove the trigger condition put NO before trigger condition.<\/p>\n<p>CHANNEL TRIGGERING PROCESS:-<br \/>\nAfter giving specific conditions to a transmission queue, whenever the messages comes to the transmission queue, the queue manager will look at the queue, if it is triggered the queue manager will fire a trigger message in to initiation queue(SYSTEM.CHANNEL.INITQ) with the information called trigger type, trigger data, the channel which is to be fired.<br \/>\nAt the initiation queue (SYSTEM.CHANNEL.INITQ) channel initiator will be watching (monitoring) the initiation queue.<br \/>\nWhen ever the trigger message comes to initiation queue, the channel initiator will read the information and initiates the sender MCA (message channel agent).the sender message channel agent will start the channel (which is mentioned in the trigger data).<br \/>\nNote:-MCA (message channel agent) is a program which is defined automatically whenever a queue manager is created.<br \/>\nWe have two types of MCA<br \/>\n\u2022 SENDER MCA(SDRMCA)<br \/>\n\u2022 RECEIVER MCA(RCVRMCA)<\/p>\n<p>CHANNEL INITIATOR:-<br \/>\nIt is a process running on a queue manager when queue manager is in running state. For every queue manager there will only one channel initiator<br \/>\nNote:- 1.In MQseries 5.3 we have to run this channel initiator as a separate process for every queue manager.<br \/>\n2.If we use \u201c&amp;\u201d any process will run at background. this applicable for all.<br \/>\nSyntax:- runmqchi \u2013m Qmanagername \u2013q initq.<br \/>\nExample :- runmqchi \u2013m QM1 \u2013q SYSTEM.CHANNEL.INITQ<br \/>\nTo run channel initiator for queue manager QM1.<br \/>\nIn solaris \/ unix \/linux \/AIX we run the channel initiator as follows.<br \/>\nRunmqchi \u2013m QM1 \u2013q SYSTEM.CHANNEL.INITQ &amp;<\/p>\n<p>APPLICATION TRIGGERING:-when ever specific conditions met on a local queue application triggering works.<\/p>\n<p>TRIGGER CONDITION:-<br \/>\n\u2022 Trigger ON<br \/>\n\u2022 Trigger type(first, every(t.type),depth)<br \/>\n\u2022 Initiation queue(our own defined local queue)<br \/>\n\u2022 Process<br \/>\nDEFINE QLOCAL (LQ) TRIGGER TRIGTYPE (EVERY) INITQ (IQ) PROCESS (NOTEPAD).<br \/>\nDEFINE PROCESS (NOTEPAD) APPLICID (NOTEPAD.EXE) APPLTYPE (WINDOWS)<br \/>\nRunmqtrm \u2013m QM1 \u2013q IQ<\/p>\n<p>BACKGROUND PROCESS:-<br \/>\n1. When ever the message comes to triggered local queue, queue manager will fire trigger message with information called trigger type and the process definition (application which is to be triggered) in to the initiation queue (IQ) (our own queue).<br \/>\n2. At the initiation queue a long running time program called trigger monitor will be watching (monitoring) the initiation queue.<br \/>\n3. Whenever the trigger message occurs in the initiation the trigger monitor will pick the information and starts the application which is defined in the process.<br \/>\nDEFINE PROCESS (NOTEPAD) APPLICID (NOTEPAD.EXE) APPLYTYPE (WINDOWS NT)<\/p>\n<p>COMMAND SERVER:-it is a background process for queue manager when the queue manager starts command server will be running (default)<br \/>\nNote: &#8211; we have one attribute (SCMDSERV) and we have two options in that<br \/>\n1. QMGR<br \/>\n2. MANUAL<br \/>\nBy default the queue manager command server will be under control of (QMGR)<br \/>\nIf we change the SCMDSERV attribute to manual then we need to start command server manually.<\/p>\n<p>CONTROL COMMANDS FOR COMMAND SERVER:-<br \/>\n\u2022 Dspmqcsv<br \/>\n\u2022 Strmqcsv<br \/>\n\u2022 Endmqcsv<br \/>\n1. Dspmqcsv: &#8211; to display the command server for particular queue manager<br \/>\nSyntax:-dspmqcsv qmgrname<br \/>\nE.g.:- Dspmqcsv QM1.qmgr<br \/>\n2. Strmqcsv:-to start the command server for a particular queue manager<br \/>\nSyntax:-strmqcsv \u2013a qmgrname<br \/>\nEg:-strmqcsv Qm1<br \/>\n3. Endmqcsv:-to end the command server for a particular queue manager<br \/>\nSyntax:-endmqcsv \u2013c \u2013I qmgrname<br \/>\nEg :- endmqcsv \u2013I QM1(queue manager)<br \/>\n-c stops the command in a controlled manner.<br \/>\n-I stop the command immediately.<\/p>\n<p>USE OF COMMAND SERVER:- The command server will allow commands to execute on a queue manager using<br \/>\n(SYSTEM.ADMIN.COMMAND QUEUE)<br \/>\nWhen the command server is stopped the commands, the commands will be stored in the command queue called<br \/>\n(SYSTEM.ADMIN.COMMAND QUEUE)<br \/>\nAfter command server comes up the commands would be executed those are in the command queue.<\/p>\n<p>AUTHORIZATIONS:- MQseries provides authorizations(permissions) for the users in two levels<br \/>\n1. Qmanager level<br \/>\n2. Object level<br \/>\nMQMgroup:- This group is automatically created by MQseries after installation. It also creates one user (MUSR_MQADMIN)<br \/>\nThe users should belong to MQM group so that they can have all the permissions to administer MQ series.<\/p>\n<p>COMMANDS TO SET AUTHORIZATIONS:-<br \/>\nSetmqaut:- this command is used to set the authorizations.<br \/>\nSyntax:- setmqaut[-m qmgrname] [-n objname] \u2013t objtype [-p principal \/-g group] [-s service component ]<\/p>\n<p>Dspmqaut :-to display the authorizations which are set to the queue manager.<br \/>\nSyntax:-dspmqaut[-M qmgrname] [-n objname ] \u2013t objtype [-p principal\/ -g group ] [-s service component]<\/p>\n<p>Dspmqaut \u2013m QM1 \u2013t qmgr \u2013p XX(new user)<\/p>\n<p>The entity XX have the following authorizations for object QM1<br \/>\n\u2022 Inq<br \/>\n\u2022 Connect<br \/>\n\u2022 Altusr<br \/>\n\u2022 Crt<br \/>\n\u2022 Dlt<br \/>\n\u2022 Chg<br \/>\n\u2022 Dsp<br \/>\n\u2022 Setid<br \/>\n\u2022 Setall<br \/>\nObject level :-<br \/>\nSyntax:-<br \/>\nSetmqaut \u2013m QM1 \u2013n LQ \u2013t queue \u2013pXX +put<br \/>\nDspmqaut \u2013m QM1 \u2013n LQ \u2013t queue \u2013p XX<br \/>\nThe setmqaut command completed successfully<\/p>\n<p>Semqaut \u2013m QM1 \u2013n(20.30) \u2013t channel \u2013pXX +allmqi<br \/>\nRunmqsc QM1<br \/>\nStarting MQSC for queue manager 1<br \/>\n\u2022 REFRESH CLUSTER<br \/>\n\u2022 REFRESH SECURITY(generally we refresh security)<br \/>\nResult: web sphere security cache refreshed<\/p>\n<p>TROUBLE SHOOTING METHODS:<br \/>\nLOGS:- MQseries have two types of logs<br \/>\n1. TRANSMISSION LOGS<br \/>\n2. ERROR LOGS<\/p>\n<p>TRANSMISSION LOGS:-the transactions like messages inbound(incoming) and outbound(outgoing) objects creation, permissions etc. are going to be written to the transaction logs for every queue manager<br \/>\nDefault path for log files in Windows:-<br \/>\n[ c:\\programfiles\\IBM\\websphere MQ\\log\\QMGR(QM1)\\active directory\\log files ]<br \/>\nDefault path for log files in LINUX, UNIX, SOLARIS, AIX (other than windows):-<br \/>\n[ $\/var\/MQM\/log\/Qm1\/active\/logfiles ]<\/p>\n<p>Transmission logs are of two types:-<br \/>\n1. CIRCULAR LOGS<br \/>\n2. LINEAR LOGS<\/p>\n<p>LINEAR LOGS: &#8211; In linear logs we can recover objects which are damaged and we can take backup and clear the transactions.<br \/>\nBy using linear logs we can restart, recover and Image backup. In this we need some administrative tasks to monitor the logs and to clear the logs.<br \/>\nCHECKPOINT:-It is nothing but creation of objects, which are stored as a transaction and are stored at Checkpoint (objects are LQ, TQ, and Channel\u2026etc)<br \/>\nCreation of queue manager in linear logging:-<br \/>\nSyntax:-<br \/>\nCrtmqm \u2013LL \u2013Lf 2048 \u2013Lp 10 \u2013LS 1 QM2<br \/>\n\u2022 Lq to create a queue manager in linear logging<br \/>\n\u2022 Lf to specify the log file size<br \/>\n\u2022 Lp to specify the number of log primaries<br \/>\n\u2022 Ls to specify the number of secondary logs<br \/>\nNote:-1. In transaction logs we have log primary and log secondary.<br \/>\n2. We can view log primary files but we cannot view log secondary Files.<br \/>\n3. By default queue manager will take \u2013Lp as 3 and \u2013Ls as 2.<br \/>\n4. We can define log primary files maximum up to 250 files and log Secondary files maximum up to 254 files.<br \/>\nLog primary files maximum\u2014250<br \/>\nLog secondary files maximum\u2014254<br \/>\nCreation of image backup by using linear logs:<br \/>\nSyntax:- rcdmqimg<br \/>\nRcdmqimg[-z] [-L] [-m Qmgrname ] \u2013t objtype[generic object name]<br \/>\nRcdmqimg \u2013m Qm1 \u2013t queue LQ<br \/>\nTo recover or recreate:-<br \/>\nRcrmqobj? this command is used to recover the objects.<br \/>\nSyntax:-rcrmqobj[-z] [-m Qmgrname] \u2013t objtype[generic objname]<br \/>\nEg:- rcrmqobj \u2013m Qm1 \u2013t q LQ<\/p>\n<p>ERROR LOGS:-<br \/>\nThe operations going on(running) on MQ series will be written to errorlogs.<br \/>\nWe have two types of error logs,<br \/>\n1.MQseries level<br \/>\n2.Queue manager level errors<br \/>\nQueue manager level errors:-the operations and errors are written to the queue manager error folder.<br \/>\nDefault path for windows :<br \/>\n[ c:\\program files\\IBM\\websphere MQ\\Qmgrs(QM1)\\errors\\logfiles ]<br \/>\nPath for UNIX, LINUX, and SOLARIS:-<br \/>\n[$\/var\/mqm\/qmgrs\/Qm1\/errors\/logfiles ]<br \/>\nMQ series level errors :- the operations or errors which are occurring on MQ series are considered as MQ series level errors.<br \/>\nDefault path for windows :-<br \/>\n[ C:]program files\\IBM\\Websphere mq\\errors\\log files ]<br \/>\nPath for UNIX, LINUX, SOLARIS :-<br \/>\n[ $\/var\/mqm\/errors\/logfiles ]<\/p>\n<p>MQ series Client :- The person or user or application trying to connect access MQseries server or queue manager they need MQ series client installed at their side<\/p>\n<p>MQI channels :-The MQseries client will interact with MQ series server using server connection (SVRCONN) or Client connection channel(CLNTCONN)<br \/>\nIn MQ client sid ewe have three environmental variables<br \/>\n1. MQSERVER ( MQI channels )<br \/>\n2. MQCHLTAB ( MQI channel tables )<br \/>\n3. MQCHLIB (MQI channel library )<\/p>\n<p>Creation of server connection channel :-<br \/>\nDEFINE CHANNEL(SVR) CHLTYPE(SVRCONN) TRPTYPE(TCP) DESCR(\u2018SERVER CONNECTION CHANNEL(not mandatory))<br \/>\nSyntax:-<br \/>\nSet mqserver=server connection channel name\/trptype\/IP address(port)<br \/>\nEg :- set Mq server=SVR\\tcp\\127.0.0.1(1000)<br \/>\nSet MQSERVER<br \/>\nResult:- svr\\tcp\\127.0.0.1(1000)<\/p>\n<p>PERSISTENT AND NON-PERSISTENT MESSAGES :-<br \/>\nMQSeries differentiates<br \/>\nBetween persistent and non-persistent messages. Delivery of persistent messages is assured; they Are written to logs to survive system failures. In an AS\/400 these logs are Journal Receivers.<br \/>\nNon-persistent messages cannot be recovered after a system restart.<\/p>\n<p>How a Client Sends a Request:-<br \/>\nThe client starts a program that puts a message on a queue. For this function five MQSeries API calls are executed<br \/>\n\u2022 MQCONN to connect to the queue manager in the server<br \/>\n\u2022 MQOPEN to open the message queue QS1 for output<br \/>\n\u2022 MQPUT to put a message in the queue<br \/>\n\u2022 MQCLOSE to close the queue QS1<br \/>\n\u2022 MQDISC to disconnect from the queue manager<\/p>\n<p>How the Client Receives a Reply :-<br \/>\nThe client program knows the name of its input queue, here QA1 or QB1. The application can use two modes of communication: \u2022 Conversational<br \/>\nIf the application uses this mode of communication with the server program, it waits for the message to arrive before it continues processing. This means, the reply queue is open and an MQGET with wait option has been issued.<br \/>\nThe client application must be able to deal with two possibilities:<br \/>\n\u2022 The message arrives in time.<br \/>\n\u2022 The timer expires and no message is there.<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>MQ Series\/MQ: &#8211; It is an IBM web sphere product which is evolved in 1990\u2019s. MQ series does transportation from one point to other. It is an EAI tool (Middleware). WebSphere MQ. <\/p>\n<p> VERSIONS:-5.0, 5.1, 5.3, 6.0, 7.0(new version). Currently widely used version is 6.2 Note: &#8211; MQ series supports more than 35+ operating systems. [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3996"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3996"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3996\/revisions"}],"predecessor-version":[{"id":3997,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/3996\/revisions\/3997"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}