Using MSMQ in Dot Net Using VB.Net Sending and Receiving Messages Using MSMQ in Dot Net: author: Sreedhar Koganti
This example will help you to know how to send and receive messages using MSMQ.
In Dot net, MSMQ provides a powerful set of services. These you can get from
System.Messaging name space. In order to use MSMQ explorer our
Dot Net IDE can also be used to add and remove messages form MSMQ.
How you can use MSMQ:
In order to use MSMQ first you have to install MSMQ in your machine.
Since we are looking at MSMQ in Dot Net,
you need to have Windows 2000 + Service Pack1, MSMQ, .NET Framework Beta1 and
Visual Studio.NET .
How to Use MSMQ:
MSMQ Enterprise can be managed through the MSMQ Explorer.
The MSMQ Explorer provides an interface for managing all machines in a
MSMQ environment from a single point of control. This MSMQ Explorer
you can get from Computer Management/Services and Applications/MessageQueing.
Here I am trying to show a simple Example in VS.Net(VB).
In this example I am using a Windows Application in the C# Environment.
This example will help you to know how to send and receive messages using MSMQ.
In this example I am basically using System.Messaging name space to manage the
messages using msmq.
To do that created a Windows application in VB using VS.net.
In that i take a form module and I kept two buttons one for sending
data and one for receiving data. And I also used a text box.While sending
message i am taking message form the textbox.Button one is used to send message.
Other button will be used to receive the data.
To use the MSMQ name space System.Messaging, you have to go to Tools and
Component Tab, then Drag and Drop the MessageQueue to the Form (Design View).
Once you add it, as shown below, code will be added to your application
Private WithEvents MessageQueue1 As System.Messaging.MessageQueue
The above code will be added in public class Form1 : System.WinForms.Form
and one more important line
Me.MessageQueue1 = New System.Messaging.MessageQueue()
will be added in Private Sub InitializeComponent()
While your application initializes it will create the messageQueue1 .
Once your object has been Created or Instantiated you can use it's methods and
Properties.
In our example we are trying to Send a message to "Smile" Pirvate Queue.
"Smile"is a Queue name which we are using in the example. It's not a system Queue.
The code below is used for sending the message to a queue when you click Button1
button.
****************************
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim q As MessageQueue
If MessageQueue.Exists(".Private$Smile") Then
q = New MessageQueue(".Private$Smile")
Else
q = MessageQueue.Create(".Private$Smile")
End If
Dim BW As New BinaryWriter(New MemoryStream())
bw.Write(textbox1.Text)
Dim m As New Messaging.Message()
m.BodyStream = BW.BaseStream
m.Label = "Sri Test Message"
q.Send(m)
msgbox("Message sent successfully", Microsoft.VisualBasic.MsgBoxStyle.Information,
"MSMQ Message")
End Sub
******************************
When you click the command one first i am checking for Queue if queue is not
there
then i am creating the Queue , if queue is the i am sending the message to the
queue
usingn Send method.
Send Can basically will have two arguments a) Message b) Label for that message.
Button Two will help you to receive the messages:
******************************
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim q As MessageQueue
Dim m As Messaging.Message
Dim Br As BinaryReader
Dim x As String
If MessageQueue.Exists(".Private$Smile") Then
q = New MessageQueue(".Private$Smile")
Else
q = MessageQueue.Create(".Private$Smile")
End If
Try
m = q.Receive(New TimeSpan(0, 0, 3))
Br = New BinaryReader(m.BodyStream)
x = New String(Br.ReadChars(CInt(m.BodyStream.Length)))
Catch
x = "(no message)"
End Try
msgbox(x, Microsoft.VisualBasic.MsgBoxStyle.Information, "MSMQ Message")
End Sub
********************************
If you look into the code, basically I am testing for the existence of the Smile
Private Queue.
If it is not there, I am popping up a message box. If it is there, then I am
instantiating
a PostMessage as a Message Queue.
Here I have to explain one thing. The message object holds the result of the
received message.
So here I am using m as the message object, and we also created a TimeSpan object
from the
System name space. The TimeSpan object will tell how long to wait for the Receive
method before timing out (hours, minutes, seconds).
Before .Net, we could simply set a message object Body property to a string value.
But in Dot Net the data will be automatically wrapped in XML using SOAP encoding.
It makes consistent with other languages with in Dot Net.
Note:
Take care with the following Steps:
1. Must install MSMQ on your machine.
2. Drag and Drop the Message Queue into your Design Form.
3. You must be using System.Messaging;
4. Must declare a message for receiving messages. Here we declared as m.
5. Build the code before running.
Author:
Sreedhar Koganti
Working in Unisys as a Technical Team Lead
Expertixe in ASP,COM+,XML,SOAP,NTService,VB, Drop of .Net
Article Writer in asptoday.com,Aspalliance.com,aspfree.com
***********************************************************
|
DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |
More ASP.NET Articles More By aspfree developerWorks - FREE Tools! | Learn the basics of the IBM Customer Information Control System (CICS). With a hands-on exercise, learn how to get your first CICS application up and running on your desktop using TXSeries V6.1 for Windows. The tutorial shows you how to download and install a free trial version of TXSeries V6.1. FREE! Go There Now!
| | | | As organizations have grown increasingly dependent on online software, the risk of malicious attacks has also become far more serious. Fortunately, well-governed organizations can protect their Web applications by injecting vulnerability assessments and ethical hacks into their software development and delivery processes. This paper describes 12 of the most common hacker attacks and provides basic rules that you can follow to help create more hack-resistant Web applications. FREE! Go There Now!
| | | | In this webcast, you'll get an introduction to the eXtreme Transaction Processing (XTP) features of WebSphere Extended Deployment and the common architectural traits required by XTP applications. See how WebSphere Extended Deployment's ObjectGrid feature provides a state-of-the-art infrastructure for hosting XTP applications. FREE! Go There Now!
| | | | Build secure Web services with transport-level security using IBM Rational Application Developer V7 and IBM WebSphere Application Server V6.1. Follow this three-part series for step-by-step instructions about how to develop Web services and clients, configure HTTP basic authentication, and configure HTTP over SSL (HTTPS). This first part of the series walks you through building a Web service for a simple calculator application. You generate and test two different types of Web services clients: a Java Platform, Enterprise Edition (Java EE) client and a stand-alone Java client. You also handle user-defined exceptions in Web services. FREE! Go There Now!
| | | | As organizations integrate software into every aspect of business, they are constantly pressured to deliver faster, better, and cheaper results. Unfortunately, a “dis-integrated” software delivery approach reduces returns while increasing costs. This IBM Rational White Paper shows how Integrated Requirements Management aligns organizations around maximizing value and keeping pace with change. FREE! Go There Now!
| | | | The unprecedented scope of a service-oriented architecture (SOA) initiative brings to the forefront a number of management and governance issues that were sidestepped in the past. The key to a successful SOA implementation is managing and governing activities throughout the entire SOA delivery lifecycle by ensuring that services conform to the needs of all of the business’s stakeholders. Learn how service lifecycle management allows the business to ensure that the process by which services are defined, created, tested, deployed, optimized and retired is manageable, repeatable and auditable. FREE! Go There Now!
| | | | This whitepaper presents the benefits of successfully introducing static analysis into your organization using IBM Rational Software Analyzer. Additionally, it identifies some common pitfalls that can hinder the effective use of static analysis tooling as well as presents 10 simple strategies designed to help you quickly realize the value of static analysis using Rational Software Analyzer. FREE! Go There Now!
| | | | Attend this launch webcast with Scott Hebner, Vice President of IBM Rational Marketing and Strategy, for an overview of Rational’s new software offerings and resources to help modernize and accelerate software innovation on i on Power Systems – while ensuring past application investments are protected and continue to grow. Learn how these solutions are helping customers extend their core i5/OS solutions toward modern architectures such as SOA and web technologies to deliver business improvements that stand the test of time. FREE! Go There Now!
| | | | This paper is about the critical role that a discipline called integrated requirements management can play in helping to ensure that your business goals and IT investments are continuously aligned—whether you are sourcing, integrating, building or maintaining software. It also looks at ways that automated IBM Rational® products can work together to help you use requirements in the very best way. FREE! Go There Now!
| | | | Join this Rational Talks to You teleconference on December 11 at 1:00 pm ET to get tips on building your own plugins with Rational Method Composer. Get your questions answered! FREE! Go There Now!
| | | | All FREE IBM® developerWorks Tools! | |