TRANSACTEDDELIVERY_JSCRIPT.ASP

<%@ 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");
}
%>