Displaying host names in MO71

When looking at channel status as reported by IBM MQ, you see the connection name of the channel’s partner, which shows the IP address. IP addresses are not all that memorable, especially as we move into a world with more IPv6 addresses! If you use generic receiver (RCVR) or server-connection (SVRCONN) channels, as is good practice, this can be especially difficult as the channel name is the same for all connections.

MO71 Channel Status IP addresses

All MQ shows you in channel status connection names are the IP addresses

It is possible to improve your understanding about the connections by also displaying the Remote Queue Manager Name (RQMNAME) or Remote Application Name (RAPPLTAG), but with the latest version of MO71, you can now also improve it further by displaying the host name associated with the IP address.

MO71 Channel Status Hostnames

You can configure MO71 to show you hostnames too

In the background, MO71 will make a call to DNS to find out the host name associated with an IP address should it need to be displayed. You choose to display hostnames in a Channel Status List Dialog (such as those shown above), by going into the Alter List… option on the context menu and adding the “Host Name” column to your display. DNS calls can be slow to return so MO71 will cache the results it obtains. You can control how long this caching is for, and clear the cache completely from the Connection tab in the Preferences dialog. If you check the “Save resolved hostnames” option, MO71 will also save the cached values across a restart of the application.

MO71 DNS preferences

The preference options associated with the host name feature

If you find that host names are mainly from a particular domain, and it would be easier to read them without all those dot separated suffixes, you can also configure in the above preferences section, any DNS suffixes to be removed, for example, we could remove mqgem.com in the above examples.

MO71 Channel Status Hostnames Suffix Removed

You can configure MO71 to remove DNS suffixes from host names

If you find that host names are still not memorable enough, or if you are not able to resolve all your IP addresses to suitable hostnames, there is an additional feature. You can create a DNS User file containing your own values. These will be used in preference to any system values retrieved from the DNS. This file could look as follows:-

* MO71 DNS User Values file

192.168.2.106             Dept ASN.RQ server: Contact x2479
192.168.2.107             Dept SALES server: Contact x2588 (Bob)
fe80::9075:a1eb:379d:e7be Business Partner RGHT: Contact Mark 222-567-9765
fe80::9543:124e:4bf7:6374 Devt/Test server: Contact x2544

which would cause MO71 to display that data as the host name in preference to the DNS retrieved values.

MO71 Channel Status User Hostnames

Using the DNS User file you can display any string you want

UPDATE: A minor enhancement to MO71 V9.0.3 adds this host name display to the Queue Usage (DISPLAY QSTATUS) and Connection List (DISPLAY CONN) dialogs too.

So, never be puzzled about what machine an IP address is again. Set up MO71 to show you the string that is most memorable for you.


The new version can be downloaded from the MO71 Download Page. Any current licensed users of MO71 can run the new version on their existing licence. If you don’t have a licence and would like to try out MO71 then send an email to support@mqgem.com and a 1-month trial licence will be sent to you.

MaxChannels vs DIS QMSTATUS CONNS

I got asked this question on twitter the other day, so I thought it would make an interesting blog post.

Let’s look at each piece of the question.

DISPLAY QMSTATUS CONNS

You can use the DISPLAY QMSTATUS command to see how many connections there are currently made into the queue manager. This is a count of the number of applications (or some queue manager processes too) that have made an MQCONN(X) to the queue manager. It is also the same number of responses you should see returned by DISPLAY CONN(*) – if you don’t want to count them, find an MQ admin tool that counts them for you. These connections might be local or client connections – both contribute to the total.

To see the local ones use command:-

DISPLAY CONN(*) ALL WHERE(CHANNEL EQ ' ')

To see the remote ones use command:-

DISPLAY CONN(*) ALL WHERE(CHANNEL NE ' ')

Client Connections and MaxChannels

So having ruled out the local connections what should you think if the number of connections coming in over a channel is more than MaxChannels? As the question asks, “Shouldn’t that be failing?”

The other thing to remember here is that, since MQ V7, one SVRCONN channel can relay several client MQCONNs over to the queue manager.

To see this take a look at the DISPLAY CHSTATUS command. There is a status attribute CURSHCNV that shows the number currently being shared over that one SVRCONN instance.

To see the number of running channels, use the command:-

DISPLAY CHSTATUS(*) CURSHCNV

The number of responses will show you how many running channel instances there are – which is the number to compare against MaxChannels. If you add up the total of all the numbers shown in CURSHCNV, this total will be less than (or equal to) the above number of channel based connections shown when you used the DISPLAY CONN command. Both queue manager channels and client channels contribute to that total.

HINT: If you want an easy way to total up all the numbers shown in CURSHCNV, try out MQSCX with this single line:-

@total=0;foreach(DISPLAY CHSTATUS(*) CURSHCNV);@total=@total+CURSHCNV;endfor;print @total

Or you could make a little import file to print out all the various numbers:-

=echo cmds(NO)
=echo resp(NO)
print 'Show all the connections into queue manager',_connqmgr
print _sep

DISPLAY QMSTATUS CONNS
print 'Total connections ',CONNS

DISPLAY CONN(*) ALL WHERE(CHANNEL EQ ' ')
print 'Local connections ',_matches

DISPLAY CONN(*) ALL WHERE(CHANNEL NE ' ')
print 'Remote connections',_matches

@total = 0
@svrcn = 0
foreach(DISPLAY CHSTATUS(*) CURSHCNV CHLTYPE)
  if (CHLTYPE = "SVRCONN")
    @svrcn = @svrcn + 1
  endif
  @total = @total + CURSHCNV
endfor
print 'Total Channel instances ',_matches
print 'QMgr Channel instances  ',_matches - @svrcn
print 'Client Channel instances',@svrcn
print 'Client connections',@total
=echo cmds(YES)
=echo resp(YES)

UPDATE: This script evolved further with the release of MQSCX V9.0.0 and the use of functions – see more in MQSCX Functions.


IBM Certified SpecialistIBM Champion 2016 Middleware

Morag Hughson
IBM Champion 2016 – Middleware
IBM Certified System Administrator – MQ V8.0
Find her on: LinkedIn: http://uk.linkedin.com/in/moraghughson Twitter: https://twitter.com/MoragHughson SlideShare: http://www.slideshare.net/moraghughson developerWorks: https://www.ibm.com/developerworks/community/profiles/html/profileView.do?userid=110000EQPN