<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jonathan Gardner &#187; Technology</title>
	<atom:link href="http://www.jonathanagardner.com/category/technology/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jonathanagardner.com</link>
	<description>Drinking from the Information Fire Hose</description>
	<lastBuildDate>Thu, 19 Jan 2012 23:20:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Houston User Group Casino Night</title>
		<link>http://www.jonathanagardner.com/technology/sql-alerts/houston-user-group-casino-night.html</link>
		<comments>http://www.jonathanagardner.com/technology/sql-alerts/houston-user-group-casino-night.html#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:49:34 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQLServerPedia Syndication]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[HASSUG]]></category>
		<category><![CDATA[Houston]]></category>
		<category><![CDATA[User Group]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=1081</guid>
		<description><![CDATA[The Houston SharePoint User group reached out to other area user groups this year and asked if we would like to participate in a joint user group event around Christmas time. We, of course, thought this was a fantastic idea. What is better than having community get together? Having multiple communities get together for a [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/sql-alerts/houston-user-group-casino-night.html" title="Permanent link to Houston User Group Casino Night"><img class="post_image alignnone frame" src="http://www.jonathanagardner.com/wp-content/uploads/2011/12/iStock_000017600271Small_Modified.jpg" width="509" height="339" alt="Post image for Houston User Group Casino Night" /></a>
</p><p>The Houston SharePoint User group reached out to other area user groups this year and asked if we would like to participate in a joint user group event around Christmas time. We, of course, thought this was a fantastic idea. What is better than having community get together? Having multiple communities get together for a great event. Thus the joint Casino Night was born.</p>

<p><em>When:</em> Wednesday, December 14th, 2011</p>

<p><em>Where:</em>Norris Conference Center, Red Oak Ballroom</p>

<p><em>Registration:</em> <a href="http://events.r20.constantcontact.com/register/event?llr=tbpmj6gab&amp;oeidk=a07e5fkdzz637e59152">Link</a></p>

<h2>Special Notes</h2>

<p>The registration email contained some special restrictions. Please see below:</p>

<p>Special restrictions may apply, some offers not valid in all states, see in-store for details, this offer not valid in Iceland or the Turkish Islands, no purchase necessary when purchasing, if you experience certain conditions longer than 5 to 6 six hours please see your doctor.</p>

<h2>Special Thanks</h2>

<p>While I was not involved with sponsorship for this event <a href="http://www.red-gate.com/">Red Gate</a> reached out to the community looking for special events at the end of the year. I responded with information for the event and they loved the idea. They loved it to the point that they helped sponsor the event. Just another reason I love being a part of the SQL Community.</p>

<p><img src="http://www.red-gate.com/assets/images/common/logo.png?v=2" alt="Red-Gate Logo" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/sql-alerts/houston-user-group-casino-night.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Saturday #97, Austin Wrap Up</title>
		<link>http://www.jonathanagardner.com/technology/sql-alerts/sql-saturday-97-austin-wrap-up.html</link>
		<comments>http://www.jonathanagardner.com/technology/sql-alerts/sql-saturday-97-austin-wrap-up.html#comments</comments>
		<pubDate>Tue, 04 Oct 2011 21:50:56 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Slides]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Saturday]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=1066</guid>
		<description><![CDATA[Last weekend I presented Adventures in Project Management at SQL Saturday #97, Austin.  This was the first time I gave this presentation and it went really well.  The talk was well attended and seemed to be well received.  I think the fact that no one threw any fruit at me means they liked it.  You [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.jonathanagardner.com/wp-content/uploads/2011/09/sqlsat97_web.png"><img class="alignnone size-full wp-image-1057" title="sqlsat97_web" src="http://www.jonathanagardner.com/wp-content/uploads/2011/09/sqlsat97_web.png" alt="SQL Saturday #97, Austin" width="236" height="115" /></a></p>

<p>Last weekend I presented Adventures in Project Management at SQL Saturday #97, Austin.  This was the first time I gave this presentation and it went really well.  The talk was well attended and seemed to be well received.  I think the fact that no one threw any fruit at me means they liked it.  You can get the slides from my presentation below.</p>

<p><a href="http://www.jonathanagardner.com/wp-content/uploads/2011/10/SQLSaturday97Austin.pptx">SQLSaturday#97AustinPresentation</a></p>

<p>Wes and the SQL Saturday #97 team did a fantastic job putting the event together.  From this humble speaker&#8217;s perspective the event ran smoothly without a hitch.  This is no easy task for a team putting on their first event.  I know this from our my first hand experience putting on SQL Saturday #57, Houston.  I shared our lessons learned with the Austin team and they took all of them to heart.</p>

<p>The event was made even sweeter by the fact that Wes Brown (<a href="http://sqlserverio.com/">Blog</a> | <a href="http://twitter.com/#!/SQLServerIO">Twitter</a>) was named a Microsoft MVP the morning of the event.  It is hard to believe this had not happened before now.  This is long overdue for everything Wes has done for the SQL Server community.</p>

<div id="attachment_1071" class="wp-caption alignnone" style="width: 375px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;">
	<a href="http://www.jonathanagardner.com/wp-content/uploads/2011/10/6211509462_0f7278cf5a.jpg"><img class="size-full wp-image-1071" title="Jonathan Presenting at SQL Saturday #97 Austin" src="http://www.jonathanagardner.com/wp-content/uploads/2011/10/6211509462_0f7278cf5a.jpg" alt="Jonathan Presenting at SQL Saturday #97 Austin" width="375" height="500" /></a>
	<p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Jonathan Presenting at SQL Saturday #97 Austin</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/sql-alerts/sql-saturday-97-austin-wrap-up.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speaking at SQL Saturday #97</title>
		<link>http://www.jonathanagardner.com/technology/sql-alerts/speaking-at-sql-saturday-97.html</link>
		<comments>http://www.jonathanagardner.com/technology/sql-alerts/speaking-at-sql-saturday-97.html#comments</comments>
		<pubDate>Tue, 13 Sep 2011 20:00:15 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=1056</guid>
		<description><![CDATA[I have been selected to speak at SQL Saturday #97 in Austin, TX on October 1st. I will be presenting a bonus topic, Adventures in Project Management. I am very much looking forward to presenting is Austin. Reviewing the lineup, it will be an event not to be missed. Some of my favorite people will [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/sql-alerts/speaking-at-sql-saturday-97.html" title="Permanent link to Speaking at SQL Saturday #97"><img class="post_image alignnone frame" src="http://www.jonathanagardner.com/wp-content/uploads/2011/09/sqlsat97_web.png" width="236" height="115" alt="Post image for Speaking at SQL Saturday #97" /></a>
</p><p>I have been selected to speak at <a href="http://sqlsaturday.com/97/eventhome.aspx">SQL Saturday #97</a> in Austin, TX on October 1st.  I will be presenting a bonus topic, Adventures in Project Management.</p>

<p>I am very much looking forward to presenting is Austin.  Reviewing the lineup, it will be an event not to be missed.  Some of my favorite people will be there: AJ Mendo (<a href="http://sqlaj.wordpress.com/">Blog</a> | <a href="https://twitter.com/#!/SQLAJ">Twitter</a>), Ryan Adams (<a href="http://www.ryanjadams.com/">Blog</a> | <a href="https://twitter.com/#!/ryanjadams">Twitter</a>), Joe Celko  just to name a few.  Wes Brown (<a href="http://sqlserverio.com/">Blog</a> | <a href="https://twitter.com/#!/SQLServerIO">Twitter</a>) and his leadership team are shaping up a great event.  Don&#8217;t miss out, get <a href="http://sqlsaturday.com/97/register.aspx">registered today</a>.</p>

<h2>Adventures in Project Management Synopsis</h2>

<p>Join Jonathan Gardner in a discussion about the project management and how understanding the process can increase the chances of delivering a top quality work product.  Learn the questions to ask that will help prevent scope creep and manage stakeholders from a PMI certified Project Manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/sql-alerts/speaking-at-sql-saturday-97.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SRS Double Hop Authentication</title>
		<link>http://www.jonathanagardner.com/technology/sql-alerts/srs-double-hop-authentication.html</link>
		<comments>http://www.jonathanagardner.com/technology/sql-alerts/srs-double-hop-authentication.html#comments</comments>
		<pubDate>Fri, 09 Sep 2011 16:35:25 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=1041</guid>
		<description><![CDATA[I was recently asked by a client to architect a data and reporting environment.  Part of the business requirements was separation of the production database server and the reporting services server.   Another part of the business requirements stated that the reports were to leverage a shared data source and Windows Authentication.  While none of the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I was recently asked by a client to architect a data and reporting environment.  Part of the business requirements was separation of the production database server and the reporting services server.   Another part of the business requirements stated that the reports were to leverage a shared data source and Windows Authentication.  While none of the business requirements were a problem for the SQL Server 2008 R2 environment I was creating, there was an issue with the double hop authentication.  I struggled to find a guide to setting this up in the BOL or on any of the usual blog suspects.  After opening a case with Microsoft I finally got all the information.</p>

<h1>Architecture</h1>

<p>This article will cover implementation of a 3-Tier SQL Server 2008 R2 reporting services installation.  For this discussion the database will be running on SQL01.  Reporting Services will be running on SRS01, and the client consuming the reports will be a local workstation LAPPY386.</p>

<h1>Reporting Services Configuration</h1>

<p><strong><em>NOTE</em></strong>: This article assumes that Microsoft best practices were followed and the SQL Server services are running under domain accounts.</p>

<p>To use double hop authentication, SRS uses Kerberos authentication.  This is not enabled by default in the reporting services configuration.  It is added to the reporting services configuration file.  For a default installation the file is C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config.  Edit this file in notepad and add thetag in the authentication section.  Once the file is modified it should look like the section below.
<pre><code>&lt;AuthenticationTypes&gt;; &lt;RSWindowsNegotiate /&gt;; &lt;RSWindowsNTLM /&gt;; &lt;/AuthenticationTypes&gt; </code></pre>
Modifications to the Reporting Services configuration file requires a restart of the services to take effect.</p>

<h1>Service Principal Names</h1>

<p>This article is not about SPNs so I won’t go into detail about them.  In short, they help facilitate authentication for a service when it executes.   You can find more information about SPNs in the Books Online <a href="http://technet.microsoft.com/en-us/library/cc961723.aspx">here</a>.</p>

<p>Without the SPNs set properly the following error is a common issue:
<pre><code> An error has occurred during report processing. (rsProcessingAborted)      Cannot create a connection to data source 'Datasource'. (rsErrorOpeningConnection) </code><code>          Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.</code></pre>
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">SPNs need to be set on the SQL Server, SQL01, and the Reporting Server, SRS01.   Setting a SPN is done through the SetSPN.exe tool run from the command line.  The URL of the SPN needs to be set the same way the data source will be configured.  For good measure, always enter both the short name and the FQDN to make sure that it will function if someone comes behind me and creates a data source with either server name.  The URL needs to be set with the proper port number.  Below the default SQL Server port is used but for a named instance or non-default port this will need to be adjusted accordingly.  A port number only needs to be specified for the SRS http SPN when a non standard port is used.  The SPN is set for the service account that is being used.</span></p>

<p>On SQL01:
<pre>SetSPN –A mssql/sql01:1433 domain\SQLServiceAcct</pre>
And
<pre>SetSPN –A mssql/sql01.domain.local:1433 domain\SQLServiceAcct</pre>
ON SRS01
<pre>SetSPN –A http/srs01 domain\SRSServiceAcct<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;"> </span></pre>
<pre>SetSPN –A http/srs.01.domain.local domain\SRSServiceAcct</pre>
A restart of the SQL Server or Reporting Server services is not required for the SPN to take effect but it will have to propagate throughout the domain.  The frequency of this varies.  If you are an Enterprise Administrator and want to force this replication in your domain, information to do that can be found <a href="http://technet.microsoft.com/en-us/library/cc816926(WS.10).aspx">here</a>.</p>

<p>To ensure that the SPN has been configured correctly for each account the SetSPN command is able to list all SPNs set for a service account.
<pre>SetSPN –L domain\account</pre>
It also can check the entire domain for duplicate SPN entries.
<pre>SetSPN –X</pre>
<pre><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">With all of this in place the double hop authentication should now be working.</span></pre>
<pre><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">UPDATED:</span></pre>
<pre><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">Vijay Krishnan (<a href="http://montagepages.fuselabs.com/public/VijayKrishnan/sqlserverreportingservices/fd3e3efa-cf8a-4867-be5f-2bb14bf38c23.htm">Blog</a> | <a href="https://twitter.com/#!/vijayreports">Twitter</a> ) pointed out something I was missing in this guide.  </span></pre></p>

<h1><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">Account Delegation</span></h1>

<p><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;"> The service account domain\account needs to be configured for Kerberos Delegation. The configuration needs to be set on the service account in Active Directory.  See the image below for the setting. </span></p>

<p><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;"><a href="http://www.jonathanagardner.com/wp-content/uploads/2011/09/Delegation.jpg"><img class="alignnone size-thumbnail wp-image-1047" title="Delegation" src="http://www.jonathanagardner.com/wp-content/uploads/2011/09/Delegation-150x150.jpg" alt="User Delegation Configuration" width="150" height="150" /></a></span></p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/sql-alerts/srs-double-hop-authentication.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What we can learn from the Foursquare outage</title>
		<link>http://www.jonathanagardner.com/technology/what-we-can-learn-from-the-foursquare-outage.html</link>
		<comments>http://www.jonathanagardner.com/technology/what-we-can-learn-from-the-foursquare-outage.html#comments</comments>
		<pubDate>Fri, 12 Nov 2010 15:00:22 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Foursquare]]></category>
		<category><![CDATA[Location]]></category>
		<category><![CDATA[MongoDB]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=1005</guid>
		<description><![CDATA[In the world of mobile location based services, it does not get any bigger thanFoursquare. On October 6th, 2010, they experienced an 11-hour outage that was caused by unknown errors encountered while adding a new shard to the database. While Foursquare is not a business critical application, their outage gives those of us who do support [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/what-we-can-learn-from-the-foursquare-outage.html" title="Permanent link to What we can learn from the Foursquare outage"><img class="post_image alignnone frame" src="http://blog.insource.com/wp-content/uploads/2010/10/tumblr_l9s5h0BHyF1qzsk91o1_1280.jpg" width="480" height="262" alt="Foursquare Outage Image" /></a>
</p><p>In the world of mobile location based services, it does not get any bigger than<a href="http://www.foursquare.com/">Foursquare</a>. On October 6th, 2010, they experienced an 11-hour outage that was caused by unknown errors encountered while adding a new <a href="http://www.mongodb.org/display/DOCS/Sharding+Introduction">shard</a> to the database. While Foursquare is not a business critical application, their outage gives those of us who do support critical applications an opportunity to learn from their problems. While I have limited knowledge of what caused Foursquare’s outage, there are three things it makes me think about: architecture, testing, and change management.</p>

<p>Check out the rest of the article <a href="http://blog.insource.com/business/what-we-can-learn-from-the-foursquare-outage.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/what-we-can-learn-from-the-foursquare-outage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>19 iPad Applications for Business Users</title>
		<link>http://www.jonathanagardner.com/featured/19-ipad-applications-for-business-users.html</link>
		<comments>http://www.jonathanagardner.com/featured/19-ipad-applications-for-business-users.html#comments</comments>
		<pubDate>Wed, 10 Nov 2010 15:04:07 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=997</guid>
		<description><![CDATA[Everyday more and more iPads show up in boardrooms across the globe. While many classify the iPad as a consumer device, corporate IT departments are going have to support them. Below I have created a list of iPad applications that can be leveraged by business users. To read my full list of applications check out [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/featured/19-ipad-applications-for-business-users.html" title="Permanent link to 19 iPad Applications for Business Users"><img class="post_image alignnone frame" src="http://www.jonathanagardner.com/wp-content/uploads/2010/11/Apple-iPad.png" width="223" height="270" alt="iPad" /></a>
</p><p>Everyday more and more iPads show up in boardrooms across the globe. While many classify the iPad as a consumer device, corporate IT departments are going have to support them. Below I have created a list of iPad applications that can be leveraged by business users.</p>

<p>To read my full list of applications check out the full article <a href="http://blog.insource.com/miscellaneous/19-ipad-applications-for-business-users.html">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/featured/19-ipad-applications-for-business-users.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serving Office 2007 Docx Filetypes from an Apache Server</title>
		<link>http://www.jonathanagardner.com/technology/serving-office-2007-docx-filetypes-from-an-apache-server.html</link>
		<comments>http://www.jonathanagardner.com/technology/serving-office-2007-docx-filetypes-from-an-apache-server.html#comments</comments>
		<pubDate>Wed, 01 Sep 2010 15:00:30 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Webserver]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=964</guid>
		<description><![CDATA[I recently worked on a project for my employer, Insource Technology, to develop a corporate blog. As the project progressed we ran into an interesting problem. An author would upload a .docx file to the site without an issue. When the file was downloaded it would not download as a .docx file but as a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a title="tim berners-lee's first webserver by Crys, on Flickr" href="http://www.flickr.com/photos/crystaltips/4588751951/"><img src="http://farm4.static.flickr.com/3320/4588751951_9b59e96738.jpg" alt="tim berners-lee's first webserver" width="500" height="375" /></a></p>

<p>I recently worked on a project for my employer, <a href="http://www.insource.com">Insource Technology</a>, to develop a corporate blog.  As the project progressed we ran into an interesting problem.  An author would upload a .docx file to the site without an issue.  When the file was downloaded it would not download as a .docx file but as a .zip file.  When the .zip file was extracted the contents showed the XML structure of the .docx file but the file was not readable by Microsoft Word.</p>

<h1>Background</h1>

<h2>Microsoft&#8217;s XML Document Format</h2>

<p>With the release of Office 2007, Microsoft released a new file format based on XML.  Microsoft dubbed this new file format Open XML and claimed many tangible advantages including smaller file size, improved privacy control and better integration.  A full list of extensions and more in-depth information on the Open XML format can be found  <a href="http://office.microsoft.com/en-us/help/introduction-to-new-file-name-extensions-HA010006935.aspx">here</a></p>

<h2>MIME File Types</h2>

<p>Multipurpose Internet Mail Extensions (MIME) is an internet standard designed to identify the type of media content served by a web browser.  The MIME types are used to help web browsers understand how to handle file types presented by a web browser or email application.  Some of these MIME file types are set up by default to be interpreted correctly by the server.  On some servers the .docx filetype is not set up by default.</p>

<h1>Solution</h1>

<h2>Serving Office 2007 documents from an Apache Web Server</h2>

<p>If you are running a blog on an apache web server you will need to add the following code to a .htaccess file in the root directory of your blog site.  If you already have a .htaccess file you can add this to that file.  No restart of the apache server is required.</p>

<p><code>application/vnd.openxmlformats-officedocument.wordprocessingml.document  docx
application/vnd.ms-word.document.macroEnabled.12     docm
application/vnd.openxmlformats-officedocument.wordprocessingml.template  dotx
application/vnd.ms-word.template.macroEnabled.12     dotm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet    xlsx
application/vnd.ms-excel.sheet.macroEnabled.12   xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.template     xltx
application/vnd.ms-excel.template.macroEnabled.12    xltm
application/vnd.ms-excel.sheet.binary.macroEnabled.12    xlsb
application/vnd.ms-excel.addin.macroEnabled.12   xlam
application/vnd.openxmlformats-officedocument.presentationml.presentation   pptx
application/vnd.ms-powerpoint.presentation.macroEnabled.12   pptm
application/vnd.openxmlformats-officedocument.presentationml.slideshow   ppsx
application/vnd.ms-powerpoint.slideshow.macroEnabled.12  ppsm
application/vnd.openxmlformats-officedocument.presentationml.template    potx
application/vnd.ms-powerpoint.template.macroEnabled.12   potm
application/vnd.ms-powerpoint.addin.macroEnabled.12  ppam
application/vnd.openxmlformats-officedocument.presentationml.slide   sldx
application/vnd.ms-powerpoint.slide.macroEnabled.12  sldm
application/vnd.ms-officetheme   thmx
application/onenote  onetoc
application/onenote  onetoc2
application/onenote  onetmp
application/onenote  onepkg</code></p>

<h2>Serving Office 2007 document from and IIS Web Server</h2>

<p>It is not necessary to add the MIME file types to versions of IIS 7.0 or greater.  Microsoft&#8217;s Technet has a full article outlining the process to <a href="http://technet.microsoft.com/en-us/library/ee309278(office.12).aspx">Register the 2007 Office system file format MIME types on servers</a>.  This article includes how to add the MIME file types to IIS 6.x web servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/serving-office-2007-docx-filetypes-from-an-apache-server.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Running Visual Studio 2010 Generated Deployment Scripts in SSMS</title>
		<link>http://www.jonathanagardner.com/technology/running-visual-studio-2010-generated-deployment-scripts-in-ssms.html</link>
		<comments>http://www.jonathanagardner.com/technology/running-visual-studio-2010-generated-deployment-scripts-in-ssms.html#comments</comments>
		<pubDate>Thu, 08 Jul 2010 20:44:40 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=945</guid>
		<description><![CDATA[Previously we discussed how to use the Database Deployment feature in Visual Studio 2010. There are two options to deploy a database project. The first is to have Visual Studio deploy the scripts automatically. The second is to have Visual Studio build a deployment script that can be run via SQL Server Management Studio or [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/running-visual-studio-2010-generated-deployment-scripts-in-ssms.html" title="Permanent link to Running Visual Studio 2010 Generated Deployment Scripts in SSMS"><img class="post_image alignnone frame" src="http://www.jonathanagardner.com/wp-content/uploads/2010/04/visual_studio_logo-full.png" width="214" height="32" alt="VisualStudioBoxShot" /></a>
</p><p>Previously we discussed how to use the <a href="http://www.jonathanagardner.com/technology/database-deployment-with-visual-studio-2010.html">Database Deployment</a> feature in Visual Studio 2010.  There are two options to deploy a database project.  The first is to have Visual Studio deploy the scripts automatically.  The second is to have Visual Studio build a deployment script that can be run via SQL Server Management Studio or SQLCMD.  Running a Visual Studio generated deployment script in Management Studio is not as strait forward as it would seem.</p>

<p>When Visual Studio connects to a database and runs its deployment script, it does so via SQLCMD.  This is seamless when a user wants to deploy his project directly through VS2010.  When VS2010 creates a deployment script, it generates a script that contains SQLCMD Variables.</p>

<h2>What are SQLCMD Variables</h2>

<p>SQLCMD Variables are simply scripting variables that give a script more flexibility.  The example in the <a href="http://msdn.microsoft.com/en-us/library/ms188714.aspx">Books Online</a> is when a script is developed to be run agains multiple servers, scripting variables are used.  Setting a scripting variable would allow the query to be run agains each server without the need to modify the query.  Other example of SQLCMD variables and the full syntax are available in the Books Online article mentioned above</p>

<h2>Running SSMS with SQLCMD Variables</h2>

<p>The .sql script that is generated by VS2010 contains SQLCMD variables.  Trying to run this via SSMS will generate &#8220;Incorrect syntax near &#8216;:&#8217;&#8221; errors.  Queries that contain SQLCMD variables can be run through SSMS by turning on the &#8216;Run with SQLCMD&#8217; option.  This option can be found in the Query menu as &#8216;SQLCMD Mode&#8217;.  This menu item is only visible if a query window is open and selected and allow queries that contain SQLCMD variables to be run in SSMS.</p>

<p><img src="/wp-content/uploads/2010/07/SQLCMD_Mode.jpg" alt="SQLCMD Mode Image" /></p>

<p>When the &#8216;Run with SQLCMD&#8217; is enabled the scripting variables will be highlighted in grey by default.  This color can be modified in the Fonts and Colors section of the options screen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/running-visual-studio-2010-generated-deployment-scripts-in-ssms.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Warnings, Warnings Everywhere: Database References in Visual Studio 2010</title>
		<link>http://www.jonathanagardner.com/technology/warnings-warnings-everywhere-database-references-in-visual-studio-2010.html</link>
		<comments>http://www.jonathanagardner.com/technology/warnings-warnings-everywhere-database-references-in-visual-studio-2010.html#comments</comments>
		<pubDate>Fri, 11 Jun 2010 16:09:29 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=929</guid>
		<description><![CDATA[In previous articles we discussed how database professionals could use the features in Visual Studio 2010. During the video I demonstrated with a test project. Since then I have been working to migrate my DBA database project into Visual Studio 2010. From the beginning I ran into issues. This was a very discouraging start to [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/warnings-warnings-everywhere-database-references-in-visual-studio-2010.html" title="Permanent link to Warnings, Warnings Everywhere: Database References in Visual Studio 2010"><img class="post_image alignnone frame" src="http://www.jonathanagardner.com/wp-content/uploads/2010/04/visual_studio_logo-full.png" width="214" height="32" alt="Visual Studio 2010 Logo" /></a>
</p><p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="445" height="364" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/WXwVyLtsXMM&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="445" height="364" src="http://www.youtube.com/v/WXwVyLtsXMM&amp;hl=en_US&amp;fs=1&amp;hd=1&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>

<p>In previous articles we discussed how database professionals could use the features in Visual Studio 2010.  During the video I demonstrated with a test project.  Since then I have been working to migrate my DBA database project into Visual Studio 2010.  From the beginning I ran into issues.  This was a very discouraging start to using Visual Studio 2010 for my projects.  There was a very simple fix and now we are moving right along.</p>

<p>One of the scripts that I deploy to all of my servers is Adam Machanic&#8217;s (<a href="http://sqlblog.com/blogs/adam%5Fmachanic/">Blog</a>|<a href="http://www.twitter.com/adammachanic">Twitter</a>) WhoIsActive.  I created a stored procedure and saved the script.  A few seconds later I saw 84 warnings show up on the Error List.  Something was amiss.  I have this script deployed into most of my environment and it works like a charm.  It was time to do a little research.</p>

<p><a href="http://www.jonathanagardner.com/wp-content/uploads/2010/06/ErrorList.jpg"><img class="alignnone size-thumbnail wp-image-931" title="ErrorList" src="http://www.jonathanagardner.com/wp-content/uploads/2010/06/ErrorList-150x150.jpg" alt="" width="150" height="150" /></a></p>

<p>The warnings all seemed to be due to some sort of missing reference.  The WhoIsActive script, like many DBA scripts, uses the [master] database heavily.  Visual Studio is parsing through the script and can&#8217;t find any of the items that the script is trying to reference, so it throws a warning.  The good news is that there is a very simple fix.</p>

<h2>Adding a Reference to master.dbschema</h2>

<p>Database projects are designed to be self contained.  When creating a database project, scripts typically will reference items within the same project.  Some scripts, however, will reference other database items.  In this case, the [master] database is referenced.  The master.dbschema file is not included in every project for performance reasons.  It contains a large number of objects that are unnecessary for many projects.</p>

<p>The default installation of Visual Studio 2010 includes dbschema for both the [master] and [msdb] databases.  There are separate schema SQL Server 2005 and 2008.  These files are located in the Visual Studio installation directory in the Extensions folder.  I am working on a SQL 2008 project so I will use the following folder:</p>

<p>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas</p>

<p>To add the database reference right click on the References folder in the Solutions Explorer and select Add Database Reference.  This will open the Add Database Reference window.  Add the master.dbschema by selecting browse and navigating to the folder that contains the appropriate schema for your project.  In my case, it was the folder listed above.  I accepted the defaults and clicked OK.  Saving the project will cause Visual Studio to parse the code again and resolve the reference errors.</p>

<p><img src="/wp-content/uploads/2010/06/SolutionsExplorerAddDBRef.jpg" alt="Solution Explorer" /></p>

<p><a href="http://www.jonathanagardner.com/wp-content/uploads/2010/06/AddDBRef.jpg"><img class="alignnone size-thumbnail wp-image-933" title="AddDBRef" src="http://www.jonathanagardner.com/wp-content/uploads/2010/06/AddDBRef-150x150.jpg" alt="" width="150" height="150" /></a></p>

<p>If no other references have been added, it can also be added from the References tab of the Project Properties page.  If the project already contains references this tab will show a list of the current references and no additional references can be added.</p>

<p>We are working up more articles and videos about Visual Studio 2010 and its features for Database professionals.  Do you have a specific topic you would like us to cover?  We would love to hear from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/warnings-warnings-everywhere-database-references-in-visual-studio-2010.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Database Deployment with Visual Studio 2010</title>
		<link>http://www.jonathanagardner.com/technology/database-deployment-with-visual-studio-2010.html</link>
		<comments>http://www.jonathanagardner.com/technology/database-deployment-with-visual-studio-2010.html#comments</comments>
		<pubDate>Thu, 27 May 2010 16:14:17 +0000</pubDate>
		<dc:creator>Jonathan</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.jonathanagardner.com/?p=876</guid>
		<description><![CDATA[I have been exploring some of the features of Visual Studio 2010 that are useful to DBAs and Database Developers. Today&#8217;s topic is Database Deployment. Software developers have been using the deployment tools in Visual Studio for some time, however, the addition of database deployment gives database professionals the ability to systematically deploy their projects [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.jonathanagardner.com/technology/database-deployment-with-visual-studio-2010.html" title="Permanent link to Database Deployment with Visual Studio 2010"><img class="post_image alignnone frame" src="http://www.microsoft.com/visualstudio/_base_v1/images/chrome/visual_studio_logo.png" width="214" height="32" alt="Microsoft Visual Studio " /></a>
</p><p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="298" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/_BNvgqGKzlM&amp;hl=en_US&amp;fs=1&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="298" src="http://www.youtube.com/v/_BNvgqGKzlM&amp;hl=en_US&amp;fs=1&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>

<p>I have been exploring some of the features of Visual Studio 2010 that are useful to DBAs and Database Developers.  Today&#8217;s topic is Database Deployment.  Software developers have been using the deployment tools in Visual Studio for some time, however, the addition of database deployment gives database professionals the ability to systematically deploy their projects to a multiple environments.</p>

<p>Every enviornment can be configured to have a different configuration.  For example, in my development environment I tell VS2010 to build the solution script and then deploy it to the server.  In my production environment I tightly control what and when scripts are deployed to the database.  When I am building the solution for my production environment I configure VS2010 to build the deployment script and put it into a folder.  This allows me to schedule the script to go into production when I choose.</p>

<p>We are going to walk through setting up a database project and configuring the project for deployment.  Open or create a database project.  Right click on the top of the project in the solution explorer, at the top of the explorer tree.  Select &#8216;Properties&#8217; from the menu.  This will open the project properties window.  The deploy tab of the project properties will allow us to configure the deploy settings.</p>

<p><img src="/wp-content/uploads/2010/05/tree.jpg" alt="alt text" /></p>

<p>There are three main settings that we will focus on.  The first is the configuration.  Configuration is the setting that allows us to change the behavior for different environments.  In this example project I have set the configuration to be debug.  The debug configuration is my test environment and where I want to allow VS2010 to automatically deploy the solution to the server automatically.</p>

<p>The second setting we are going to look at is the &#8216;Deploy Action&#8217;.  The default setting is &#8216;Create Deployment Script (.sql).  Leaving this set on the default means that a deployment .sql script will be crated but not deployed to my database.  This gives database professionals the flexibility to deploy the script via SSMS, scheduled job, etc.  In the case of my test environment I want to use &#8216;Create a deployment script (.sql) and deploy to the database&#8217;.  This will run the deployment script against my test environment every time I select deploy from the build menu.</p>

<p><a href="http://www.jonathanagardner.com/wp-content/uploads/2010/05/properties.jpg"><img class="alignnone size-medium wp-image-877" title="properties" src="http://www.jonathanagardner.com/wp-content/uploads/2010/05/properties-300x154.jpg" alt="" width="300" height="154" /></a></p>

<p>The final setting that I want to highlight is the Target Connection Setting.  This can be different with each configuration setting allowing me to connect to different SQL Servers and/or different databases for the environment I am deploying to.</p>

<p>What have your experiences with deployment in Visual Studio 2010.  We would love to hear about them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jonathanagardner.com/technology/database-deployment-with-visual-studio-2010.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

