Profiling System Run-Time Considerations

This section describes the following Profiling System run-time considerations:

  • CSOLEDB handles
  • Accessing properties
  • Transaction support
  • Data size validation

CSOLEDB Handles

You must always store handles to the Profiling System and OLE DB Provider for Commerce Server at application scope. You should do this because the CSOLEDB handles were designed so that they create an object once in the Global.asa file, store the object at application scope, and then use the object on every ASP page. The CSOLEDB handles coordinate the concurrency issues that arise from processing multiple queries simultaneously. They also manage the fault-tolerance of connections to underlying stores for reliable query processing.

Accessing Properties

The Profiling System provides a number of mechanisms to access profile object properties. For example, the following are different ways of accessing the GeneralInfo.user_id property of a ProfileObject object named oUser:

  • Access by using standard Microsoft ActiveX Data Objects (ADO) notation:

    oUser.Fields.Item("GeneralInfo").Value.Item("user_id").Value
    oUser.Fields("GeneralInfo").Value("user_id").Value
    
  • Access by using extended dot notation:

    oUser.Fields("GeneralInfo.user_id"
    
  • Access by using smart dispatch notation:

    oUser.GeneralInfo.user_id
    

The performance difference between these options is insignificant.

Transaction Support

The Profiling System, by default, does not transact write operations across multiple data stores. More specifically, it does not support executing a two-phase commit protocol across transactional data stores.

The Profiling System provides loose support for transactions. The data aggregation layer brackets INSERT, UPDATE, and DELETE data store operations that aggregate across multiple stores in a transaction, and commits them only after all data store operations have succeeded against non-transactional data stores (such as directory stores).

You can enable loose support by creating a custom attribute named IsTransactioned in the profile definition and setting it to True. If this attribute is absent or if you set it to False, this feature is disabled.

Data Size Validation

The Profiling System does not perform any data size validation, and depends on the underlying data stores to perform the validation.

Copyright © 2005 Microsoft Corporation.
All rights reserved.