David Hallberg

Remedies for RHOs—Part 2: MQ’s Path for Rapid Transactions

Last week we began a series of topics for RHOs (remote-hosted organizations) that addresses the basic question, What do I do to determine if there is a performance issue with my Millennium® system? We walked you through the first step: making sure you still can actually reach the Millennium Application nodes from your network. This week we will cover how to tell if IBM’s WebsphereMQ, sometimes called MQ Series or simply MQ, is providing the throughput of transactions your clinicians and office staff need to provide quality patient care.

The first question in your mind is probably, What is MQ? The second is probably, Why do I care?

Let me tackle these in order. First, MQ is a place for transactions to be held for processing by other processes. It’s like the checkout in a grocery store. The first person into a line is the first person out of the line. This is called a First In, First Out queue or FIFO queue. MQ handles clinical and business office information this same way: The first information into a queue is the first processed and sent out. And, like at the grocery store, some lines move very slowly.

MQ is important to Millennium for two reasons. First, it is the way Millennium handles data that has to be processed by more than one executable/process/image on the Application nodes. Second, with Millennium 2007.x and beyond, you can use MQ for some of the work performed by the proprietary Millennium middleware called Shared Service Proxies (SSPs). MQ has a much higher throughput than SSPs, so in general, switching to MQ Shared Services (MQSS) is good for overall throughput.

It’s important to know if you are queuing—or backing up—somewhere in MQ because queuing means that a clinician or someone using Millennium is being forced to wait. And a wait can translate into a delay in care delivery or business transactions. MQ is also used to process transactions, such as batch processes. It is important to know if these queues are backing up because it may mean that a batch of transactions (such as billing) is not getting processed.

So how do I find out if I’m having a queuing issue?

If you have Softek Panther, you can use the Queues control; if not, there are a couple of Millennium utilities that should be available on any Citrix or fat client that will tell you if you are queuing. They are called qcpview.exe and quemon.exe. For an explanation of how to use these three utilities, click here.

What do I do if I’m having queuing issues?

Typically, the answer is to add another instance of the server that is processing the messages from the queue, but there is a caveat. Every server instance requires resources (memory, CPU) from the Application node, so if you are running low on these resources, adding another instance of a server may actually cause performance problems rather than alleviate them.

Prognosis: If you discover MQ backlog issues, you typically can improve transaction throughput—and speed up Millennium’s performance—by adding more server instances to your Application nodes.

Next week: Messaging throughput analysis for Millennium’s proprietary middleware.