Increase the reliability of distributed applications
Imagine you are a Windows NT systems administrator who is responsible for ensuring the continued functionality of a Web application running on a Web server. Suppose the application lets customers browse and purchase products. The application must gather product information from a products database and save customer orders in an orders database on a separate database server. As customers select products, the application writes orders to a back-end database so the order-fulfillment department can process the orders.
Consider what would happen if the disk array on the orders database server malfunctioned, as Figure 1, page 140, shows. You would have to take the orders database server offline to replace the disk array. Thus, the application would be temporarily unusable. Disabling an application even temporarily is costly. You might lose dozens of orders and jeopardize your position in the company.
Microsoft Message Queue Server (MSMQ) and IBM's MQSeries for Windows NT provide a solution and let you keep applications online while you perform system maintenance. These technologies use Message-Oriented Middleware (MOM) to help distributed application components work together. MOM is a class of application that provides custom applications with a set of APIs. These APIs hide the underlying complexities involved in making asynchronous connections in interprocess communications between systems over multiple protocols. A benefit of MOM-type applications is guaranteed message delivery.
MSMQ competes against MQSeries in the MOM class of applications. Both products provide reliable message-queuing functionality. Differences exist in price, proprietary system commands, interface, and supported platforms. MSMQ runs only on NT, Windows 98, and Win95. MQSeries runs on platforms other than Windows, including MVS, OS/2, DOS, and several versions of UNIX. (For a complete list of supported platforms, go to http://www.software.ibm.com/ts/mqseries/platforms.) MSMQ strengthens NT's position as an enterprise OS and helps it effectively challenge UNIX (which has had MOM functionality for several years in supporting mission-critical applications). In this article, I discuss MSMQ's advantages. (For more information about MSMQ, see Tao Zhou, "Queuing Data with Microsoft Message Queue Server," October 1998.)
How MSMQ Works
When processing occurs on a typical network, the network and the applications involved in the processing must be online and functioning properly. If the application sending data or receiving data is offline, processing might stop. MSMQ is a fast store-and-forward service that lets applications running at different times communicate across heterogeneous networks and systems that might be temporarily offline. An application can use MSMQ's store-and-forward functionality to continue accepting orders even if the back-end database server goes down. Applications send messages to MSMQ, and MSMQ stores the messages in queues for later delivery. A message is a unit of data that one computer sends to another. Messages can be text or binary, and they have a maximum size of 4MB. When the order-storing portion of the system comes back online, MSMQ can forward messages from the message queues. Applications and application components communicate through message queues rather than directly.
MSMQ's functionality is helpful for users who connect to the network via laptops. Network connections are temporary, and you typically cannot use network applications unless you are connected. MSMQ lets you use network applications even when you are not connected to the network. MSMQ stores information in local queues until you return to the office. Then, MSMQ forwards the data to applications as necessary. With MSMQ, processing is time-independent. You do not have to be connected to the network to use a network application.
I am adding some message into MSMQ Private queue after setting the queue size(say 4 kb). Messages are missing in QUEUE while adding the message(exceeds it size), even though MSMQ accepts to add the message, where it stores the accepted messages after the size exceeds?
Gopinath s June 28, 2002