SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software.

Slides:



Advertisements
Similar presentations
Advanced Performance Techniques in ASP.NET 2.0 William Zhang, Ph.D. Senior Consultant Microsoft Consulting Services.
Advertisements

Microsoft Dynamics AX 2009 Integration and Development with.NET Framework Enterprise Portal.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
1 Federating Identity and Authorization Across Organizations and Platforms Matthew Hur Lead Program Manager Microsoft Corporation
Module 1: Overview of the Microsoft.NET Framework.
SQL Server 2005 CLR Integration ADO.NET 2.0 Mike Taulty
1 Introducing ClickOnce: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool Program Manager Microsoft.
1 Building Distributed Asynchronous Applications With SQL Service Broker Gerald Hinson, Roger Wolter DAT303 Dev Lead Microsoft Corporation.
Service Broker Lesson 11. Skills Matrix Service Broker Service Broker, provides a solution to common problems with message delivery and consistency that.
1 Building Management Applications with SQL Server “Yukon” SQL Management Objects (SMO): Overview Bruce Prang Development Manager Microsoft Corporation.
Connect with life Praveen Srvatsa Director | AsthraSoft Consulting Microsoft Regional Director, Bangalore Microsoft MVP, ASP.NET.
Building Rights Management Enabled Applications For Windows "Longhorn" Steve Bourne Chandramouli Venkatesh Microsoft Corporation Steve Bourne Chandramouli.
1 Programming Windows Help Shane McRoberts Group Program Manager Microsoft Corporation Shane McRoberts Group Program Manager Microsoft.
DAT304 Leveraging XML and HTTP with Sql Server Irwin Dolobowsky Program Manager Webdata Group.
Plataformas.NET para desenvolvimento de aplicações web José António Silva
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft.
1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.
1 Keyboard, Speech, and Pen Input in Your Controls Kevin Gjerstad Lead Program Manager Kevin Gjerstad Lead Program Manager
Assemblies & Namespaces1. 2 Assemblies (1).NET applications are represented by an assembly An assembly is a collection of all software of which the application.
Introducing Reporting Services for SQL Server 2005.
Developing Reporting Solutions with SQL Server
“Indigo”: Building Peer-To-Peer Applications Todd R. Manion Program Manager Microsoft Corporation Todd R. Manion Program Manager.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
1.NET Framework Overview: A Road Map Brad Abrams.NET Framework Team Microsoft Corporation Brad Abrams.NET Framework.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
1 Application Model Fundamentals Chris Anderson Software Architect Microsoft Corporation Chris Anderson Software Architect Microsoft.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
Microsoft.Net Sven Groot. Common Language Runtime Superset of ECMA Common Language Infrastructure Defines  Language-neutral platform  Intermediate Language.
Windows Role-Based Access Control Longhorn Update
ADO.NET 2.0: Advanced Data Access Patterns Pablo Castro DAT408 ADO.NET Technical Lead Microsoft Corporation.
EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices.
Web Services Error Handling and Debugging. Agenda Simple SOAP faults Advanced SOAP faults SOAP headers and faults Error handling From a Service Perspective.
“Avalon”: Using UI Automation to Improve Application Testability Robert Sinclair Group Manager Microsoft Corporation Robert Sinclair.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
DAT325 SQL Server 2005 (Codenamed “Yukon”): Using the Service Broker To Build Asynchronous, Queued Database Applications Roger Wolter Program Manager.
1 Integrating Real-time Collaboration into your Applications Stephanie Lindsey Program Manager Microsoft Corporation Stephanie.
DBA331 Managing a Microsoft SQL Server 2000 Reporting Services Implementation Brian Welcker Group Program Manager SQL Server Microsoft Corporation.
1 Interop Best Practices and Common Pitfalls (That We Learned the Hard Way) Please write your name on a card in the back and place it in the box… Please.
Integration Patterns in BizTalk Server 2004 Integration Patterns Explained What are integration patterns? What patterns does BizTalk Server 2004 provide.
DEV332 Programming for the Middle Tier in Visual Basic.NET Billy Hollis Author / Consultant.
DAT 405 Extreme SqlXml Irwin Dolobowsky Program Manager – SqlXml Microsoft Corporation.
Extending Workflow With Custom Activities Dennis Pilarinos COM328 Program Manager Microsoft Corporation.
1 Programming ADO.NET in Whidbey Pablo Castro/Brad Rhodes ADO.NET Team Microsoft Corporation Pablo Castro/Brad Rhodes.
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
Apache Solr Dima Ionut Daniel. Contents What is Apache Solr? Architecture Features Core Solr Concepts Configuration Conclusions Bibliography.
Contoso Online services Bing Amazon etc. Enterprise applications Interactive client apps Trading partners.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
Building Enterprise Applications Using Visual Studio®
Introducing the Microsoft® .NET Framework
Integrating Enterprise Applications Into SharePoint® Portal Server
Using Audio, Video, and Imaging in your Longhorn Applications
System.Search, aka “Find My Stuff”
6/16/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
.NET Performance Solutions
Transactional Programming In A Windows World
Michael Wallent General Manager Windows Client Platform
Amit R Bhatia / Puneeth Nayak
“Whidbey” CLR Internals
11/17/2018 9:30 PM Session Code: ARC 420
Building Rich, Interactive Controls for Windows “Longhorn”
New User Interface Possibilities in Longhorn
"Avalon": Building Applications With Controls And Dialogs
People And Groups Controls In Windows "Longhorn"
Session Code: CLI391 Windows Forms: Exploiting Windows “Longhorn” Features from Within Your Application Mark Boulter .NET Client Team Microsoft Corporation.
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft Corporation Session Code: Dat405

Agenda Building a Scalable Enterprise Whidbey SqlNotifications and Caching Implementing Summary Building a Scalable Enterprise Whidbey SqlNotifications and Caching Implementing Summary

Tools Client Application Model AvalonWindows Forms Web & Service Application Model ASP.NET / Indigo Win FS Compact Framework Yukon Mobile PC Optimized System.Help System.Drawing System.NaturalLanguageServices Data Systems Application Model Presentation Data Mobile PC & Devices Application Model Communication Command Line NT Service DataSet Mapping ObjectSpaces ObjectSpace Query Schema Item Relationship Media Audio Video Images System.Messaging System. Discovery System.DirectoryServices System.Remoting System.Runtime.Remoting Active Directory Uddi System.Web.Services Web.Service Description Discovery Protocols System.MessageBus Transport Port Channel Service Queue PubSub Router System.Timers System.Globalization System.Serialization System.Threading System.Text System.Design Base & Application Services Fundamentals System.ComponentModel System.CodeDom System.Reflection System.EnterpriseServices System.Transactions Security System.Windows. TrustManagement System.Web. Security System.Message Bus.Security Authorization AccessControl Credentials Cryptography System.Web.Configuration System.MessageBus.Configuration System.Configuration System.Resources System.Management System.Deployment System.Diagnostics ConfigurationDeployment/Management System.Windows System.Windows.Forms System.Console System.ServiceProcess System.Windows.Forms System.Web System.Storage System.Data.SqlServer Animation Controls Control Design Panel Controls Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media System.Windows.Forms Forms Control Print Dialog Design System.Web.UI Page Control HtmlControls MobileControls WebControls Adaptors Design Ports InteropServices System.Runtime System.IO System.Collections Generic System.Search Annotations Monitoring Logging Relevance System.Data SqlClient SqlTypes SqlXML OdbcClient OleDbClient OracleClient Core Contact Location Message Document Event System.Storage System.Web Personalization Caching SessionState System.Xml Schema Serialization Xpath Query Permissions Policy Principal Token System.Security System.Collaboration RealTimeEndpoint TransientDataSession SignalingSession Media Activities HttpWebRequest FtpWebListener SslClientStream WebClient System.Net NetworkInformation Sockets Cache System.Web Administration Management Navigation Peer Group Policy Serialization CompilerServices Recognition System.Speech Synthesis

Agenda Building a Scalable Enterprise Scalable Data-Driven Enterprise Applications Scaling Solutions Web Caching Benefits Caching in ASP.NET 1.x Caching Dynamic Content Whidbey SqlNotifications and Caching Implementing Summary Building a Scalable Enterprise Scalable Data-Driven Enterprise Applications Scaling Solutions Web Caching Benefits Caching in ASP.NET 1.x Caching Dynamic Content Whidbey SqlNotifications and Caching Implementing Summary

Scaleable Data-Driven Enterprise Applications Data-Driven Enterprise Applications WebServices Dynamic Web Applications Product-driven storefront Search sites Informational sites (weather, traffic, news, …) Portals Internal lookup tables (zip codes, tax tables,…) Etc… Increased Scalability==Reduced Contention for shared resources In Data-Driven applications, data becomes the shared state that limits scalability Data-Driven Enterprise Applications WebServices Dynamic Web Applications Product-driven storefront Search sites Informational sites (weather, traffic, news, …) Portals Internal lookup tables (zip codes, tax tables,…) Etc… Increased Scalability==Reduced Contention for shared resources In Data-Driven applications, data becomes the shared state that limits scalability

Scaling Solutions Partitioning Scale out by partitioning the data across multiple servers Route request to the appropriate server Appropriate when: Results can be served from a single partition Appropriate server can be easily identified Replication Caching Normalized view is most appropriate Few results are common, so base data is candidate Base data too costly to invalidate, and must be maintained Rich query support required Web Application Cache Transformations/processing between normalized data in Database and objects in cache Many results (or candidate results) are common Construction of results are not too costly to be invalidated Cached objects can be adequately queried with ADO.NET or application code These types of caching are highly Complementary Partitioning Scale out by partitioning the data across multiple servers Route request to the appropriate server Appropriate when: Results can be served from a single partition Appropriate server can be easily identified Replication Caching Normalized view is most appropriate Few results are common, so base data is candidate Base data too costly to invalidate, and must be maintained Rich query support required Web Application Cache Transformations/processing between normalized data in Database and objects in cache Many results (or candidate results) are common Construction of results are not too costly to be invalidated Cached objects can be adequately queried with ADO.NET or application code These types of caching are highly Complementary

Web Caching Benefits Improve Response Time Reduce Code Execution Reduce process hops Reduce managed/unmanaged transitions Reduce Kernel/User mode transitions Reduce database round-trips Eliminate server hops Improve Scalability Database is generally bottleneck Shared state Reduce number of requests to Database Improve Response Time Reduce Code Execution Reduce process hops Reduce managed/unmanaged transitions Reduce Kernel/User mode transitions Reduce database round-trips Eliminate server hops Improve Scalability Database is generally bottleneck Shared state Reduce number of requests to Database

Caching In ASP.NET 1.x Object Caching ASP.NET Applications can add/remove objects from cache through dictionary functions or Cache APIs DataSet ds = (DataSet)Cache[ProductID]; if (null == ds) { ds = new DataSet(); SqlDataAdapter adapt = GetDataAdapter(); adapt.Fill(ds); Cache.Insert(ProductID, ds); } Response Caching Page Directives can instruct ASP.NET to cache responses Fragment Caching Page Directives can instruct ASP.NET to cache values from individual controls Entries invalidated based on Time (TTL, absolute time, time unused), File-event, or removal of other entries Object Caching ASP.NET Applications can add/remove objects from cache through dictionary functions or Cache APIs DataSet ds = (DataSet)Cache[ProductID]; if (null == ds) { ds = new DataSet(); SqlDataAdapter adapt = GetDataAdapter(); adapt.Fill(ds); Cache.Insert(ProductID, ds); } Response Caching Page Directives can instruct ASP.NET to cache responses Fragment Caching Page Directives can instruct ASP.NET to cache values from individual controls Entries invalidated based on Time (TTL, absolute time, time unused), File-event, or removal of other entries

Caching Dynamic Content Delay in publishing new Content i.e., new Products, Categories Delay in returning new information i.e., from a WebService Inconsistent results across WebFarm Refreshed at different intervals No ability to invalidate i.e., when prices change/invalid information Users not seeing their changes i.e., configuration settings in a Portal Workarounds Coordinated absolute time expiration Data that can accept latency Explicit invalidations Where application controls changes to data Delay in publishing new Content i.e., new Products, Categories Delay in returning new information i.e., from a WebService Inconsistent results across WebFarm Refreshed at different intervals No ability to invalidate i.e., when prices change/invalid information Users not seeing their changes i.e., configuration settings in a Portal Workarounds Coordinated absolute time expiration Data that can accept latency Explicit invalidations Where application controls changes to data

Agenda Building a Scalable Enterprise Whidbey SqlNotifications and Caching SQL Server Query Processor Notifications Receiving Notifications Object Caching in ASP.NET Result Caching in ASP.NET Implementing Summary Building a Scalable Enterprise Whidbey SqlNotifications and Caching SQL Server Query Processor Notifications Receiving Notifications Object Caching in ASP.NET Result Caching in ASP.NET Implementing Summary

SQL Server QP Notifications User Requests Notifications on Query Sets as command properties Specifies SQL Service Broker queue Specifies message to post on change QP generates a “notification template” Supports common Selects, Stored procs, Batches containing notifiable queries Supports same queries as indexed views Must be deterministic Must not be overly complex Well suited for small number of queries with many parameter values NOT Designed for large number of ad-hoc queries Posts to SQL Service Broker when results change Durable; doesn't require continuous connection Provides activation model for processing message Supported in SQL Server “Yukon” User Requests Notifications on Query Sets as command properties Specifies SQL Service Broker queue Specifies message to post on change QP generates a “notification template” Supports common Selects, Stored procs, Batches containing notifiable queries Supports same queries as indexed views Must be deterministic Must not be overly complex Well suited for small number of queries with many parameter values NOT Designed for large number of ad-hoc queries Posts to SQL Service Broker when results change Durable; doesn't require continuous connection Provides activation model for processing message Supported in SQL Server “Yukon”

Using QP Query Notifications Create a Command Create a SqlNotificationRequest Specify message, message queue, timeout Associate the SqlNotificationRequest with one or more commands Execute the command(s) Execution registers for notifications Use ExecuteNonQuery to register without retrieving results Query SSB message queue for your message Poll or blocking “waitfor” query Synchronous or Asynchronous Create a Command Create a SqlNotificationRequest Specify message, message queue, timeout Associate the SqlNotificationRequest with one or more commands Execute the command(s) Execution registers for notifications Use ExecuteNonQuery to register without retrieving results Query SSB message queue for your message Poll or blocking “waitfor” query Synchronous or Asynchronous

Application Query Processor Notifications SSB Client Machine Database Server SqlNotificationRequest SqlCommand Template Execute() SqlCommand Execute() Products

SqlDependency SqlDependency uses QP Notifications to raise a client side event when results change Registers with a runtime listener upon creation Listens on HTTP or TCP port Can be associated with one or more commands Creates a SqlNotificationRequest under the covers Specifies routing message and default message queue Exposes an OnChanged Event Notification Dispatcher fires notification from database Activated upon delivery of message to queue Uses information in message to determine destination SqlDependency uses QP Notifications to raise a client side event when results change Registers with a runtime listener upon creation Listens on HTTP or TCP port Can be associated with one or more commands Creates a SqlNotificationRequest under the covers Specifies routing message and default message queue Exposes an OnChanged Event Notification Dispatcher fires notification from database Activated upon delivery of message to queue Uses information in message to determine destination

Using SqlDependency Create a SqlDependency Register for the OnChanged event Associate SqlDependency with one or more commands Execute the command(s) Event raised when results change Create a SqlDependency Register for the OnChanged event Associate SqlDependency with one or more commands Execute the command(s) Event raised when results change public DataSet getData() { SqlDependency depend = new SqlDependency(); SqlDependency depend = new SqlDependency(); depend.OnChanged += new EventHandler(ChangeEventHandler); depend.OnChanged += new EventHandler(ChangeEventHandler); ds = new DataSet(); ds = new DataSet(); SqlDataAdapter adapt = getDataAdapter(); SqlDataAdapter adapt = getDataAdapter(); depend.AddCommandDependency(adapt.SelectCommand); depend.AddCommandDependency(adapt.SelectCommand); adapt.Fill(ds); adapt.Fill(ds); return ds; return ds;} static void ChangeEventHandler(Object Sender, EventArgs e) { MessageBox.Show("Results Changed"); }

Query Processor Notifications Notification Delivery Service SSB Application DependencyListener Client Machine Database Server SqlCommand SqlDependency Template OnChange AddCommandDependency() Execute() Invalidate(ID) SqlNotificationRequest Products

SqlDependency

Object Caching With Data Invalidations Objects placed in ASP.NET Object Cache can be dependent on database results Use new SqlCacheDependency Supports QP Notifications Pass command into constructor Creates a SqlDependency under the covers Also supports polling for pre-Yukon databases Specify database and tablename in constructor Database and tables must be configured to support listener tables, triggers and stored procedures Caching information added to web server configuration file Object invalidated when any change is made to the dependent table See WS330 for more information Objects placed in ASP.NET Object Cache can be dependent on database results Use new SqlCacheDependency Supports QP Notifications Pass command into constructor Creates a SqlDependency under the covers Also supports polling for pre-Yukon databases Specify database and tablename in constructor Database and tables must be configured to support listener tables, triggers and stored procedures Caching information added to web server configuration file Object invalidated when any change is made to the dependent table See WS330 for more information

Using Object Caching With Data Invalidations Generate the object to be cached Associate a SqlCacheDependency with each command (or table) used to generate the object Execute the command(s) to generate the response Add the object to the cache, specifying the SqlCacheDependency Generate the object to be cached Associate a SqlCacheDependency with each command (or table) used to generate the object Execute the command(s) to generate the response Add the object to the cache, specifying the SqlCacheDependency DataSet ds = (DataSet)Cache[ProductID]; if (null==ds) { ds = new DataSet(); SqlDataAdapter adapt = getDataAdapter(); SqlCacheDependency cacheDep = new SqlCacheDependency(adapt.SelectCommand); adapt.Fill(ds); Cache.Insert(ProductID, ds, cacheDep); }

Response Caching With Data Invalidations ASP.NET Responses can be dependent on database results Explicitly associate SqlCacheDependency(s) with Response Or Specify as part of caching page directive SqlDependency=“CommandNotification” For query notifications, specify: SqlDependency=“CommandNotification” ASP.NET generates a SqlDependency, associates it with the response, and adds the dependency to the application context Commands automatically enlist in context SqlDependency=“database:tablename” For table dependencies, specify: SqlDependency=“database:tablename” When used with II6.0, responses are pushed to Kernel Mode Response cache! ASP.NET Responses can be dependent on database results Explicitly associate SqlCacheDependency(s) with Response Or Specify as part of caching page directive SqlDependency=“CommandNotification” For query notifications, specify: SqlDependency=“CommandNotification” ASP.NET generates a SqlDependency, associates it with the response, and adds the dependency to the application context Commands automatically enlist in context SqlDependency=“database:tablename” For table dependencies, specify: SqlDependency=“database:tablename” When used with II6.0, responses are pushed to Kernel Mode Response cache!

Using Response Caching With Data invalidations Set up the dependency manually Specify that the page is to be cached Generate the page Create a SqlCacheDependency for each command used to generate the response Add the SqlCacheDependency(s) to the Response Set up the dependency manually Specify that the page is to be cached Generate the page Create a SqlCacheDependency for each command used to generate the response Add the SqlCacheDependency(s) to the Response OutputCache Duration=3600 VaryByParam=“none” SqlDependency=“CommandNotification" %> Response.Cache.SetExpires(DateTime.MaxValue); SqlDataAdapter adapt = getDataAdapter(); SqlCacheDependency cacheDep = new SqlCacheDependency(adapt.SelectCommand); adapt.Fill(ds);Response.AddCacheDependency(cacheDep); Or use the outputcache directive Specify: SqlDependency="CommandNotification" Set Command.NotificationAutoEnlist to false for any commands you don’t want to notify on

ASP.NET Application/ WebService OutputCache Duration=3600 VaryByParam=“none” VaryByParam=“none” SqlDependency= “CommandNotification” %> Response Caching In ASP.NET Notification Delivery Service SSB Http.Sys Middle Tier Database Server SqlCommand Change Detection Execute() Invalidate(ID) Response Cache SqlCommand Execute() IIS Products

Web Application/ WebService Data Caching

Agenda Building a Scalable Enterprise Whidbey SqlNotifications and Caching Implementing Deciding What to Cache SqlClient Notification Support Summary Building a Scalable Enterprise Whidbey SqlNotifications and Caching Implementing Deciding What to Cache SqlClient Notification Support Summary

Deciding What To Cache Data Caching Cache queryable data (i.e., DataSet) in Object Cache Appropriate when some subset of data is commonly useful across requests, objects Object Caching Cache common objects based on results Appropriate when same object may be used by multiple requests Added benefit if object creation/transformations is expensive HTTP Response Caching Specify that entire Response should be cached Appropriate when entire response is common to multiple users Fragment (Partial Page) Caching Specify that some subset of response is to be cached Appropriate when a subset of response is common, but also contains dynamic content Data Caching Cache queryable data (i.e., DataSet) in Object Cache Appropriate when some subset of data is commonly useful across requests, objects Object Caching Cache common objects based on results Appropriate when same object may be used by multiple requests Added benefit if object creation/transformations is expensive HTTP Response Caching Specify that entire Response should be cached Appropriate when entire response is common to multiple users Fragment (Partial Page) Caching Specify that some subset of response is to be cached Appropriate when a subset of response is common, but also contains dynamic content

SqlClient Notification Support New SqlNotificationRequest Object Used to specify Message, Message Queue, Timeout New SqlDependency Object AddCommandDependency() Method Sets Notification information on a Command OnChanged Event Raised when any results change Delivery properties Protocol, Port, Timeout,… New SqlCommand Properties New Notification Property Used for setting SqlNotificationRequest object NotificationAutoEnlist Property Allows SqlCommand not to be enlisted in Notification Context New SqlNotificationRequest Object Used to specify Message, Message Queue, Timeout New SqlDependency Object AddCommandDependency() Method Sets Notification information on a Command OnChanged Event Raised when any results change Delivery properties Protocol, Port, Timeout,… New SqlCommand Properties New Notification Property Used for setting SqlNotificationRequest object NotificationAutoEnlist Property Allows SqlCommand not to be enlisted in Notification Context

Summary Of Microsoft Web Caching Architecture Developer has a choice! Cache transformed data or objects in application cache Easy to use SqlDependency, ASP.NET Page Directives Explicit control Use Page Directives Enlist commands by default Specify commands that shouldn’t be enlisted Specify dependent tables Support for pre-Yukon Servers Create explicit SqlCacheDependencies Create SqlDependencies Specify Transport, Port, alternate message queue Associate with individual command(s) Use SqlNotificationRequest Specify custom message queue Query queue directly using blocking or unblocking, synchronous or asynchronous queries Developer has a choice! Cache transformed data or objects in application cache Easy to use SqlDependency, ASP.NET Page Directives Explicit control Use Page Directives Enlist commands by default Specify commands that shouldn’t be enlisted Specify dependent tables Support for pre-Yukon Servers Create explicit SqlCacheDependencies Create SqlDependencies Specify Transport, Port, alternate message queue Associate with individual command(s) Use SqlNotificationRequest Specify custom message queue Query queue directly using blocking or unblocking, synchronous or asynchronous queries

Questions?

SQL Server Resources Week long SQL Server “Ask the Experts” lounge in: Foyer outside Room 309 Support for SQL Server “Yukon” PDC Preview at SQLJunkies SQL Server “Yukon” FAQ Blog at SQLTeam Other Key Resources world wide user groups, Our most active SQL Server newsgroups, Microsoft.public.sqlserver.programming Microsoft.public.sqlserver.server Microsoft.public.sqlserver.dts Microsoft.public.sqlserver.olap Microsoft.public.sqlserver.setup Microsoft.public.sqlserver.replication Microsoft.public.sqlserver.msde Week long SQL Server “Ask the Experts” lounge in: Foyer outside Room 309 Support for SQL Server “Yukon” PDC Preview at SQLJunkies SQL Server “Yukon” FAQ Blog at SQLTeam Other Key Resources world wide user groups, Our most active SQL Server newsgroups, Microsoft.public.sqlserver.programming Microsoft.public.sqlserver.server Microsoft.public.sqlserver.dts Microsoft.public.sqlserver.olap Microsoft.public.sqlserver.setup Microsoft.public.sqlserver.replication Microsoft.public.sqlserver.msde

© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.