<%@ TRANSACTION=REQUIRED LANGUAGE=JScript %>
<HTML>
<HEAD>
<TITLE>Transacted MSMQ Transmission</TITLE>
</HEAD>
<BODY bgcolor="white" topmargin="10" leftmargin="10">
<!-- Display Header -->
<font size="4" face="Arial, Helvetica">
<b>Transacted MSMQ Transmission</b></font><br>
<hr size="1" color="#000000">
This sample demonstrates how to send a transacted asynchronous message using
the Microsoft Message Queueing Server (MSMQ). MSMQ is one of the components
that comes with the Windows NT 4.0 Option Pack.
<p> For this example to work, MSMQ must be first be installed on the host machine.
Using the MSMQ Explorer, a queue named "IIS_SDK_TRANSACTED" should then be created.
Please click the "transacted" option when creating the queue.
<p>After the example is run, return to the MSMQ Explorer and select "Refresh" from
the "View" menu. The recently sent message will then appear within the "IIS_SDK_TRANSACTED"
queue.
<%
// Create MSMQQueueInfo Component to
// Open MessageQueue
QueueInfo = Server.CreateObject("MSMQ.MSMQQueueInfo")
// Open Queue. The queue could be physically located
// on any machine. The period in the line below indicates
// that the queue is located on the local machine. Note
// that because JScript is being used as the scripting
// language, and extra backslash must be inserted
// as an escape character.
QueueInfo.pathname = ".\\IIS_SDK_TRANSACTED";
Queue = QueueInfo.Open(2, 0);
// Create Message Component for Queue
Msg = Server.CreateObject("MSMQ.MSMQMessage");
// Construct Message. Anything can be passed into
// both the body and label. The developer is responsible
// for marshalling all arguments. Note that the delivery
// property has been sent to "Recoverable". This will
// guarentee that the message will survive a crash or
// shutdown on the queue machine.
Msg.body = "This is the message body";
Msg.Label = "This is the message label";
Msg.Delivery = 1;
// Send Message
Msg.Send(Queue);
// Close Queue
Queue.Close();
%>
</BODY>
</HTML>
<%
// The Transacted Script Commit Handler. This function
// will be called if the transacted script commits.
function OnTransactionCommit()
{
Response.Write ("<p><b>The Transaction just comitted</b>.");
Response.Write ("The MSMQ message was <b>successfully</b> sent");
}
// The Transacted Script Abort Handler. This function
// will be called if the script transacted aborts
function OnTransactionAbort()
{
Response.Write ("<p><b>The Transaction just aborted</b>.");
Response.Write ("The MSMQ message was <b>not</b> sent");
}
%>