Monday, December 28, 2009

Governance: Capability Driven, Not Platform Driven

Although I have no survey or poll results to support this; I believe that the SharePoint community as a whole is putting more weight on the topic of governance as time moves forward. I am basing this on the number of blog posts, conference presentations, third party products, and research available on the Web. Microsoft even has made a SharePoint governance plan template (SharePoint Products and Technologies Governance Plan) available for download.

I have mixed emotions about some of the messaging in the community. I think the topic of governance has become so SharePoint-centered that the original intent of governance becomes lost. Taking a few steps back, I thought I might weigh-in on the subject.

When push comes to shove, SharePoint is simply a platform, a means to an end. It is a tool to facilitate a capability. If that capability happens to be information management, then SharePoint is providing the technical functionality required to make managing information better.

My take on governance planning is that an organization should first address the capability (e.g. information management) as a whole, and then develop a plan for it. Once that overarching effort is in motion, it should branch off into defining the policies, processes, and measures specifically addressing SharePoint.

The flaw I see in creating a governance plan starting with SharePoint platform is that too many questions and risks about the overall initiative of providing that information management capability exist. This flaw may be a symptom or an indicator of larger ailments in the organization such as a lack of clarity or a lack of sponsorship (or a lack of clarity within its sponsorship). The way I see it, if an executive management team is willing to embrace the idea of using the SharePoint platform, then it ought to be willing to accept and embrace the larger initiatives at hand; which is where governance should originate.

In conclusion, I think that in order to maintain long term credibility with the subject of governance planning, we in the SharePoint community should share more ideas about how to integrate SharePoint governance into existing corporate governance as well as how to properly originate governance where it does not already exist. And, in order to do this I think it requires stepping out of the world of SharePoint and taking a wholistic view of the organization and understanding the fundamental policies and processes at play, as well as understanding what is the underlying intent and purpose for which SharePoint is being deployed.

Friday, December 18, 2009

My Favorite Windows 7 Feature

For me, the most valuable enhancements to usability affect the basic things that I do the most often. This includes browsing folders and opening files. And, although, I do like to keep twelve or more windows open at one time, I do not like clutter.

For this reason, my favorite Windows 7 feature is the ability to right click on an open application and then click a shortcut to open another instance of that application.

2009 SQL Server Magazine Best SharePoint Product

I thought it might be interesting to note the SQL Server Magazine, 2009 Best SharePoint Product awards. Here they are:

2009 SQL Server Magazine Best SharePoint Product

Editor's Best

Gold: ControlPoint for SharePoint, Axceler, www.axceler.com
Silver: Professional Archive Manager, Metalogix,
Bronze: NearPoint for SharePoint, Mimosa Systems,

Community Choice

Gold: Site Administrator for SharePoint, Quest Software, http://www.quest.com/
Silver: Colligo Contributor Pro, Colligo Networks,
Bronze: CorasWorks Workplace Sutie 10, CorasWorks,


2009 SQL Server Magazine (2008, December). 2009 SQL Server Magazine Editor's Best and Community Choice Awards. SQL Server Magazine, pp. 12-19.

Thursday, December 17, 2009

Error: SQL Server Maintenance Plan, Database Backup Job


When executing a SQL Server maintenance plan, having a database backup job, an error occurs. The issue is that the SQL Server Agent service account does not have access to the backup folder. This happens more frequently on backup folders which exist on a separate server, such as a backup server.

1. First, navigate to SQL Server Management Studio > Maintenance Plans > Right click on maintenance plan > View History.

You might see something like this in the history:

"Action: Execute maintenance plan (full backup of all SQL databases). ErrorMessage: Execution failed: See the maintenance plan and SQL Server Agent job history for details. Additional Information: Job 'Backup SQL' failed. (SqlManagerUI)"

2. Next, navigate to the history log for the SQL Server Agent job:

SQL Server Management Studio > SQL Server Agent > Jobs > Right click on job > View History > Highlight the error > Click Export > Export a log file > Open the log file in a text editor

...and you might see entries like this:

"Reason for failure: " failed with the following error: "Cannot open backup device 'backup device name'. "
"Error information: Operating system error 5(Access is denied.)."


The solution to this is to configure the appropriate access for the SQL Server Agent service account on the folder security access control list and the folder sharing access control list.

However, the catch here is that you may need to add the service account directly to the access control list, as opposed to an AD group in which the user account belongs. In fact, I tested this by doing the steps below.

1. Deleted the maintenance plan and created it again.

2. Added the backup folder location, and clicked Next.

This brought up an error:

"Maintenance Plan Wizard: The Database Engine service could not resolve the specified folder location. Either the location does not exist, or the current login account does not have access to it. Verify that the folder exists, and that the login account has permissions on it."

3. Added the SQL Server Agent service account directly to the backup folder's access control lists for folder security and folder sharing. After doing this, the creation of the maintenance plan was successful.

Saturday, December 05, 2009

I Respectfully Disagree

As I was searching for some references for a risk management white paper that I am writing, I stumbled upon an old PowerPoint on the Web titled, "Risk Management and ROI: The IT Leadership Financial Conversation." It was created by Peter G. W. Keen of Delft University in Sepetember 2004. This PowerPoint was used to educate an IT Leadership community attending a CIO summit.

As I looked through the PowerPoint for some insight to use in my paper, I started finding statements such as:

"ROI from IT: There is none. There never will be." (Keen, 2004)
"ROMI not ROI: Return on Minimized Investment" (Keen, 2004)
"80% of IT costs are hidden below the surface - and a navigation threat" (Keen, 2004)

The more slides I viewed, the more I realized that I completely disagree with the intent of the message; essentially to encourage CIOs to view IT as a business liability which needs to be tightly controlled and driven primarily by its cost drivers.

I disagree because I think a better approach for CIOs to take is to understand the purpose of the technologies their teams are evaluating, understand the costs and benefits, and choose projects which support the objectives of the organization. Managing cost should be part of the decision making process, but it should not be the primary driver. When cost is measured, all aspects of cost should be included. And, the financial benefits of the project should also be measured and included.

The objective of Information Technology is to facilitate two very important capabilities for today's businesses:

1. Revenue generation
2. Business productivity (process efficiency)

Most leaders in the IT space generally understand the financial benefits of the IT projects they choose to pursue, but perhaps the IT industry as a whole generally does not place enough emphasis on methodologies and practices for measuring and translating these back to the financial statement. This would require more focus, analysis, calculation, and validation.

To be clear, I am not saying that all IT projects are sensible and they should be done blindly. However, what I am saying is that it is incorrect to characterize IT as a business function that shows no return on investment.

If you deploy a technology that allows people to attend meetings over the Web instead of traveling to another location, then your costs are those which are required to implement and maintain the technology while your savings are those which you do not spend to travel? Both sides of equation need to be considered, not just cost.

I also disagree with the claim that 80% of IT costs are hidden. I believe that if budgeting is done properly, most IT costs are completely visible and manageable. There are always some unforeseen costs with IT, but by learning from past experiences, it becomes possible to anticipate these variations.

In summary, I disagree with the PowerPoint. Information Technology can have a positive ROI, and costs can be manageable and predictable. I think the real problem is some organizations just don't know how to measure these things effectively.

Keen, P. (2004). The IT Leadership Financial Conversation. Retrieved December 5, 2009 from www.peterkeen.com/presentations/IT%20Risk%20Management.ppt.

Friday, November 20, 2009

Windows Server 2008: Active Directory Protection From Accidental Deletion


When you create an Organizational Unit (OU) or security group in Active Directory, there is checkbox titled, "Protect container from accidental deletion." If you create the object with this check box marked, then you have to follow special steps if you would like to delete that OU in the future.

If you attempt to delete the object while it is protected, then you will receive the error, "Active Directory Domain Services. You do not have sufficient privileges to delete object, or this object is protected from accidental deletion."


1. Open Active Directory Users and Computers.
2. Select the root domain, "company.domain.com."
3. From the menu bar, select "View" and "Advanced Features."
4. Navigate to the OU you would like to delete.
5. Right-click, properties.
6. Select the "Object" tab.
7. Uncheck the option, "Protect object from accidental deletion."
8. Now the object is no longer protected. You can proceed with deleting the object.

Thursday, November 19, 2009

SharePoint 3.0: Allowing SharePoint RSS Viewer Web Part to Read SharePoint RSS Feeds


SharePoint RSS Viewer Web Part does not display RSS feed from SharePoint list or library.

After configuring a SharePoint RSS Viewer Web Part to display an RSS feed from a SharePoint RSS list, you receive the error, "The RSS webpart does not support authenticated feeds."


Configure anonymous access on the list which is serving the RSS feed.

Enable anonymous access for the Web Application containing the list which is serving the RSS feed.
- Central Administration > Application Management > Application Security > Authentication Providers > Edit Authentication
Edit Authentication > Anonymous Access: Check "Enable anonymous access"
- Edit Authentication > Click "Save"

Enable anonymous access for the site collection containing the list which is serving the RSS feed.
- Site Collection > Site Actions > Site Settings Site Collection Settings > Advanced Permissions
- Advanced Permissions > Settings > Anonymous Access
- Change Anonymous Access Settings > Anonymous Access: Select "Lists and Libraries"

Enable anonymous access for the list which is serving the RSS feed.
- List > Settings > Permissions for this List > Settings > Anonymous Access
- Assign the "Read" or "View Only" permission level to the Anonymous User


Holmes, T. (2008). Enabling Anonymous Access in SharePoint 2007. Retrieved November 19, 2009 from http://blog.tylerholmes.com/2008/01/enabling-anonymous-access-in-sharepoint.html.

Monday, October 26, 2009

Back from SharePoint Conference 2009

I have returned home from ten days in Las Vegas NV where I attended the Microsoft SharePoint Conference 2009 at Mandalay Bay. I cannot say that I am happy to be home, especially since I have to clean up after myself again. I love throwing wet towels on the floor and then going out for the day so that I can return to the hotel room at the end of the day and the towels are magically clean and put away.

There were many highlights of the conference. The cocktail reception, the keynote, the sessions, the Huey Lewis & the News concert, catching up with old friends and meeting new ones.

The bottom line is SharePoint 2010 delivers!! It is going to be an awesome, next three years working with this generation of products and technologies. Things are moving full steam ahead.

I especially enjoyed the governance planning session by my friends, Susan Hanley and Scott Jamison.

Friday's full day workshop on SharePoint Server 2010 Installation and Upgrade Training by Shane Young and Todd Klindt from SharePoint911 was fantastic and informative. It was more fun than hanging out at House of Blues Foundation Room until 3:00am...almost.

Most of all I love the fact that I won all of my gambling money back at the craps table after I checked out on Saturday morning, as I was killing some time before the cab ride to the airport. I hit three point numbers and several hard ways. Folks were happy to be winning and I received an applause for the good shooting.

Thursday, September 17, 2009

Sunday, August 30, 2009

Migrating Internet Explorer Favorites and RSS Feeds

With Windows 7 releasing soon, it will be time to think about migrating user profile settings to a new operating system build.

Aside from file folders, and desktop files, you may have a bit of time invested in the Internet Explorer favorites and feeds. Even if it only saves a couple minutes of searching in the end, I thought it would be worthwhile to post locations of these items on a source Vista build.

C: (Operating System) \Documents and Settings\UserProfileName\Favorites

RSS Feeds:
C: (Operating System) \Documents and Settings\UserProfileName\AppData\Local\Microsoft\Feeds

Friday, August 21, 2009

SharePoint 3.0: Clarifying Check Out Status on Multiple Document Upload

I found a post on TechArchive.net, "Re: disabling check out on document library upload," in which the author was observing that multiple document uploads were resulting in status of "checked out" after uploading. The author cited a post of mine, "SharePoint V3: Achieving Checked-In Status When Uploading Mulitple Documents," and explained that the post didn't solve the issue.

So, I am posting the two possible reasons why, after uploading multiple documents to a document library, the uploaded documents have the status of "checked out."

1. Require check out is configured on the library

I did a test, configuring six document libraries, and then performed a multiple document upload. Here are the results:

Document library configurations resulting in "checked out" status when multiple documents are uploaded:

Require Check out + No Versioning
Require Check out + Major Versioning
Require Check out + Major and Minor Versioning

Document library configurations resulting in "checked in" status when multiple documents are uploaded:

No Require Checkout + No Versioning
No Require Check out + Major Versioning
No Require Check out + Major and Minor Versioning

2. The document library is configured with a required field. When the document upload completes, the field is not populated and the status for each of the uploaded documents is set to "checked out."

Monday, August 17, 2009

SharePoint 3.0: Custom Permission Levels

When planning site collection security models for SharePoint deployments, there is certainly a case for simplicity and sticking to the out of box permission levels. Doing this requires the least amount of thought, administrative effort, documentation, and training.

As an added benefit of sticking with the out of box, you can leverage many of the Web based training tutorials and end user, computer based training modules, that are available on the Web with since most of these instructional resources are based on out of box configurations.

Having said that, circumstances and business requirements can require something different than the out of box permission levels. For example, you might want to lock out SharePoint Designer from some users by configuring a permission level that excludes the "Use Remote Interfaces" permission. Or, you might want to prevent content contributors from being able to delete by excluding the "Delete Items" permission. In most cases, having thirty three distinct permissions allows enough flexibility to accommodate.

When I need to utilize custom permission levels, I put a good amount of effort into planning for these and ensure to be consistent with their names, descriptions, and definitions. Below is a sample matrix that I used for planning four custom permission levels, instead of using those which are out of box.

Friday, August 14, 2009

Publishing SharePoint Web Applications in ISA Server


This article assumes SharePoint Web applications are configured with NTLM Authentication, that multiple Web applications are being published outside a company's firewall, and ISA Server is being used as a firewall. The scenario described also assumes that a one set of Windows credentials has access to multiple SharePoint Web applications.


It is common for a SharePoint environment to include multiple Web Applications. Since each Web Application requires its own IIS Web site and may have its own IP address and host header, having mutliple Web applications does create some complexity and therefore requires some consideration.

It gets a bit more complicated when multiple Web applications need to be made accessible outside of a company's local network, such as an extranet or public internet scenario. In this case, firewall rules and NAT must be configured for each Web application to protect the organization and the application being published.

Then comes the user experience. Inside the network, client computers often times belong to the same domain as the SharePoint servers, or at least a trusted domain. Furthermore, the domain URLs are considered either "Local Intranet" or "Trusted" by the users' internet browser. In this environment, a user can navigate from Web application to Web application without receiving an authentication prompt. Life is good on the local network.

This all changes when Web applications are published outside the company's firewall. First, client computers accessing the sites no longer belong to the same domain as the SharePoint servers. Second, the users' browsers aren't configured to automatically log users into the Web applications. The challenge this creates for the user is if a contiguous user experience requires accessing multiple Web applications, the user is going to receive an authentication prompt for each application.


ISA Server allows Rules to share Listeners. What this means is that you can create one Listener and add multiple Web applications to that Listener. Then, you can create a Rule for each unique Web application, associating these Rules with the Listener.

The result of this is that users can access multiple, externally facing SharePoint Web applications, without requiring to authenticate to each one.

Monday, August 10, 2009

MSDN: Enterprise Search URL Syntax Reference

One of the most simple, yet powerful features of Microsoft SharePoint Search is the URL syntax. Using URL syntax you can submit a query to a search results page without requiring the use of a SharePoint search box. This means that search results can be rendered on a search results page any way that the proper URL string can be built.

For example, search queries may be submitted implicitly throughout the user experience as a user is navigating a SharePoint Web site. Hyperlinks (dynamic or static) containing search query parameters do all of the work.

The MSDN article, "Enterprise Search URL Syntax Reference, http://msdn.microsoft.com/en-us/library/aa637082.aspx," explains the proper format for submitting keywords, scope, view, and start page information through the query string.

Thursday, August 06, 2009

Microsoft's Position on Changing SharePoint Databases

I caught a Twitter message from a colleague, Mauro, today passing along a Microsoft Help and Support article which discusses Microsoft's position on database modifications for SharePoint Products. In short, the article breaks down to Microsoft doesn't support changes to SharePoint databases.

The article, "Support for changes to the databases that are used by Office server products and by Windows SharePoint Services (http://support.microsoft.com/default.aspx?scid=kb;EN-US;841057 )" includes a list of unsupported database changes, shown below:

" Examples of such database changes include, but are not limited to, the following:
  • Adding database triggers
  • Adding new indexes or changing existing indexes within tables
  • Adding, changing, or deleting any primary or foreign key relationships
  • Changing or deleting existing stored procedures
  • Adding new stored procedures
  • Adding, changing, or deleting any data in any table of any of the databases for the products that are listed in the "Applies to" section unless Microsoft protocol documentation is followed exactly
  • Adding, changing, or deleting any columns in any table of any of the databases for the products that are listed in the "Applies to" section
  • Making any modification to the database schema
  • Adding tables to any of the databases for the products that are listed in the "Applies to" section Changing the database collation "

This subject comes up rather frequently during discussions and as a proponent of SQL Server in general and especially its Business Intelligence features such as Reporting Services for extending the capabilities of SharePoint solutions, I feel compelled to chime in.

I completely understand Microsoft's position. How could a software company possibly support custom, schema changes or functional modifications to their application? They cannot. Nor can Microsoft really ensure their software will function (optimally) with any type of foreign database object running on the live databses, even a view.

However, accepting Microsoft's position doesn't change two things:

1. SharePoint information is business intelligence information and often times needs to extract, transform, load, and display in other places than its native content database.
2. Where there's a will there's a way.

Exploring some scenarios...

If you need to add custom functionality to your SharePoint environment, then you might build your own custom database with triggers, functions, sprocs and all, and then use a programmatic methods to move the data you need out of the SharePoint content databases and into your custom database. Then, use Web Parts to deliver the data and functionality from the custom database throughout the SharePoint Web sites. This does not overstep any of the guidelines listed in the article.

Secondly, T-SQL queries are some times necessary for reports when using the Object Model as an XML data source reaches limitations. If you need to integrate SharePoint data with other systems or for reports you can:

1. Create a database snapshot of the SharePoint content datbase (if you have SQL 2005 / 2008 Enterprise Edition)
2. U
se programmatic methods to move the data from the SharePoint content database into an intermediary database for abstraction purposes.
Move data into an existing data mart or data warehouse during regular intervals.

Any of these three approaches allows you to leverage Views. The benefits of compiling T-SQL queries as Views is that you can secure them, you can use them as data sources in SQL Reporting Services reports, and you can store them on the database where they are accessible, reusable, they get backed up with database backups, you can optimize query performance with Indexes, and querying Views performs better because you are not storing queries nor are you filtering or transforming data in the Web tier.

Tuesday, July 21, 2009

SharePoint 3.0: Unable to Activate SQL Server 2008 Reporting Services Add-in for SharePoint


The SQL Server 2008 Reporting Services Add-in for SharePoint is available for download at this location:

Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies

The downloads include a readme_rsaddin.htm file, which contains complete instructions for installing and configuring the Add-in.


After running the rsSharePoint_x64.msi (installer) file, the setup appears to have finished. However, by following steps in the readme_rsaddin.htm file for activating the Add-in features, it is not possible to activate the features.

The reason it is not possible to activate the features is because setup experienced an error and the user does not have permission to add the feature to the site collection.

Navigate to:
C:\Documents and Settings\SetupUser\Local Settings\TempOpen the log file, RS_SP.0.log

Within the log file, look for an error; for example:Activating feature to root site collection: https://centraladmin.domain.com******* User does not have permission to add feature to site collection: https://centraladmin.domain.com


To resolve this, either log in as a user that is a Site Collection Administrator on the Central Administration site collection or make the current user account a site collection Administrator by doing the following:

Navigate to Central Administration > Application Management > Site Collection Administrators.
Select the Central Administration site collection.

Add the desired user account as either primary or secondary site collection administrator for the site collection.

Once logged in as a Central Administration, Site Collection Administrator, run the rsSharePoint_x64.msi again, this time choosing the "Repair" option.

To verify the permission issue has been resolved, navigate to:
C:\Documents and Settings\nbisciotti\Local Settings\Temp

Open the log file, RS_SP.0.log

Within the log file, the entry should now read:
Activating feature to root site collection: https://centraladmin.domain.com
Activated feature for root site collection: https://centraladmin.domain.com

Next, navigate to Central Administration > Site Actions > Site Settings > Site Collection Administration > Site Collection Features

Activate the "Report Server Integration Feature"

Next, navigate to Central Administration > Application Management

The "Reporting Services" panel should now be available and visible. From here you can proceed with the SQL Server 2008 Reporting Services integration configuration.

Wednesday, July 01, 2009

SharePoint 3.0: Error: Access Denied When Activating Publishing Infrastructure, Site Collection Feature


When attempting to activate the "Office SharePoint Server Publishing Infrastructure" Site Collection Feature, an "Access Denied" error is presented.


* Start > Programs > Administrative Tools > IIS Manager
* Expand the Application Pools node, locate the application pool associated with the site collection that is experiencing an issue
* Right-Click the Application Pool and select "Properties"
* Select the "Identity" tab
* Note the user account

* Start > Programs > Microsoft Office Server > SharePoint 3.0 Central Administration
* Site Actions > Site Settings > Advanced Permissions
* Click "Groups"
* Click "Farm Administrators"
* New > Add Users
* Add Users: Type the name of the Application Pool Identity account
* Give Permission: Add users to a SharePoint group: Farm Administrators
* Add the Application Pool account to the Farm Administrators group
* Send E-Mail: Uncheck (you most likely do not want to send an email)
* Click OK

* Try again to activate the "Office SharePoint Server Publishing Infrastructure" Site Collection Feature


SharePoint - Access Denied When Enabling The Publishing Infrastructure Site Collection Feature http://www.sharepointblogs.com/george/archive/2009/03/24/sharepoint-access-denied-when-enabling-the-publishing-infrastructure-site-collection-feature.aspx

Tuesday, June 30, 2009

Office Word 2007: Change Orientation on Page within Document


Instructions for changing page orientation (portrait vs. landscape) on a single page of a document (as opposed to the entire document), in Word 2007.


Assuming for purposes of explanation that the entire Word document should be portrait, except one page within it should be landscape orientation:

1. Place cursor on the page prior to the one which will be formatted as landscape.
2. Along the ribbon, select "Page Layout," then "Breaks," then "Next Page."
3. Select "Page Layout," then "Orientation," then "Landscape." This will set all following pages to Landscape.
4. From here, set the following page back to portrait.


Changing Page Orientation Within a Document

SharePoint 3.0: Error: Your search cannot be completed...


Upon submitting a search query using an advanced search box, selecting more than one search scope checkbox from the advanced search web part, the corresponding search results page returns no results and instead returns the following errror:

"Your search cannot be completed because of a service error. Try your search again or contact your administrator for more information."

Further testing and attempts to isolate the issue resulted in finding out that one scope in particular seemed to be problematic. When this particular search scope was used in the search query, the results page would return an error. However, if this scope was not selected during the query, then the search results would display normally.


The problem scope, called "All Content," initially had the following scope rules:

* All Content, Include
* ContentSource = People, Exclude

The steps to resolve the issue are as follows:

1. Remove all existing scope rules
2. Create new scope rules to explicitly define each content source such as:
* ContentSource = Content Source 1, Include
* ContentSource = Content Source 2, Include
* ContentSource = Content Source 3, Include
* ContentSource = People, Exclude
3. Update scopes

Tuesday, May 19, 2009

SharePoint 3.0: Overcoming Upload Limits and Timeouts

The following instructions are recommended for overcoming out of box limitations related to uploading documents. These configurations are done once per web application and are not global changes.

1. Central Administration > Application Management > SharePoint Web Application Management > Web Application General Settings > Maximum Upload Size: Change to 2047 MB (Maximum)

2. Internet Information Services Manager > Web Site > Right-Click > Properties > Connections: Change Setting (e.g. 600 seconds)

3. Windows Explorer > Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Layouts\ > Web.Config

Replace This:

httpRuntime maxRequestLength="2097151"

With This:

httpRuntime executionTimeout="999999" maxRequestLength="2097151"

4. Web.Config Continued...

Replace This:

httpRuntime maxRequestLength="51200"

With This:

httpRuntime executionTimeout="999999" maxRequestLength="51200"

5. Windows Explorer > INET PUB\WWWRoot\VirtualDirectories\WebApplication\ > Web.Config

Add the snipet from http://support.microsoft.com/kb/944981%20BconfigSections between the "configSections" closing tag and the "SharePoint" opening tag (like Shane suggests in his post).


You cannot upload files that are larger than 28 MB on a Windows Server 2008-based computer that is running Windows SharePoint Services 3.0

Error message when you try to upload a large file to a document library on a Windows SharePoint Services 3.0 site: "Request timed out"

Windows Server 2008 WFE will not allow large file uploads

Monday, May 18, 2009

Got to love it...

SQL Server 2008: A Must Do Configuration for Resource Governor

Over the past few months, I have been upgrading numerous SharePoint environments to SQL Server 2008 and I have wrestled with system performance. Unless adjustments are made, SQL Server will attempt to consume more than its share of processor. I've seen this cause SharePoint web applications to freeze and become unusable.

A resource management measure for SQL Server 2008 which I consider to be crucial for SharePoint environments, is outlined below. These steps will limit SQL Server Management Studio and Query Analyzer to 25% processor utilization, and possibly preserve the usability of the SharePoint farm. I strongly recommend these steps for SharePoint environments using SQL Server 2008.

SQL Server 2008 Resource Governor

Steps take from TechNet article:
Integration of SQL Server 2008 and Office SharePoint Server 2007

1. Create a resource pool to limit CPU usage to 25 percent


2. Create a workload group for ad hoc queries and register it with the new resource pool

USING poolAdhoc;

3. Create a function that classifies Management Studio and Query Analyzer as members of the ad hoc group

SET @grp_name = 'groupAdhoc'
RETURN @grp_name

4. Register the new function with Resource Governor

WITH (CLASSIFIER_FUNCTION= dbo.adhocQueryClassifier);

5. Restart Resource Governor


Monday, May 04, 2009

FAST ESP Videos on YouTube

Want to view a demonstration of current and future capabilities of FAST ESP? Here are a couple YouTube videos that provide a great overview.

Fast ESP for SharePoint - 1 of 2

Fast ESP for SharePoint - 2 of 2

SharePoint 3.0: How to Crawl Case Sensitive URLs

By default, MOSS will not crawl URLs which are case sensitive. However, Microsoft Help and Support Article ID 932619 provides instructions for making a registry modification to the Index server which allows case sensitive URLs to be crawled.

Microsoft Help and Support Article ID 932619:
You cannot crawl case-sensitive Web content in SharePoint Server 2007

It is important to note that a content index reset is required. For this reason, this modification may require a maintenance window for production environments, especially large environments with lots of items in the content index that will need to be crawled again.

Like most system changes, it is a good idea to test this first in Development or QA environments, record the change, and then schedule a time to deploy it to production. The instructions are straightforward, however, the first time that I made the modification, the search service didn't start properly so I had to stop it and start it a second time. Then it was fine. Running through the steps in Development or QA first will allow you to work the kinks out.

Thursday, April 16, 2009

Windows Server 2008: IPV4 Weak Host Configuration

It is very common to have a Microsoft Office SharePoint Server (MOSS) farm that includes mutliple web applications, each having its own host name and ip address.

In fact, when SSL certificates are installed on the web server directly (i.e. not offloaded to the hardware load balancer), then there is a requirement to assign unique ip addresses for each web application in order to ensure that the web site bindings (ip address + host name + port) remain unique on the web server.

When a web server is multihomed like this, it is very important to consider and configure the approprate strong or weak host model, in order to ensure that the web server will behave properly. If this configuration is neglected or set incorrectly, then it will cause Windows services to fail, IP packets to be disgarded, and the web server to "break."

Here is an excellent article describing the strong and week host models:

TechNet: The Cable Guy: Strong and Weak Host Models by Joseph Davies

Returning to the subject of the multihomed MOSS web server; here are steps that may be followed to configure the IPV4 interface as "weak":

1. netsh interface ipv4 show interface
2. See the IDX number
3. netsh interface ipv4 set interface [IDX number] weakhostsend=enabled
4. netsh interface ipv4 set interface [IDX number] weakhostreceive=enabled

Sunday, April 12, 2009

SharePoint 3.0: Error: The Backup/Restore Job Failed


In this scenario, a full farm backup failed because the backup of the "SharedSearchIndex" failed.

Error: The backup/restore job failed. In order to rerun the backup/restore the timer job must be deleted from the Timer Job Definitions page. Failure Message: The backup job failed. For more information, see the error log that is located in the backup directory.

Central Administration > Operations (Tab) > Backup and Restore (Heading) > Backup and restore job status

Error: Object Shared Search Index failed in event OnBackupComplete. For more information, see the error log located in the backup directory. WebException: The current operation timed-out after 3600 seconds.

Central Administration > Operations (Tab) > Backup and Restore (Heading) > Backup and restore job status

Error: The Backup/Restore job has the status of "Failed"

Central Administration > Operations (Tab) > Global Configuration (Heading) > Timer job status


This issue may be caused by a timeout. To resolve this issue, there are a few steps. First, any time a SharePoint Backup/Restore job fails, you must delete the failed timer job definition, otherwise subsequent backup attempts will also fail.

Second, take an inventory of scheduled jobs that are running on the farm, including incremental crawl schedules, SharePoint backup scheduled tasks, and Enterprise Backup jobs (e.g. Symantec BackupExec, Networker, etc..). Measure how much time incremental crawls are taking to run. Also, measure how much time the backup is taking to run. Determine what time the backup job needs to start. Keep in mind that if an enterprise backup solution is backing up the SharePoint backup files, then the SharePoint backup should COMPLETE before the tape backup job begins.

If necessary, adjust the scheduled jobs so that the crawls are not interferring with the backup job.


1. Delete the Backup/Restore timer job definition.

Central Administration > Operations (Tab) > Global Configuration (Heading) > Timer job definition

2. Adjust the start time of the incremental crawl. Make sure the schedule is set up in a way that the incremental crawls complete at a time that is earlier than the start time of the scheduled task that runs the backup job.

For example, if the incremental crawl takes less than an hour to run, and the the backup job is scheduled to run at 8:00 PM, then schedule the last incremental crawl to occur at 7:00PM.

SSP Administration > Search (Heading) > Search Settings > Content sources and crawl schedulesContent Source > Edit > Crawl schedules

3. If necessary, adjust the start time of the scheduled task that runs the backup

Start > Settings > Control Panel > Scheduled Tasks

CBT Clips

One of the most challenging aspects of a SharePoint rollout is user adoption and user education. Organizing training sessions and brown bag lunch demonstrations are good ways to inform and educate users about SharePoint and how it is used in the organization.

However, ramping up several users on SharePoint at once requires that each person has some context for what they are learning. You can't always force this on people; force them to imagine working a certain way, role play to a point where the instruction actually makes sense.

For this reason, a successful user education strategy should include reference material that is easy to locate, easy to use and relevant. It should be easily accessible at the point in time when a user has a specific question while performing a task. The reference material should address the specific question at hand, and only that. Otherwise, the user will not be able to find the answer to their question and they will lose interest.

I have found CBT Clips to be a great solution for fulfilling this need. CBT Clips offers collections of very brief, to-the-point, computer based instruction videos. These are perfect for new users who just want to know how to upload a document, how check in/check out works, or how to use Outlook with SharePoint.

The price for a company wide license is very reasonable and I think that depending on the size of the organization, an investment may easily pay for itself.

Monday, April 06, 2009

MSSQL RS: Reference Items for Creating Datasource that Queries SharePoint List Items

Here are a couple, useful reference items to have when creating MSSQL Reporting Services datasources for querying SharePoint list item information:

1. The URL location of the list web service:


2. Sample syntax of an XML query to be used in the datasource:

SharePoint 3.0: Error: Access Denied, Search Crawl Log


You receive an error when attempting to run a crawl on a content source.

Shared Services Administration > Search Settings > Content Sources > Crawl Log:


"Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content. (The item was deleted because it was either not found or the crawler was denied access to it.)"


Aside from Alternate Access Mappings (AAM) issues, Content Access account permissions issues, and invalid credentials, this error may also appear if the "Loopback Check" is enabled.

Instructions for disabling the Loopback Check are included in Microsoft Support KB 89861.

KB 89681: You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or IIS 6

SharePoint 3.0: Error: Access Denied, Excel Web Access Web Part


Excel Web Access Web Part: Error:

"Access Denied. You do not have permission to open this file on Excel Services. Make sure that the file is in an Excel Services trusted location and that you have access to the file."


Besides permissions related issues, this error may also appear if you are attempting to display an Excel file that is stored in a separate web application where you have not enabled cross domain access.

To enable cross domain access for Excel Services, run the following command:

stsadm.exe -o set-ecssecurity -ssp SSPNAME -allowcrossdomainaccess true

SharePoint 3.0: Pointing Excel Web Access at a Separate Web Application

There is an additional, configuration step required to display an Excel file stored in a different SharePoint web applications from the location where the Excel Web Access web part is being used. The instructions below explain how to set this up.

Locate an Excel file you would like to display in Excel Web Access. For this example, the Excel file is called, stoplight.xlsx. It is stored in a document library at http://sample1portal.domain.com/excelfiles_site/excelfiles_library/

Verify that the intended audience has permission to view the file.

Verify that Excel File location is trusted by Excel Services.

If you have not done so previously, run the following command:

stsadm.exe -o set-ecssecurity -ssp -SSPNAME -allowcrossdomainaccess true

Add the Excel Web Access web part to a page to display stoplight.xslx. Since you have enabled cross domain access, it will now display regardless if the Excel file is part of the same web application as the Excel file, or in a different web application.

In this example, I am displaying the Excel Web Access Web Part on a sub site of http://sample2portal.domain.com although the Excel file is being stored on http://sample1portal.domain.com.

Tuesday, March 31, 2009

FAST ESP: Fast ESP 5.3 for Windows, 32 Bit Only

FAST ESP 5.3 for Windows is only available in 32 bit. However, the software can be installed on either 32 Bit or 64 Bit versions of the Windows operating system.

Consequently, prior to installing FAST ESP, you must install the 32 Bit versions of Java SE Runtime (JRE) and Java SE Development Kit (JDK): http://java.sun.com/javase/downloads/index.jsp.

Saturday, March 28, 2009

Links: MS SQL Server Reporting Services Add-In for MOSS

Here are the links for downloading:

Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies:

Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint Technologies:

Friday, March 27, 2009

Taking Cloud Platform Services Seriously

(Perspective from early 2009)

Based on conversations with colleagues and clients, I still don't think that the majority of long term, enterprise architecture strategies even consider Cloud Platform Services (referring to PAAS)...but I think this strategy may eventually become mainstream.

Despite the fact that the cost of hosting systems on-premises is reducing with time due to improved virtualization and management technologies, I think that in the not too distant future, there will be a point when the costs and risks of serving up certain types of applications in house will actually be greater than any compromise made by moving the same systems to a PAAS, cloud based platform.

The biggest drawbacks I see with PAAS are:
1. Perceived loss of security controls at the infrastructure level.
2. Perceived loss of control over infrastructure configurations.
3. Vendor lock-in.
4. Vendor price gouging.
5. WAN/Bandwidth limitations.

Despite the risks, I do think that visionaries are beginning to consider PAAS for certain aspects of their computing environment road map. I'm just not sure how much longer it will take before this approach is generally accepted and considered mainstream.

Where is the FAST Search Community?

I am truly excited about Microsoft's acquisition of FAST Search as well as the recent news about Microsoft's new Enterprise Search road map. Anyone who has deployed Microsoft Office SharePoint Server (MOSS) as an Enterprise Search solution or internet facing solution probably can appreciate all of the considerations that go into planning and implementing as well as some of the limitations that force you to think outside the box.

Prior to becoming proficient in MOSS Search, and prior to doing numerous Search Proof of Concepts on behalf of Microsoft, I spent quite a bit of time locked inside of a small office in the North End of Boston, researching, building and testing MOSS Search on a Microsoft VM. My primary sources of information included TechNet webcasts, blogs, Codeplex, MSDN articles, and the Microsoft Partner Support contacts. I've come to really appreciate the abundance of free flowing ideas and information that exists on the Web related to MOSS. The community is fantastic.

As I embark on new and exciting adventures working with FAST ESP, I am certain that the MOSS community will continue to contribute high quality information and will eventually expand to cover more topics related to FAST ESP. As of now, I don't see the same level of knowledge sharing occurring with FAST as I have seen with MOSS. I only hope that in response to Microsoft's acquisition of FAST as well as their reasonable product licensing model, that FAST will become more widely adopted and that a FAST Search community will flourish on the Web.

Tuesday, March 24, 2009

Firefox Automatic Logon


Configuring automatic logon for Firefox, for Microft Office SharePoint Server (MOSS) URLs


Open Firefox

Address Bar: Type about:config
When prompted for a warning, click "I'll be careful I promise"

About:config > Preference Name > network.automatic-ntlm-auth.trusted-uris
Right-click and "Modify"

Entering String Value Dialog Box
Type the URL addresses of the SharePoint web applications (use comma to separate multiple addresses)
https://portal.domain.com, https://search.domain.com
Click "OK"

For information about more advanced Firefox/MOSS integration, read Mauro's recent blog post:
SharePoint/Office Integration with Firefox

Tuesday, March 17, 2009

SQL Server: How to Change the Default Database Location


Instructions for changing the default Database locations.


1. Open SQL Server Management Studio

2. Right Click on the SQL Server Instance node > Properties

3. Navigate to the "Database Settings" menu

4. Modify the "Database default locations"

5. Restart the following Windows Service:


6. Create a new test database to verify that it is being created in the new, default location

SharePoint 3.0: How to Move SQL Database Files, Transaction Log Files to Different Disk Location


Instructions for moving database files (mdf) and transaction log files (ldf) to a different disk drive on the database server, in a MOSS 2007 server farm.


1. Perform the necessary capacity planning analyses and tasks to ensure that the future configuration will perform and scale for growth.

2. Schedule a maintenance window to allow for enough time to perform the configuration changes and test the SharePoint portal after the changes are complete. Communicate the maintenance window appropriately to the business users.

3. Create folders on the destination disk drive for storing the files. If the servers are physical, consider storing the transaction log files on a separate physical disk from the database files, to maximize performance. If the servers are virtual, understand the disk configuration of the underlying servers to ensure considerations including disk performance, contention, scalability, and snapshots.

In this example, D:\MSSQL_Data is the destination of data files, and D:\MSSQL_TLogs is the destination of transaction log files.

4. On the MOSS web front end servers and the Index server, stop the following Windows Services:

WWW Publishing Service
Windows SharePoint Administration
Windows SharePoint Search
Windows SharePoint Timer
Windows SharePoint Tracing
Windows SharePoint VSS Writer
Office SharePoint Search

5. For each database that is being moved, run the SQL Commands below to take the database offline

SQL Server Management Studio > New Query

6. Using Windows Explorer, physically copy the mdf and ldf files of the databases to their new location.

7. Run the SQL Commands below to update the physical location of the database files

SQL Server Management Studio > New Query
USE master;
ALTER DATABASE MOSS_ContentDatabaseMODIFY FILE (NAME = MOSS_ContentDatabase, FILENAME = 'D:\MSSQL_Data\MOSS_ContentDatabase.mdf');
ALTER DATABASE MOSS_ContentDatabaseMODIFY FILE (NAME = MOSS_ContentDatabase_log, FILENAME = 'D:\MSSQL_TLogs\MOSS_ContentDatabase_log.ldf');

8. Verify that the updated location has been properly set for each database by running the command below:

SQL Server Management Studio > New Query
USE master;
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('MOSS_ContentDatabase');

Monday, January 19, 2009

SharePoint 3.0: Is the Installation 32 bit or 64 bit?

If you have an installation of Microsoft Office SharePoint Server 2007 and you are trying to determine whether it is 32 bit or 64 bit, here are a couple ways you can do it:

* Task Manager; OWSTIMER.EXE
64 bit: OWSTIMER.EXE if it is 64 bit
32 bit: OWSTIMER32.EXE if it is 32 bit

* Windows Explorer; Program Files
64 bit: Installation directory is \Program files\common files\microsoft shared\web server extensions\12\
32 bit: Installation directory is \Program files (x86)\common files\microsoft shared\web server extensions\12\

Friday, January 09, 2009

Event: Focus On Series: Optimize Your SharePoint Investment

On Tuesday, Feburary 24, 2009 I will be presenting at an event sponsored by Vitale Caturano. For more information or to register, please follow this link: http://www.vitale.com/sharepoint

Blog Archive