use
MSMQ
(
Microsoft Message Queue
Application developers can easily communicate quickly and reliable communications with the application by sending and receiving messages. Message Processing provides you with secure messaging and a reliable security method for performing many business processes.
MSMQ
versus
XML Web SERVICES
with
.NET Remoting
Like, it is a distributed development technology. But use
XML Web SERVICES
or
.NET Remoting
When assemblies,
Client
Did need and
Server
Didually exchange information in real time,
Server
Need to keep online.
MSMQ
Can
Server
Work offline, will
Message
Temporary preservation
Client
In the end of the message queue, send it to the next time.
Server
End processing.
Obviously,
MSMQ
Not suitable for
Client
need
Server
This situation in time in time,
MSMQ
Asynchronously and
Server
End interactions, don't worry
Server
The long-term process of end.
although
XML Web SERVICES
with
.NET Remoting
All offer
[Oneway]
Attributes to process asynchronous calls to solve
Server
Termatic method call for a long time
Client
end. But can't solve a lot
Client
Load problem, at this time
Server
Accepted requests are faster than the request.
Under normal circumstances,
[Oneway]
Attributes are not used in specialized messaging services.
1.
Basic terminology and concept (
Basic Terms and Concepts
)
"Message" is a data unit transmitted between two computers. The message can be very simple, such as only a text string; it is more complicated, which may contain embedded objects.
The message is sent to the queue. "Message Queue" is a container that saves a message during the transmission of the message. Message Queue Manager acts as an intermediary when returning messages from its source. The main purpose of the queue is to provide routing and guarantee the delivery of messages; if the recipient is not available when sending a message, the message queue retains the message until it can be successfully delivered.
"Message Queue" is
Microsoft
Message processing technology, it is installed any
Microsoft Windows
In a computer combination, the message processing and message queue function is provided for any application, regardless of whether the computers are on the same network or whether it online.
The Message Queue Network is any set of computers that can send messages to each other. Different computers in the network play different roles in the process of ensuring the smooth processing of messages. They provide routing information to determine how to send messages, some of which are important information for the entire network, and some only send and receive messages.
During the "Message Queue" installation, the administrator determines which servers can communicate with each other and set special roles of a particular server. Computers constituting this "Message Queue" network are called "sites", they are connected to each other by "Site Link". Each site link has an associated "overhead", which is determined by the administrator, indicating the frequency of the message passing through this site.
The Message Queue administrator also sets one or more computers that are "routing servers" in the network. The routing server views the overhead of each site link to determine the fastest and most effective way to pass the messages through multiple sites to determine how to deliver messages.
2.
Queue type (
Queue Type
)
There are two main queue types: queues and system queues created by other users in you or network.
The queue created by the user may be any of the following queues:
"Public Square" is copied throughout the "Message Queue" network and is possible to access all sites connected by the network.
"Special queue" is not released throughout the network. Instead, they are only available on the resident local computer. A dedicated queue can only be accessed by an application that knows the full path name or tag of the queue. The Manage Query contains messages that confirm the message receipt of the message sent in a given "Message Queue" network. Specify hope
MessageQueue
The management queue used by the component (if any).
The Response Queue contains a response message to send an application when the target application receives a message. Specify hope
MessageQueue
The response queue used by the component (if any).
The queue generated by the system is generally divided into the following categories:
"Diary Queue" optionally stores a copy of the send message and a copy of the message removed from the queue. A single diary queue on each "Message Queue" client stores the message replica sent from the computer. A separate diary queue is created for each queue on the server. This diary tracks the message removed from the queue.
"Dead Letter Queue" stores a copy of the message that cannot be passed or expired. If the message expired or unable to pass is a transactional message, it is stored in a special dead letter queue, called "transactional dead letter queue". Dead letter is stored on a computer where expired message is located. For more information on timeout periods and expiration messages, see the default message properties.
The Report Queue contains messages that indicate the route passage through the message to the target, and can also contain test messages. There can only be a report queue on each computer.
"Special System Query" is a special queue for the management and notification messages required by a series of storage systems to perform message processing operations.
Most of the work conducted in the application involves accessing public queues and their messages. However, depending on the application's diary record, confirmation, and other special processing needs, several different system queues are likely to use in daily operations.
3.
Synchronous and asynchronous communication (
Synchronous vs. Asynchronous Communication
)
Queue communication is born asynchronous because sending messages to queue and receive messages from the queue are done in different processes. In addition, the reception operation can be performed asynchronously because people to receive the message can call any given queue
BeginReceive
Method, then continue other tasks immediately without waiting for a reply. This is very different from "synchronous communication" understanding.
In synchronous communication, the requested sender must wait for a response from a predetermined receiver before performing other tasks. The time of the sender waits for time depends entirely on the time used by the recipient processing request and the transmit response.
4.
Interact with message queue (
Interacting with message queues
)
Message handling and messages provide a powerful and flexible mechanism for process communication between server-based application components. Direct calls between the same assembly have several advantages, including:
Stability - Component failure to messages is far less than the direct call between components, because the message is stored in the queue and stay there, until it handles. Message processing is similar to transaction processing, because message processing is guaranteed. Message priority - more emergency or more important messages can be received before relatively unimportant messages, so you can guarantee sufficient response time for critical applications. Offline Ability - When you send a message, they can be sent to the temporary queue and stay there until successfully passed. When any reason is not available to the required queue, the user can continue to perform the operation. At the same time, other operations can continue, as the message has been processed, because the message delivery is guaranteed when the network connection is recovered. Transactional Message Processing - couples multiple associated messages as a single transaction, ensuring that the message is passed sequentially, only once and can be successfully retrieved from their target queues. If you have any errors, you will cancel the entire transaction. Safety - MessageQueue component based message queue technology uses Windows security to protect access control, provide an audit, and encrypt and verify messages sent and received.
5.
in
.NET
Simple in the environment
Message Queue
program
(
1
)
Message Queuing Services
by
Control Panel
,
"Add / Remove Programs" - "Add / Remove Windows Components"
Step installation
MSMQ
.
MSMQ
It can be installed as a workgroup mode or domain mode. If the installer does not find a server running a message queue that runs a directory service, you can only be installed as a workgroup mode. The "Message Queue" on this computer only supports the creation of a private queue and creates a computer that runs "Message Queue" with other running "Message Queues". Direct connection.
(
2
) Configuration
MSMQ
turn on
Computer Management - Message Queuing
,in
Private queues
Create
MSMQDemo
queue
(
3
Writing code - Simple Demo
MSMQ
Object
MessageQueue
Class is the packaging around the "Message Queue".
MessageQueue
Category provides references to the "Message Queue" queue. allowable
MessageQueue
The constructor specifies a path to an existing resource or creating a new queue on the server. In call
Send
,
PEEK
or
Receive
Before, you must
MessageQueue
A new instance of a class is associated with an existing queue.
MessageQueue
Support two types of message retrieval: synchronous and asynchronous. Synchronous
PEEK
with
Receive
The method allows the process thread to wait for a new message to reach the queue with the specified interval. Asynchronous
Beginpeek
with
BeginReceive
The method allows the primary application task to continue executing in a separate thread before the message arrives at the queue. These methods operate by using the callback object and the status object to communicate between the thread.
// send Message
Private
Void BtnsendMessage_Click (Object Sender, System.EventArgs E)
{
// Open Queue
System.Messaging.MessageQueue Queue = New System.Messaging.MessageQueue (".// Private $ // msmqdemo");
// Create Message
System.Messaging.Message Message = new system.Messaging.Message ();
Message.body = txtMessage.Text.trim ();
Message.formatter = new system.Messaging.xmlMLMESSAGEFORMATTER (New Type [] {typeof (string);
// Put Message Into Queue
Queue.send (Message);
}
// Receive Message
Private
Void btnreceiveMessage_Click (Object Sender, System.EventArgs E)
{
// Open Queue
System.Messaging.MessageQueue Queue = New System.Messaging.MessageQueue (".// Private $ // msmqdemo");
// Receive Message,
Synchronous
Receive
Method blocks the current execution thread until one
Message
Can get
System.Messaging.Message Message = queue.Receive ();
Message.formatter = new system.Messaging.xmlMLMESSAGEFORMATTER (new type [] {typeof (string)}); txtReceiveMessage.Text = message.body.toString ();
}
Demo
interface:
******
on
MSMQ
Message queue introduction text comes from
MSDN.
References:
1, MSDN,
message queue(
Message Queue