Creating transactional Web pages

Creating transactional Web pages
Scot Hillier

In this tip, Scot Hillier discusses the use of transactional Web pages, script based solutions that have the same advantages as component-based. Read more of Scot's thoughts at InformIT.

Requires Free Membership to View

One of ASP's most interesting new features is full support for transactional Web pages. Transactional Web pages enable developers to create complete COM+ applications for the Web without the use of components. Transactional Web pages began under IIS 4 but finally reach their true potential under IIS 5. It's now possible to create solutions that have many of the same advantages of component-based solutions but that are written completely in script.

Understanding Transactional Attributes

The key to creating transactional Web pages lies in a special COM+ application named IIS Utilities. This application contains the four ASP ObjectContext components. Each component corresponds to a different transactional attribute.

The secret to starting a transaction in an ASP page is to use the @TRANSACTION directive. This directive is analogous to the transaction properties that you set for a COM+ component in an application. The @TRANSACTION directive is always placed as the first line in any ASP page; otherwise, an error is generated. When you use the directive, the operations performed in any page are treated as a unit and function in much the same way as work performed by a conventional COM+ component. The @TRANSACTION directive has the following values:

  • @TRANSACTION=REQUIRES_NEW-The ASP page will always initiate a new transaction. This new transaction can enlist other ASP pages if those pages also support transactions.
  • @TRANSCTION=REQUIRED-The ASP page will initiate a new transaction if one doesn't already exist. However, it might participate in transactions started by other pages.
  • @TRANSACTION=NOT_SUPPORTED-The ASP page never initiates a transaction. This is the default for all ASP pages that don't specify an @TRANSACTION directive.
  • @TRANSACTION=SUPPORTED-The ASP page can participate in transactions started by other pages. However, if no transaction exists, a new one won't be started.
When the ASP page is set to start a transaction, all work done by script code in the page is part of the transaction. All work performed by the page will succeed or fail as a batch. Commits and rollbacks of the work are automatic. Similar to a conventional COM+ component, script pages aren't required to specifically call a SetComplete or SetAbort method to commit or roll back transactions. Instead, ASP provides two transaction events that notify the page of success or failure: OnTransactionCommit and OnTransactionAbort. A transactional Web page can code both OnTransactionCommit and OnTransactionAbort event handlers that are automatically executed when the transaction succeeds or fails. This means that you can format response pages to users that indicate success or failure. The code in Listing 1 shows a template that you can use for initiating a single-page transaction.

A Simple Transaction Template

<%@Transaction="REQUIRES_NEW"  Language="VBSCRIPT" %>
<%Option Explicit%>

    'Perform Work
    'Database Operation #1
    'Database Operation #2

    Sub OnTransactionCommit
        Response.Write "<H1>Success!</H1></BODY></HTML>"
    End Sub

    Sub OnTransactionAbort
        Response.Write "<H1>Failure!</H1></BODY></HTML>"
    End Sub

To learn more about Transactional Web pages visit InformIT. Registration is required, but it is free.

This was first published in February 2001

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.