44 lines
2.4 KiB
Plaintext
44 lines
2.4 KiB
Plaintext
MQTrigger Sample
|
||
|
||
The Platform software development kit (SDK) provides documentation on how to use notification events to provide
|
||
asynchronous handling of messages, which is one kind of trigger functionality. However, you can also use
|
||
Performance Monitor counters to monitor for triggering conditions. This article points you to a sample application
|
||
that shows you how to write a trigger using a Performance Monitor counter.
|
||
|
||
The sample, "MQTrigger," is written in Visual Basic and C++. It uses a timer event to periodically poll a Performance
|
||
Monitor counter for a message count. The sample application displays a dialog box when the message count in a
|
||
queue reaches the threshold.
|
||
|
||
What "Trigger" means:
|
||
A trigger is a mechanism that provides a notification when some condition on a queue is met. MQTrigger
|
||
demonstrates a way to simulate a "trigger", similar to the functionality provided by the new MSMQ Trigger service.
|
||
However, this sample demonstrates triggering solely based on the number of messages in a local queue, a feature
|
||
not yet available by MSMQ Trigger service.
|
||
|
||
Installation:
|
||
1) MSMQ2.0 or later must be installed on the MQTrigger host machine.
|
||
2) Create PerMain.dll:
|
||
a. Use Visual C++ 5.0 or later to open PerMain.dsp (a VB WIN32 DLL Project).
|
||
b. Compile the DLL.
|
||
c. Copy PerMain.dll to %windir%\system32.
|
||
3) Note: MQTrigger will not run on Windows 95. It relies on NT PerfMon counters.
|
||
|
||
Usage:
|
||
1) Launch MqTrigger.exe.
|
||
2) Specify the local queue pathname (E.g. <machine name>\<queue name>) to monitor.
|
||
a. Note: If a local queue does not exist, use another sample app to create one first.
|
||
2) Specify the message count threshold above which you wish to receive notifications.
|
||
3) Specify the polling frequency in units of seconds.
|
||
4) Click the "Begin Monitor" button to begin monitoring the queue.
|
||
5) Use another application to place messages in the queue.
|
||
6) MQTrigger will notify you with a message box when the threshold has been exceeded.
|
||
|
||
Implementation:
|
||
MQTrigger is written in Visual Basic. A timer event calls the GetPerfMonInfo function exported by Permain.dll.
|
||
GetPerfMonInfo obtains the number of messages in the specified queue from a Performance Monitor counter
|
||
and returns this number to MQTrigger.
|
||
|
||
Notes:
|
||
This sample implements a trigger based on information that can be obtained through PerfMon counters on a local
|
||
queue.Since these counters aren<65>t available remotely, MQTrigger can only monitor local queues.
|