Thursday, February 13, 2014

2537 (09E9) (RC2537): MQRC_CHANNEL_NOT_AVAILABLE

An MQCONN call was issued from a client to connect to a queue manager but the channel is not currently available. 
Common causes of this reason code are:
The channel is currently in stopped state.
The channel has been stopped by a channel exit.
The queue manager has reached its maximum allowable limit for this channel from this client.
The queue manager has reached its maximum allowable limit for this channel.
The queue manager has reached its maximum allowable limit for all channels.

Maximum instances (MAXINST)
Specifies the maximum number of simultaneous instances of a server-connection channel that can be started.

This attribute can be set from zero through 999 999 999. A value of zero indicates that no client connections are allowed on this channel. The default value is 999 999 999.

If the value is reduced below the number of instances of the server-connection channel that are currently running, then the running channels are not affected. However, new instances are not able to start until sufficient existing ones have ceased to run.

This attribute is valid for server-connection channels only.


Maximum instances per client (MAXINSTC)
Specifies the maximum number of simultaneous instances of a server-connection channel that can be started from a single client.

This attribute can be set from zero through 999 999 999. A value of zero indicates that no client connections are allowed on this channel. The default value is 999 999 999.

If the value is reduced below the number of instances of the server-connection channel that are currently running from individual clients, then the running channels are not affected. However, new instances from those clients are not able to start until sufficient existing ones have ceased to run.


This attribute is valid for server-connection channels only.

Sunday, February 9, 2014

How to create a linear logging qmgr in MQ

-bash-4.1$ crtmqm -ll -lp 20 -ls 10 -lf 1024 LLQM
There are 81 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/LLQM' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'LLQM'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.

-ll  : linear logging 
-lp : number of primary logs
-ls : number of secondary logs
-lf : log-file size


How to findout particular qmgr is in Circular/Linear logging ????

Please, Find the difference between queue manager status's using "DIS QMSTATUS ALL" for LLQM and QM1:

dis qmstatus all  (LLQM is a linear logging qmgr)
     3 : dis qmstatus all
AMQ8705: Display Queue Manager Status Details.
   QMNAME(LLQM)                            STATUS(RUNNING)
   CONNS(21)                               CMDSERV(RUNNING)
   CHINIT(RUNNING)                         INSTNAME(Installation1)
   INSTPATH(/opt/mqm)                      INSTDESC( )
   STANDBY(NOPERMIT)                       CURRLOG(S0000000.LOG)
   RECLOG(S0000000.LOG)                    MEDIALOG(S0000000.LOG)
   STARTDA(2014-02-09)                     STARTTI(04.45.40)

dis qmstatus all (QM1 is a circular logging qmgr)
     1 : dis qmstatus all
AMQ8705: Display Queue Manager Status Details.
   QMNAME(QM1)                             STATUS(RUNNING)
   CONNS(21)                               CMDSERV(RUNNING)
   CHINIT(RUNNING)                         INSTNAME(Installation1)
   INSTPATH(/opt/mqm)                      INSTDESC( )
   STANDBY(NOPERMIT)                       STARTDA(2014-02-09)

   STARTTI(04.39.40)                    

How to find the channel initiator is running or not..??    CHINIT(RUNNING)
How to find command server is running or not..??   CMDSERV(RUNNING)





Wednesday, February 5, 2014

DSPMQVER and DSPMQ Command in Unix Box's

[root@nagi reddy]# dspmqver
Name:        WebSphere MQ
Version:     7.5.0.2
Level:       p750-002-130704.TRIAL
BuildType:   IKAP - (Production)
Platform:    WebSphere MQ for Linux (x86 platform)
Mode:        32-bit
O/S:         Linux 2.6.32-71.el6.i686
InstName:    Installation1
InstDesc:    
Primary:     Yes
InstPath:    /opt/mqm
DataPath:    /var/mqm
MaxCmdLevel: 750

[root@nagi reddy]# dspmq
QMNAME(QM1)                                               STATUS(Running)
QMNAME(QM2)                                               STATUS(Running)
QMNAME(CLUS1)                                             STATUS(Running)
QMNAME(CLUS2)                                             STATUS(Running)
QMNAME(CLUS3)                                             STATUS(Running)
QMNAME(CLUS4)                                             STATUS(Running)

bash-4.1$ crtmqm QMQ1
There are 84 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/QMQ1' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'QMQ1'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.

Setup completed.

How do you tell if there are uncommitted messages on a queue??

Display the curdepth of the queue. If it is non-zero, but you can not browse or get a message, the MQPUT has not been committed.
* The sample browse program is amqsbcg.
iSeries platform
iSeries platform
OR
OR
* The sample browse program is panel WRKMQMMSG 
* The sample browse program is panel WRKMQMMSG 
z/OS platform
where "cpf" is the Command Prefix for the queue manager's subsystem and "qname" is the name of the queue to display.

As an alternative to browsing the queue, you can display the UNCOM attribute using DISPLAY QSTATUS command.
You can display the curdepth and uncommitted (uncom) status of a queue in the following ways:
Distributed platforms
In runmqsc, issue
DIS QS(qname) CURDEPTH UNCOM

DSPMQMQ QUEUE(qname)Curdepth is at the bottom of the last panel.

WRKMQMQ QNAME(*ALL) QTYPE(*ALL) MQMNAME(QMGRNAME)The depth column is on the resulting panel.

From WRKMQM panel, select option 26=MQSC for the appropriate qmgr to access the runmqsc panel. Enter
DIS QS(qname) CURDEPTH UNCOM


1) Using the CSQOREXX panels, do a display of object type QUEUE. On the resulting screen, hit F11 for status. The resulting screen has columns for "Depth" and "Uncommitted messages"
OR
2) Through the command line in the joblog. Issue
/cpf DIS QS(qname) CURDEPTH UNCOM


==> Now display the queue status "type(handle) all" if there are uncommitted messages on the queue to determine which application has the queue open for output:

DISPLAY QSTATUS(TEST.QUEUE) TYPE(HANDLE) ALL
This displays an output with the PID and this:
AMQ8450: Display queue status details.                                
   QUEUE(TEST.QUEUE)    TYPE(HANDLE)               
   APPLDESC( )                             APPLTAG(myput.sol)         
   APPLTYPE(USER)                          BROWSE(NO)                 
   CHANNEL( )                           CONNAME( )                 
   ASTATE(NONE)                            HSTATE(INACTIVE)           
   INPUT(NO)                               INQUIRE(NO)                
   OUTPUT(YES)                             PID(26066)                 
   QMURID(0.6007)                          SET(NO)                    
   TID(1)                                                             
   URID(XA_FORMATID[00000000] XA_GTRID[] XA_BQUAL[]) URTYPE(QMGR)
USERID(userID2)             
                                                                     
The above example shows that the application "myput.sol" (attributr APPLTAG) has the queue open for output. If it were a client, the application name shown in APPLTAG would be "amqrmppa".
                                                                     
==> Using the value for the attribute PID from the previous command (in this case is 26066), then find the connection details by displaying the connections that match the PID.

  DISPLAY CONN(*) ALL WHERE(PID EQ 26066)
AMQ8276: Display Connection details.                                  
   CONN(515C36C720002C01)                                             
   EXTCONN(414D5143514958312020202020202020)                          
   TYPE(CONN)                                                         
   PID(26066)                              TID(1)         
APPLDESC( )                             APPLTAG(myput.sol)
   APPLTYPE(USER)                          ASTATE(NONE)               
   CHANNEL( )                          CONNAME( )                 
   CONNOPTS(MQCNO_SHARED_BINDING)       
USERID(userID2)             
   UOWLOG( )                               UOWSTDA(2013-04-04)        
   UOWSTTI(15.26.48)                   UOWLOGDA( )                
   UOWLOGTI( )                             URTYPE(QMGR)               
   EXTURID(XA_FORMATID[00000000] XA_GTRID[] XA_BQUAL[])               
   QMURID(0.6007)                          UOWSTATE(ACTIVE)           
                                                                     

This shows the start date and time of the Unit of Work (UoW). If it were a client connection, the CHANNEL attribute would contain the channel name, and the CONNAME attribute would show the IP address.