You are currently browsing the monthly archive for April 2007.

I’d like to invite you all to suggest ideas for future blog posts. If there is anything that you would find interesting or useful for us to cover, now would be a good time to let us know.

This could be a HOWTO for something that you think is a little complicated (or even just where something is easy to get wrong).

It could be some background where you think it would be interesting to hear about how a bit of WebSphere MQ works, or why it works the way that it does.

Is there any part of WebSphere MQ where you think we could go into more detail than there currently is in the manuals?

Read the rest of this entry »

Update (13/12/2007): The contents of this post have since been largely superseded by the release of PowerShell cmdlets for WebSphere MQ.

A better way to do filtering

A follow-on post from WebSphere MQ scripting using PowerShell – part 2

In hindsight, my approach to filtering was too restrictive (filtering by name only). Instead, it would be better for the function to just return queue objects, and let the user use the built-in functions to filter on them as they want.

Display objects…

  • Choose which attributes you want to be outputted
  • Apply filters – return queues whose parameter(s) match certain filters (supporting complex queries with AND and OR)
  • Sort by a parameter

And do this for local or remote queue managers.

I’m leaving Display-WMQQueues as it is, and have started a new function – Get-WMQQueues – to do this.

This is much much better:

PS-WMQ DALE >  Get-WMQQueues | Select Name, CurrentDepth

Name                                                   CurrentDepth
----                                                   ------------
SYSTEM.ADMIN.ACCOUNTING.QUEUE                                     0
SYSTEM.ADMIN.ACTIVITY.QUEUE                                       0
SYSTEM.ADMIN.CHANNEL.EVENT                                        0
SYSTEM.ADMIN.COMMAND.QUEUE                                        0
SYSTEM.ADMIN.LOGGER.EVENT                                         0
SYSTEM.ADMIN.PERFM.EVENT                                          0
SYSTEM.ADMIN.QMGR.EVENT                                           1
SYSTEM.ADMIN.STATISTICS.QUEUE                                     0
SYSTEM.ADMIN.TRACE.ROUTE.QUEUE                                    0
SYSTEM.AUTH.DATA.QUEUE                                           54
SYSTEM.CHANNEL.INITQ                                              0
SYSTEM.CHANNEL.SYNCQ                                              0
SYSTEM.CICS.INITIATION.QUEUE                                      0
SYSTEM.CLUSTER.COMMAND.QUEUE                                      0
SYSTEM.CLUSTER.REPOSITORY.QUEUE                                   1
SYSTEM.CLUSTER.TRANSMIT.QUEUE                                     0
SYSTEM.DEAD.LETTER.QUEUE                                          0
SYSTEM.DEFAULT.INITIATION.QUEUE                                   0
SYSTEM.DEFAULT.LOCAL.QUEUE                                        0
SYSTEM.PENDING.DATA.QUEUE                                         0
TINY_QUEUE                                                       12


PS-WMQ DALE >  Get-WMQQueues | Select Name, CurrentDepth | Where { $_.CurrentDepth -gt 0 }

Name                                                   CurrentDepth
----                                                   ------------
SYSTEM.ADMIN.QMGR.EVENT                                           1
SYSTEM.AUTH.DATA.QUEUE                                           54
SYSTEM.CLUSTER.REPOSITORY.QUEUE                                   1
TINY_QUEUE                                                       12

Read the rest of this entry »

Update (13/12/2007): The contents of this post have since been largely superseded by the release of PowerShell cmdlets for WebSphere MQ.

This month’s issue of TechNet Magazine includes an article giving a nice introduction to PowerShell – the new Windows command shell and scripting language. It was a useful reminder that I had said that I was going to look into writing some useful PowerShell functions for WebSphere MQ, so last night I had a quick play to see what I could do with it.

In this post, I discuss how PowerShell can be used to extend the capabilities of existing command-line tools for WMQ, and outline how I got it working.

I began by thinking of what PowerShell could do to supplement runmqsc. To recap from my earlier post, PowerShell is a scripting language which supports the use of .NET libraries, such as that provided with WMQ. Two obvious points suggested themselves as places to start:

  1. Connect to remote queue managers over a client connection
    • rather than just local queue managers
  2. Provide more powerful wildcards and filtering when using DISPLAY to show queue manager objects
    • rather than just accepting full names, or prefix followed by *

The full source for my script is included at the end of this post. The rest of this post breaks the script down and discusses each part.

Read the rest of this entry »

I came across The Support Authority series of WAS related articles on developerWorks the other day, with their latest article on WAS trace released yesterday.

In this series a group of IBM’s technical support professionals are taking the time to explain the trace, and other RAS (reliability, availability and serviceability) features, of WebSphere Application Server and IBM’s JVM.

If you use WMQ as a messaging provider for WAS, or standalone WMQ JMS applications, I suggest taking a look.

The latest version (v3.0.2) of the IBM Support Assistant (ISA) has been released. If you’ve not tried ISA before, this is a good opportunity to give it a try.

IBM Support Assistant (ISA) is a free local software serviceability workbench that helps you resolve questions and problems with IBM software products. It provides quick access to support-related information along with serviceability tools for problem determination.

A nice thing about this approach is that it provides a single consistent approach to Support across a large number of IBM software products. (See the ISA site for a current list of ISA plugins.)

IBM Support Assistant screenshot The search facility it provides is particularly nice – you can search across product manuals, forums, newsgroups, Technotes, articles, white papers, and more. The screenshot shows an example of searching for SSL information, filtering for just TechNotes and manual pages. It produces a simple-to-navigate page, with the first 32 results (this can be changed in Preferences) downloaded to the ISA, making clicking on links to change pages nearly instantaneous.

If the ISA doesn’t help you find the information you need to solve a problem yourself, it can also be used to collect diagnostic information that can be useful to IBM Service in diagnosing the problem further.

If you have a number of IBM products installed, the ability to do all of this from one interface – consistent across the different IBM products – can be very useful.

For those who haven’t seen it highlighted somewhere else already, I thought it was worth pointing out that is now available for distributed platforms.

Typically, Fix Packs are scheduled regression-tested cumulative packages of fixes. (A more detailed overview of what Fix Packs and Refresh Packs can be found in the WMQ Maintenance Strategy).

A full list of the fixes included in this Fix Pack can be found in the Fix List.

Unusually, some new function has also been included in this update. Details are contained in the README, but to summarise:

  • Support for J2EE Connector Architecture (JCA)
    A JCA resource adapter for WebSphere MQ, allowing JMS applications and message driven beans running in an application server, to access the
    resources of a WebSphere MQ queue manager.
  • Windows 64-bit support
    Support for Windows XP Professional x64 Edition, Windows Server 2003 Standard x64 Edition and Windows Server 2003 Enterprise x64 Edition. Note that from this point on, WebSphere MQ installs will include a bin64 directory on all Windows operating systems.
  • .NET applications on 64-bit Windows
    32-bit versions of the .NET framework versions 1.1 and 2.0 are both supported for use with Windows 64-bit operating systems.
  • DES SSL Cipherspec Suppression in SSLFIPS mode
    An updated version of GSKit which rejects DES-based SSL Cipherspecs when the queue manager or client is in SSLFIPS mode.

It’s worth noting that this is currently the last version 6 maintenance pack announced for this year to include new function. For the most up-to-date copy of the maintenance pack schedule, see the WebSphere MQ Planned Maintenance Release Dates page.

Update: I should be clear that I am talking about maintenance for distributed platforms in this post. For full details, please click through to the links included above.