<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Notification Services</title>
        <link>http://weblogs.sqlteam.com/joew/category/273.aspx</link>
        <description>SQL Server Notification Services </description>
        <language>en-US</language>
        <copyright>Joe Webb</copyright>
        <managingEditor>joew@webbtechsolutions.com</managingEditor>
        <generator>Subtext Version 1.9.4.0</generator>
        <item>
            <title>Finding Notification Services Instances</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/05/06/60589.aspx</link>
            <description>&lt;p&gt;As most you already know, Notification Services is not part of Microsoft SQL Server 2008. I think this is a shame since SSNS is really a great product. It may be rather complex at first glance, but it's a great product nonetheless. I'll probably devote a blog to it's abrupt deprecation at some point in the future.  &lt;/p&gt;
&lt;p&gt;In the meantime, if you're preparing to upgrade to SQL Server 2008, you should verify that you don't have any rogue SSNS instances running on any of your servers. I hope your environment is more controlled than that, but I've seen more than one shop where change control was, well in a word, uncontrolled.  &lt;/p&gt;
&lt;p&gt;So, how can you tell if a server has a SSNS installed on it? Run the following query in the msdb database. It'll list all SSNS instances installed on that SQL Server instance. &lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;br /&gt;     InstanceName&lt;br /&gt;    ,DatabaseName&lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;     msdb.NS90.NSInstances &lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
]]&gt;&lt;/style&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Cheers!  &lt;/p&gt;
&lt;p&gt;Joe &lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f05%2f06%2f60589.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f05%2f06%2f60589.aspx" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60589.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/05/06/60589.aspx</guid>
            <pubDate>Tue, 06 May 2008 20:31:03 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60589.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/05/06/60589.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60589.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Upgrading to SSNS 2005</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/03/06/60544.aspx</link>
            <description>&lt;p&gt;Last week, I completed an upgrade of a SQL Server 2000 server to SQL Server 2005. Not really a big deal; servers are routinely upgraded to a newer version of software. Sometimes it seems the upgrades come too quickly. Other times it seems like we are waiting for the proverbial pot of water to boil while eagerly looking forward the next release. &lt;/p&gt;
&lt;p&gt;This server, however, included a Notification Services instance. It got me to thinking about upgrades and some of the changes in SSNS between v2.0 and 2005. I've compiled a "Top 10" list of enhancements to SSNS 2005. (I wish I could have composed the Top 10 list for SQL Server 2008, but alas it's not there. I'm sure we're all aware by now of the its premature deprecation. That'll be the topic of another blog.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 10. Support for the 64-bit platform.&lt;br /&gt;
&lt;/strong&gt;As an add-on for the prior version of SQL Server, SQLNS was not supported on a 64-bit installation. In 2005, it is.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 9. Hostable execution engine.&lt;/strong&gt;&lt;br /&gt;
With the newer version, each SQLNS instance may be hosted within an existing application or process; it no longer requires that a NS$InstanceName service be created.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 8. Better vacuuming performance.&lt;br /&gt;
&lt;/strong&gt;The vacuumer now transverses through the obsolete data in a much more efficient manner.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 7. Analysis Services Event Provider.&lt;/strong&gt;&lt;br /&gt;
You may now use MDX queries to collect event information.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 6. Management API. &lt;br /&gt;
&lt;/strong&gt;The Microsoft.SqlServer.Management.nmo API may be used to programmatically create and manage SQLNS instances.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 5. Database independence.&lt;br /&gt;
&lt;/strong&gt;The database objects historically created in the instance and application databases may now be created in a database that we specify during the build process.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 4. Subscriber defined conditions.&lt;br /&gt;
&lt;/strong&gt;Under certain circumstances, subscribers may define query clauses over a pre-defined dataset.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 3. Management Studio integration.&lt;/strong&gt;&lt;br /&gt;
SQLNS is now a full-fledged part of SQL Server and it\u2019s been integrated into Management Studio.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Number 2. New views.&lt;br /&gt;
&lt;/strong&gt;There are new views in SQLNS 2005 we can use to create and manage subscribers, devices, and subscriptions using T-SQL. (Click here to see a prior post on this subject.)  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And the Number 1 feature. Goodbye Notify() function!&lt;br /&gt;
&lt;/strong&gt;A new view allows us to write T-SQL code in our matching rules which is not only more intuitive, but also offers improved performance. (Click here to see a prior post on this feature.)  &lt;/p&gt;
&lt;p&gt;And there you have it. My Top 10 List of new and greatly appreciated features in SQLNS 2005. &lt;/p&gt;
&lt;p&gt;As for conducting the upgrade, here are a couple of resources to help. &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://www.simple-talk.com/sql/sql-server-2005/building-effective-sql-server-notification-applications-part-i/"&gt;Simple-Talk article&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3d5e96d9-0074-46c4-bd4f-c3eb2abf4b66&amp;amp;displaylang=en"&gt;SQL Server 2005 Upgrade Technical Reference Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cheers! &lt;/p&gt;
&lt;p&gt;Joe &lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f03%2f06%2f60544.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f03%2f06%2f60544.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60544.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/03/06/60544.aspx</guid>
            <pubDate>Thu, 06 Mar 2008 13:30:13 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60544.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/03/06/60544.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60544.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Moving a Notification Services database</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/02/14/60511.aspx</link>
            <description>&lt;p&gt;The old adage "&lt;em&gt;An ounce of prevention is worth a pound of cure&lt;/em&gt;" can be applied to many topics and areas of life. And while it has its origins in personal health care, nowhere is it more true than in an IT shop. Whether you're talking about high availability solutions or starting with a good database design, planning ahead is well worth the effort. Anyone who has been through an IT crisis can testify to that! &lt;/p&gt;
&lt;p&gt;But alas, we live in a dynamic world and we can only make calculated guesses at what the the ounce of prevention should be. Sometimes we cannot anticipate what the future holds in store and we must adapt. &lt;/p&gt;
&lt;p&gt;For example in my consultancy, I was recently asked to move all SQL Server databases to another drive on the client's server. No problem! Using sp_detach_db and sp_attach_db this is straightforward. Even moving the Master database and the other system databases is relatively simple using the process documented in &lt;a target="_blank" href="http://support.microsoft.com/kb/224071"&gt;the MSDN article&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;But what about moving a SQLNS database? Can those simply be moved using the normal detach/attach methodology? &lt;/p&gt;
&lt;p&gt;The short answer is yes, but! &lt;/p&gt;
&lt;p&gt;Although the move process works, subsequent updates to the instance will be ineffective unless we take some additional actions. &lt;/p&gt;
&lt;p&gt;When we attempt to update an SSNS instance, the configuration settings in the ICF and ADF files are compared to the current settings of the instance so that SSNS will know what changes to make to the instance. The update process also checks to ensure the validity of the new and old configurations. Herein lies the problem. &lt;/p&gt;
&lt;p&gt;When we created the SQLNS instance, we had the choice of whether to create a new instance and application database or to use an existing database. To have a new one created for us, we had to specify the location of the database files in the FileName element of the ICF and ADF configuration files. This is shown below. &lt;/p&gt;
&lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;&amp;lt;!--Instance database information--&amp;gt;&lt;/span&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Database&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;         &lt;span class="kwrd"&gt;&lt;br /&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;NamedFileGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FileGroupName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Primary&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FileGroupName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FileSpec&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;		 &lt;span class="kwrd"&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LogicalName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;PrimaryFG&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LogicalName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FileName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;				&lt;/span&gt;C:\MSSQL\Data\ABCPressData.mdf&lt;br /&gt;			&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FileName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Size&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;2MB&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Size&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MaxSize&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;10MB&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MaxSize&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;	&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;GrowthIncrement&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;10%&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;GrowthIncrement&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FileSpec&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;	 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;NamedFileGroup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;	 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LogFile&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LogicalName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;PrimaryLF&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LogicalName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FileName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;			&lt;/span&gt;C:\MSSQL\Data\ABCPressLog.ldf&lt;br /&gt;		&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FileName&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Size&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;1MB&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Size&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MaxSize&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;10MB&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MaxSize&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;		&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;GrowthIncrement&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;10%&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;GrowthIncrement&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;	 &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LogFile&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;        &lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Database&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;Later when we attempt to update the instance, the process will verify that the database files exist in the location defined in the FileName element of the configuration file. Since we just moved them, it will of course not be able to find them so the upgrade will abort with an error. &lt;/p&gt;
&lt;p&gt;The obvious solution is to simply update the ICF and ADF file to reflect the new location of the database files. And that is indeed part of the answer. But according to Books Online, the FileName element of the ADF cannot be updated after the instance is built. So if you only change the FileName elements and attempt to run the update again, you'll receive another error. &lt;/p&gt;
&lt;p&gt;You see, the location of each database file as defined in the original ICF and ADF is stored in the instance and application database itself. This can be seen using the following T-SQL and in the figure below, where ABCPressNSMain is the name of my Instance database and ABCPressPressRelease is the name of the associated application database. &lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;br /&gt;      * &lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; &lt;br /&gt;      ABCPressNSMain.dbo.NSDatabaseFiles;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;br /&gt;      * &lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; &lt;br /&gt;      ABCPressPressReleases.dbo.NSDatabaseFiles;&lt;/pre&gt;
&lt;p&gt;The update process compares the location as documented in the database itself with the information provided in the configuration files. If the two differ, the update aborts with another error. &lt;/p&gt;
&lt;p&gt;So, how can we move the database files? In addition to updating the location in the ICF and ADF files, we need to update the information in the NSDatabaseFiles tables of the instance and application databases to reflect the new location. You can use the following T-SQL to do this. Of course you'll need to modify these statements with the name of your instance and application databases. &lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; &lt;br /&gt;      ABCPressNSMain.dbo.NSDatabaseFiles&lt;br /&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;br /&gt;      FilePath = &lt;span class="str"&gt;'E:\MSSQL\9.0\Data\ABCPressData.mdf'&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; &lt;br /&gt;      FileId = 1;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; &lt;br /&gt;      ABCPressNSMain.dbo.NSDatabaseFiles&lt;br /&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;br /&gt;      FilePath = &lt;span class="str"&gt;'E:\MSSQL\9.0\Data\ABCPressLog.ldf'&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; &lt;br /&gt;      FileId = 2; &lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; &lt;br /&gt;      ABCPressPressReleases.dbo.NSDatabaseFiles&lt;br /&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;br /&gt;      FilePath = &lt;span class="str"&gt;'E:\MSSQL\9.0\Data\PressReleaseData.mdf'&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; &lt;br /&gt;      FileId = 1;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; &lt;br /&gt;      ABCPressPressReleases.dbo.NSDatabaseFiles&lt;br /&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;br /&gt;      FilePath = &lt;span class="str"&gt;'E:\MSSQL\9.0\Data\PressReleaseLog.ldf'&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt; &lt;br /&gt;      FileId = 2; &lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Once you've done these two steps - updating the configuration files and the FilePath column in the instance and application database - future updates should work without problem. &lt;/p&gt;
&lt;p&gt;Now for the caveat. Microsoft strongly discourages direct manipulation of the underlying tables in a SQLNS instance. I generally try to follow that advice. And although I have not found the process that I've described here to have any adverse side affects, you'll of course want to backup the databases, configuration files, etc, just in case. &lt;/p&gt;
&lt;p&gt;Happy Notifying! &lt;/p&gt;
&lt;p&gt;Joe&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f02%2f14%2f60511.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" border="0" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f02%2f14%2f60511.aspx" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60511.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/02/14/60511.aspx</guid>
            <pubDate>Thu, 14 Feb 2008 13:46:24 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60511.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/02/14/60511.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60511.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Using the SSNS Management.NMO NameSpace</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/01/31/60477.aspx</link>
            <description>&lt;p&gt;One the more welcomed enhancements of SQL Server 2005 Notification Services was the new Microsoft.SqlServer.Management.Nmo namespace. The namespace provides classes that may be used develop and administer SSNS instances and applications.  &lt;/p&gt;
&lt;p&gt;For example, the following C# console application may be used to iterate through each SSNS instance of a SQL Server 2005 instance, printing its name to the console window. If you'd like to try this code for yourself, don't forget to add a reference to the microsoft.sqlserver.smo.dll in your Visual Studio 2005 project. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SqlServer.Management.Nmo;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SqlServer.Management.Smo;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ConsoleApp&lt;/pre&gt;
&lt;pre class="alt"&gt;{&lt;/pre&gt;
&lt;pre&gt;    &lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;/pre&gt;
&lt;pre class="alt"&gt;    {&lt;/pre&gt;
&lt;pre&gt;        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;
&lt;pre class="alt"&gt;        {&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="rem"&gt;//SQL Server instance &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; myServer = &lt;span class="str"&gt;@"CEDAR\SS2005"&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;            Server server = &lt;span class="kwrd"&gt;new&lt;/span&gt; Server(myServer);&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="rem"&gt;//Notification Services object&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            NotificationServices ns = server.NotificationServices;&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;            &lt;span class="rem"&gt;//enumerate through each instances&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; cnt = 0; cnt &amp;lt; ns.Instances.Count; cnt++)&lt;/pre&gt;
&lt;pre class="alt"&gt;            {   &lt;/pre&gt;
&lt;pre&gt;                &lt;span class="kwrd"&gt;string&lt;/span&gt; nam = ns.Instances[cnt].Name;&lt;/pre&gt;
&lt;pre class="alt"&gt;                Console.WriteLine(nam);&lt;/pre&gt;
&lt;pre&gt;            }&lt;/pre&gt;
&lt;pre class="alt"&gt; &lt;/pre&gt;
&lt;pre&gt;            &lt;span class="rem"&gt;//pause to view the output&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;            Console.WriteLine(&lt;span class="str"&gt;"Press the Enter key to continue"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;            Console.Read();&lt;/pre&gt;
&lt;pre class="alt"&gt;        }&lt;/pre&gt;
&lt;pre&gt;    }&lt;/pre&gt;
&lt;pre class="alt"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Although the quickest way to create a SSNS instance and application is still to craft an XML-based Instance Configuration File (ICF) and Application Definition File (ADF), it's nice to have the nmo namespace available to automate some tasks as needed. &lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;Joe&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f31%2f60477.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f31%2f60477.aspx" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60477.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/01/31/60477.aspx</guid>
            <pubDate>Thu, 31 Jan 2008 15:32:10 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60477.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/01/31/60477.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60477.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SQL Server Notification Services Resources</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/01/22/60461.aspx</link>
            <description>In &lt;a href="http://weblogs.sqlteam.com/joew/archive/2007/08/22/60298.aspx"&gt;my initial post&lt;/a&gt; here on the SQLTeam site, I mentioned that for the prior three years I had blogged on another site. That blog was almost exclusively dedicated to SQL Server Notification Services. &lt;br /&gt;
&lt;br /&gt;
If you are a regular reader of this new blog, you've undoubtedly noticed that I've broadened the scope to include topics of interest to DBAs, database developers, and general technologists. &lt;br /&gt;
&lt;br /&gt;
As time permits, I'm still attempting to recover the SSNS tutorials and commentary from my prior blog. I'll post what I can recover as it becomes available. &lt;br /&gt;
&lt;br /&gt;
In the meantime, here are a few links to other SSNS-related resources I've written over the years. &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.sqlservercentral.com/articles/2000+-+Misc/sqlservernotificationservicesarchitecture/2148/"&gt;&lt;span style="font-style: italic;"&gt;SQL Server Notification Services Architecture&lt;/span&gt;&lt;/a&gt; - An SQL Server Central article that was adapted from a chapter in &lt;a href="http://www.amazon.com/exec/obidos/redirect?tag=sqlservercentral&amp;amp;path=tg/detail/-/0972688811/qid=1097164856/sr=8-1/ref=pd_csp_1?v=glance&amp;amp;s=books&amp;amp;n=507846"&gt;&lt;em&gt;The Rational Guide to: SQL Server Notification Services.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span style="font-style: italic;"&gt;&lt;a href="http://www.simple-talk.com/sql/sql-server-2005/building-effective-sql-server-notification-applications-part-i/"&gt;Building Effective SQL Server Notification Applications, part 1&lt;/a&gt; - &lt;/span&gt;A Simple-Talk article that provides a step by step path for upgrading to SSNS 2005 from SSNS 2.0&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.simple-talk.com/sql/sql-server-2005/building-effective-sql-server-notification-applications-part-2/"&gt;Building Effective SQL Server Notification Application, part 2&lt;/a&gt; - A Simple-Talk article that discusses what I consider to be the top 10 enhancements in SSNS 2005.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.simple-talk.com/sql/sql-server-2005/creating-a-custom-content-formatter-for-ssns-2005/"&gt;Creating a Custom Content Formatter for SSNS 2005&lt;/a&gt; - A Simple-Talk article that demonstrates how SSNS can be extended beyond its built-in content formatter. &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3d5e96d9-0074-46c4-bd4f-c3eb2abf4b66&amp;amp;DisplayLang=en"&gt;SQL Server 2005 Upgrade Technical Reference Guide&lt;/a&gt; - One chapter in this 350 page upgrade guide is dedicated to the changes required to upgrade or migrate to SSNS 2005 from SSNS 2.0.&lt;/li&gt;
&lt;/ul&gt;
I hope you find these articles of interest.&lt;br /&gt;
&lt;br /&gt;
Cheers! &lt;br /&gt;
&lt;br /&gt;
Joe&lt;br /&gt;

&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f22%2f60461.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f22%2f60461.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60461.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/01/22/60461.aspx</guid>
            <pubDate>Wed, 23 Jan 2008 03:18:22 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60461.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/01/22/60461.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60461.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Creating a Notification Services Instance</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2008/01/08/60451.aspx</link>
            <description>&lt;p&gt;Even though SQL Server 2008 does not include the Notification Services (SSNS) component, it seems that companies still consider SSNS a very viable option for upcoming notification projects. I'm planning to write a blog or SQLTeam article in the near future to address some questions I'm frequently asked.  &lt;/p&gt;
&lt;p&gt;In the meantime, if you have decided to create a new notification application using SSNS, I'm reposting a short tutorial I created a couple of years ago. It's been modified and updated slightly. &lt;/p&gt;
&lt;p&gt;In this blog we'll go through the simple steps that can be used to create a new SQL Server 2005 Notification Services instance using Management Studio. I've included a series of images to help illustrate the process.  &lt;/p&gt;
&lt;h3&gt;Step 1:&lt;/h3&gt;
&lt;p&gt;After you've installed SQL Server 2005 and Notification Services, you'll find a Notification Services folder in the Object Explorer. Initially this will be empty since there are no instances defined. By right-clicking on the folder you'll expose a context menu that allows you to create a new instance. This is illustrated in Figure 1.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step1_2007_01_08_2.jpg"&gt;&lt;img width="244" height="212" border="0" style="border: 0px none ;" alt="Step1_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step1_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 1 - Creating a new instance.  &lt;/p&gt;
&lt;h3&gt;Step 2:&lt;/h3&gt;
&lt;p&gt;Click the New Notification Services Instance menu item on the context menu to open a New Notification Services Instance dialog window. This window allows you to select the Instance Configuration File for the instance. Click the Browse button to navigate to the file you've created. You do not have to select the Application Definition Files; they are defined in the Instance Configuration File. Click Ok to create the instance. Figure 2 depicts the New Notification Services Instance dialog window.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step2_2007_01_08_2.jpg"&gt;&lt;img width="244" height="213" border="0" style="border: 0px none ;" alt="Step2_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step2_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 2 - Selecting the ICF.  &lt;/p&gt;
&lt;h3&gt;Step 3:&lt;/h3&gt;
&lt;p&gt;If everything is configured correctly in your ICF (Instance Configuration File), a new instance is created. You can watch the progress and examine the final results in a dialog window as shown in Figure 3.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step3_2007_01_08_2.jpg"&gt;&lt;img width="244" height="128" border="0" style="border: 0px none ;" alt="Step3_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step3_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 3 - Examining the results.  &lt;/p&gt;
&lt;h3&gt;Step 4:&lt;/h3&gt;
&lt;p&gt;After the instance is created, it may be registered by right-clicking the instance in Management Studio and selecting Tasks, Register as demonstrated in Figure 4.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4_2007_01_08_2.jpg"&gt;&lt;img width="244" height="212" border="0" style="border: 0px none ;" alt="Step4_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 4 - Registering the instance.  &lt;/p&gt;
&lt;p&gt;This will open a Register Instance dialog windows that allows you to configure the service account for the Windows Service and its authentication credentials for SQL Server 2005. The Register Instance dialog window is shown in Figure 5.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4b_2007_01_08_2.jpg"&gt;&lt;img width="244" height="213" border="0" style="border: 0px none ;" alt="Step4b_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4b_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 5 - Specifying credentials.  &lt;/p&gt;
&lt;p&gt;After clicking Ok to register the instance, progress will be reported in the Registering Instance window shown in Figure 6.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4c_2007_01_08_2.jpg"&gt;&lt;img width="244" height="128" border="0" style="border: 0px none ;" alt="Step4c_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step4c_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 6 - Examining the registration progress.  &lt;/p&gt;
&lt;h3&gt;Step 5:&lt;/h3&gt;
&lt;p&gt;Next Management Studio may be used to enable the instance as shown in Figure 7.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step5_2007_01_08_2.jpg"&gt;&lt;img width="244" height="212" border="0" style="border: 0px none ;" alt="Step5_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step5_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 7 - Enabling the instance.  &lt;/p&gt;
&lt;h3&gt;Step 6:&lt;/h3&gt;
&lt;p&gt;Finally Figure 8 depicts how Management Studio may be used to start the Windows service.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step6_2007_01_08_2.jpg"&gt;&lt;img width="244" height="212" border="0" style="border: 0px none ;" alt="Step6_2007_01_08" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/WindowsLiveWriter/CreatingaNotificationServicesInstance_12FC1/Step6_2007_01_08_thumb.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;Figure 8 - Starting the instance.  &lt;/p&gt;
&lt;p&gt;And there you have it; if everything has gone well you have a functioning SQL Server 2005 Notification Services instance running on your computer. If you've encountered an error along the way, the progress dialog windows generally provide enough information for you be start troubleshooting the ICF.  &lt;/p&gt;
&lt;p&gt;If you're a command line junkie or just prefer the predictable results of scripting out the steps, don't worry, NSControl is still around in SQL Server 2005 Notification Services. But it sure is nice to have a graphical method, too.  &lt;/p&gt;
&lt;p&gt;Cheers!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f08%2f60451.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2008%2f01%2f08%2f60451.aspx" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60451.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2008/01/08/60451.aspx</guid>
            <pubDate>Wed, 09 Jan 2008 04:19:20 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60451.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2008/01/08/60451.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60451.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SQL Server 2005 Notification Services web cast</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2007/12/30/60444.aspx</link>
            <description>Microsoft's Ken Henderson hosted a web cast called “&lt;a href="http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?EventID=1032263436&amp;amp;EventCategory=5&amp;amp;culture=en-us&amp;amp;CountryCode=US"&gt;&lt;span style="font-style: italic;"&gt;Introducing Notification Services in SQL Server 2005&lt;/span&gt;&lt;/a&gt;”. It was recorded three years, but it’s still a great material. If you’ve ever sat in on one of his sessions at &lt;a href="http://www.sqlpass.org"&gt;PASS&lt;/a&gt;, you know he’s a great presenter.&lt;br /&gt;
&lt;br /&gt;
Of course much to my and other's chagrin, SQL Server Notification Services is not part of the SQL Server 2008 product. Perhaps that will become the fodder for another post.&lt;br /&gt;
&lt;br /&gt;
In the meantime, enjoy the web cast!&lt;br /&gt;
&lt;br /&gt;
Cheers!
&lt;br /&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2007%2f12%2f30%2f60444.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2007%2f12%2f30%2f60444.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60444.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2007/12/30/60444.aspx</guid>
            <pubDate>Sun, 30 Dec 2007 14:45:38 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60444.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2007/12/30/60444.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60444.aspx</wfw:commentRss>
        </item>
        <item>
            <title>DevLink Technical Conference presentation</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2007/10/15/60373.aspx</link>
            <description>&lt;p&gt;Thanks to all of you who attended the DevLink Technical Conference in Nashville, Tennessee! It was great to see such a turnout for the event. Big kudos goes to all those who carried the load and championed this event. Putting on an event like this is no minor task and is definitely a labor of love.  &lt;/p&gt;
&lt;p&gt;As promised in my session, &lt;a target="_blank" href="http://www.webbtechsolutions.com/downloads/DevLink_SSNS_Session_2007_10_12.zip"&gt;here are the presentation materials I used&lt;/a&gt; - the slide deck and the demo scripts.  &lt;/p&gt;
&lt;p&gt;I hope you found it worth your while.  &lt;/p&gt;
&lt;p&gt;Cheers!  &lt;/p&gt;
&lt;p&gt;Joe&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2007%2f10%2f15%2f60373.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.sqlteam.com%2fjoew%2farchive%2f2007%2f10%2f15%2f60373.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60373.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2007/10/15/60373.aspx</guid>
            <pubDate>Mon, 15 Oct 2007 13:19:09 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60373.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2007/10/15/60373.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60373.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SSNS Status Codes</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2007/09/24/60340.aspx</link>
            <description>Have you ever been troubleshooting a SQLNS instance and noticed the status code column in some of the views and underlying tables? For example, the NS&lt;notificationclassname&gt;SMTPNotifications view has a column named DeliveryStatusCode with a values that range from 0 to 6. But what does that mean? What does a value of 6 actually tell you?&lt;br /&gt;
&lt;br /&gt;
Fortunately, the SSNS database contains tables with status code descriptions. Try running the following query in your application database. Note: you'll need to replace dbo with the appropriate schema name.&lt;br /&gt;
&lt;br /&gt;
&lt;/notificationclassname&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSNotificationDeliveryStatusCodes&lt;/blockquote&gt;&lt;br /&gt;
Figure 1 shows the results. You can see that a value of 6 in the Description column of the view indicates Delivery succeeded.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" src="http://weblogs.sqlteam.com/images/weblogs_sqlteam_com/joew/StatusCodes3.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some other status code lookup tables that you may find useful as you troubleshoot your SQLNS instance.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSDistributorWorkItemStatusCodes&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSNotificationBatchesStatusCodes&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSNotificationDeliveryStatusCodes&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSQuantumStatusCodes&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSRuleFiringStatusCodes&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;SELECT&lt;/span&gt; * &lt;span style="color: rgb(0, 0, 255);"&gt;FROM&lt;/span&gt; dbo.NSVacuumProcReturnCodes&lt;br /&gt;
&lt;br /&gt;
&lt;/blockquote&gt;Cheers!&lt;br /&gt;
&lt;br /&gt;
Joe&lt;br /&gt;

&lt;a href="http://www.dotnetkicks.com/kick/?url=http://weblogs.sqlteam.com/joew/archive/2007/09/24/60340.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://weblogs.sqlteam.com/joew/archive/2007/09/24/60340.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60340.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2007/09/24/60340.aspx</guid>
            <pubDate>Tue, 25 Sep 2007 03:09:28 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60340.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2007/09/24/60340.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60340.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Come out, come out, wherever you are: Finding SSNS instances using T-SQL</title>
            <link>http://weblogs.sqlteam.com/joew/archive/2007/08/23/60305.aspx</link>
            <description>As database professionals, we may responsible for dozens, if not scores, of SQL Servers throughout our department or enterprise. Now that Microsoft has announced that Notification Services will not ship as part of the SQL Server 2008 product, how can you readily identify which of the servers in your charge have SSNS instances installed?&lt;br /&gt;
&lt;br /&gt;
Fortunately for us it's rather easy. SSNS 2005 registers each installed instance in the msdb system database. The following query returns a list of every SSNS instance for the SQL Server instance. &lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-left: 40px;"&gt;SELECT&lt;br /&gt;
        * &lt;br /&gt;
FROM&lt;br /&gt;
        msdb.NS90.NSInstanceInfo&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
To retrieve a list of all SSNS applications for the given SQL Server instance, you can run the following query.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-left: 40px;"&gt;SELECT &lt;br /&gt;
        *&lt;br /&gt;
FROM&lt;br /&gt;
        msdb.NS90.NSApplicationInfo&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
As you make preparations for Katmai, you can run these scripts using your mechanism of choice to examine each server in your environment.&lt;br /&gt;
&lt;br /&gt;
Cheers! &lt;br /&gt;
&lt;br /&gt;
Joe&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://weblogs.sqlteam.com/joew/archive/2007/08/23/60305.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://weblogs.sqlteam.com/joew/archive/2007/08/23/60305.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
&lt;img src="http://weblogs.sqlteam.com/joew/aggbug/60305.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Joe Webb</dc:creator>
            <guid>http://weblogs.sqlteam.com/joew/archive/2007/08/23/60305.aspx</guid>
            <pubDate>Thu, 23 Aug 2007 13:59:40 GMT</pubDate>
            <wfw:comment>http://weblogs.sqlteam.com/joew/comments/60305.aspx</wfw:comment>
            <comments>http://weblogs.sqlteam.com/joew/archive/2007/08/23/60305.aspx#feedback</comments>
            <wfw:commentRss>http://weblogs.sqlteam.com/joew/comments/commentRss/60305.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>