SharePoint Notes

Bleeding on the cutting edge …

Archive for the ‘WSS’ Category

October 2009 Cumulative Update Packages available

Posted by Christian Dam on October 30, 2009

The product team announced the availability of the October 2009 Cumulative Update Packages for SharePoint Server 2007 and Windows SharePoint Services 3.0. More information here: http://blogs.msdn.com/sharepoint/archive/2009/10/29/october-2009-cumulative-update-packages-for-sharepoint-server-2007-and-windows-sharepoint-services-3-0.aspx

Posted in MOSS, WSS | Comments Off on October 2009 Cumulative Update Packages available

SharePoint and very large databases

Posted by Christian Dam on October 27, 2009

I got a very interesting call from a colleague the other day. He had a customer with content database which apparently was approaching 1TB! My colleague of course told the customer that it was not aligned with best practices and that it could cause problems down the road to which the customer replied with a smile: “Well, if that happens we just throw additional resources at the SQL Server. Thanks for playing, now leave me alone”

So, he called me:  “Does it sounds plausible? SQL Server 2005/2008 can support exabytes of data so what’s the problem?”

Well, I went to work and starting digging up some information. My main bibles SharePoint 2007 Best Practices and Inside SharePoint 2007 Administration both referred to Microsoft guidelines which recommend to limit the content databases to 100GB:

Limit content database size to enhance manageability

Plan for database sizing that will enhance manageability and performance of your environment.

  • In most circumstances, to enhance the performance of Office SharePoint Server 2007, we discourage the use of content databases larger than 100 GB. If your design requires a database larger than 100 GB, follow the guidance below: 
    • Use a single site collection for the data. 
    • Use a differential backup solution, such as SQL Server 2005 or Microsoft System Center Data Protection Manager, rather than the built-in backup and recovery tools. 
    • Test the server that is running SQL Server 2005 and the I/O subsystem before moving to a solution that depends on a 100-GB content database. 
  • Whenever possible, we strongly advise that you split content from a site collection that is approaching 100 GB into a new site collection in a separate content database to avoid performance or manageability issues. 
  • Limit content databases that contain multiple site collections to approximately 100 GB.

However, the recommendations didn’t say anything about why 100GB is the magic number. MVP Ben Curry even at one point said “100GB doesn’t seem very big anymore 🙂 If you need larger site collections, optimize SQL and rock on… “ 7-8 month later, Ben had thought it over once again and had come to another conclusion: “So, use your head when architecting databases/site collections and don’t smoke crack. I’ve even said you can have monster content databases in the past – I was wrong. The only way I would now architect large content databases would be for fairly static data that did not have a large collaborative user population.”

OK, so why is Ben advising us not to smoke crack? In other words, why are large content databases evil?

Obviously large databases makes it difficult to administer the databases and to maintain a realistic back/recovery plan due to the sheer amount of data:

  • backup and restore take a long time (normally 150GB can be backed up in a 4 hour window)
  • the SLA may be in jeopardy
  • it is difficult to periodically test and verify the backup/restore procedure
  • database attach is slow 
  • upgrading WSS/MOSS service packs will be slow
  • I am sure some custom code start to suffer as well

Note: the backup/restore timing issues normally doesn’t apply to those customers using SQL Mirroring or SQL log shipping.

Additionally – and probably at least as important: more data will lead to more SQL I/O which again lead to more locking and blocking on the SQL Server backend. All data in a site collection share the same table and if that table is blocked, access to all sites in the site collection is blocked! It is a normal SQL Server thing and as such it is not even visible in the event or trace logs.

Splitting up the content database can help overcome most of these problems and it is fortunately a relative simple thing to do. Here’s how to do it on WSS and MOSS.

Posted in Capacity Planning, MOSS, WSS | 1 Comment »

Microsoft Office Service Pack 2 now online

Posted by Christian Dam on April 28, 2009

Service pack 2 is now available. Find them here:

Posted in MOSS, WSS | Comments Off on Microsoft Office Service Pack 2 now online

Updating from MOSS SP1 to the Infrastructure Update

Posted by Christian Dam on January 10, 2009

I know, I know – the infrastructure update has been out for a long time, and there are probably a ton of posts out there explaining how to perform the upgrade – but one more will probably not hurt anyone 🙂

I was hoping to use the weekend getting some hands on experience implementing Kerberos for MOSS when I realized that my test farm didn’t have the infrastructure update installed yet and since it contains major improvements when dealing with kerberos, i quickly upgraded the farm:

I followed the same recepi as I did when upgrading to SP1:

  1. Download the infrastructure updates for both WSS and MOSS
  2. Install the WSS infrastructure update on all the servers in the farm. Do not run the Wizard at the end
  3. Install the MOSS infrastructure update on all servers in the farm. Again, do not run the Wizard at the end
  4. Run the Wizard on the server hosting the Central Administration Web Site
  5. Run the Wizard on the remaining servers in the farm one at a time
  6. Once all the servers are upgraded, verify in Central Administration that the version number is bumbed to 12.0.0.6318

On of the know issues is that the Alternate Access Mappings in certain scenarious are deleted, so be careful to check that as well

Posted in MOSS, WSS | Comments Off on Updating from MOSS SP1 to the Infrastructure Update

Solving a nasty restore problem (OWSTIMER issue)

Posted by Christian Dam on September 26, 2008

I am not a big fan of the built-in back/restore tool in SharePoint, but I am more or less forced to use it for the following reasons

  • some of the customers I work for are using it while they are getting to know SharePoint
  • Data Protection Manager 2007 is not perfect either – and not all customers are looking at tools like DocAve/AvePoint
  • even the guys in the newly released book Microsoft Office SharePoint 2007 Best Practices are saying good things about it, so who am I to argue 😉

Anyway, to help our customers getting started, I have written a script that fix some of the short commings in the built-in back/restore tool and am thus using it a a few customer sites. So far so good.

This week one the customers were testing the restore procedures and ran into the following problem which turned out to be very tricky to solve.

Restoring a web application with just one content database on a new farm using the “new configuration” restore method in Central Administration resulted in two errors:

  1. The web Application Restore reported “Object SharePoint <Web App name> failed in event Onrestore. For more information, see the error log located in the backup directory. SPUpdatedConcurrencyException: An update conflict has occurred, and you must re-try this action. The object SPWebApplication Name =<Web App name> Parent=SPWebService is being updated by <Domain\user>, in the OWSTIMER process, on machine <server>. View the tracing log for more information about the conflict.
  2. Object <new  database name> (previous name: <original database name>) failed in event OnPostRestore. For more information, see the error log located in the backup directory. SPException: Cannot attach database to Web application. Use the command line tool or Central Administration pages to attach the database manually to the proper Web Application.

Looking at the sprestore.log log file in the backup directory didn’t reveal any addition information, but the trace logs were very interesting! A lot of similat messages were logged:

09/25/2008 15:52:17.97 OWSTIMER.EXE (0x0860)  0x0868 Windows SharePoint Services   Timer  5uuf Monitorable The previous instance of the timer job <job>, id <id guid> for service <service guid> is still running, so the current instance will be skipped.  Consider increasing the interval between jobs.  

In fact over 23000 of these messages were logged every minut! On a farm that was practically with out any user activity. What is going on!?

Having googled extensively, I didn’t manage to come up with an explanation why this happened but I did find a well, let’s call is a workaround for lack of a better word.

SBS MVP Merv Porter describes in this thread how to make the messages go away.

  • Start SharePoint 3.0 Central Administration (you might have to pause the Windows SharePoint Timer service before you can actually get there -especially if you’re using a VPC – for whatever reason, OWSTIMER.EXE can easily soak up whatever CPU cycles you have…)
  • Go to Operations
  • Under Logging and Reporting, choose Diagnostic Logging
  • Under Event Throttling, choose All as the category (this may be unnecessary, as it could be the default, but judging by the amount oflogging, it probably isn’t)
  • Under Trace Log, set “Number of log files” to something reasonable – say, 5. You can leave “Number of minutes…” to be 30, unless you want those 5 files to be smaller in size. At the default rate, a 30 minute trace file in my case seems to be about 200MB.

Obviously, you should think twice before decreasing the logging levels in a production environment, but after I made these changes to the logging levels I was able to restore the the Web Application without any problems, and as a positive side effect my Hyper-V image was noticeably quicker!

Posted in MOSS, WSS | 6 Comments »

Best Practices Resource Center for SharePoint Server 2007

Posted by Christian Dam on September 1, 2008

Designing, implementing, and deploying SharePoint solutions can be fairly tricky with a lot of pitfalls to watch out for. Luckily, it is now a bit easier with the launch of the Best Practices Resource Center for SharePoint Server 2007 web site.

Check it out, it contains a lot of great information already! Currently it contains Best Practices for the following areas:

  • Operational Excellence
  • Team Collaboration Sites
  • Publishing Portals
  • Search
  • My Sites

Posted in MOSS, WSS | Comments Off on Best Practices Resource Center for SharePoint Server 2007

Quick Tip: Moving the Central Administration web site

Posted by Christian Dam on August 27, 2008

Normally, the advise is to use the SharePoint Product and Technologies Configuration Wizard to move the Central Administration web site. It works fine when both the new and old server are online. However, if the old server hosting Central Administration has crashed, moving the Central Administration web site to a new server using the Wizard often result in the incorrect references to the old Central Adminstration URL.

So, instead of using the wizard you can use the following commands:

On the old server (if it is available):

Psconfig -cmd adminvs -unprovision

On the new server:

Psconfig -cmd adminvs -provision -port <port> -windowsauthprovider onlyusentlm

Psconfig is located in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin – also known as the 12-hive.

Posted in MOSS, Quick Tips, WSS | 5 Comments »

Adding additional servers

Posted by Christian Dam on August 27, 2008

I have previously blogged about how to add additional servers into a server farm. However, since then adding additional servers can be tricky, especially with the different hotfixes, service packs, and infrastructure updates available. I recommend to bring the new server up to the same level as the existing servers before running the Wizard to join the server to the existing farm.

Today, I faced the task of adding a new server to an existing MOSS farm with SP1 and the infrastructure update installed. Here’s how I did it:

  1. Installed the operating system etc so it macthed the other servers in the farm
  2. Installed MOSS without running the Wizard at the end
  3. Applied MOSS/WSS SP1 without running the Wizard at the end (actually SP1 was slipstreamed into the MOSS installation)
  4. Applied the Infrastructure Update for WSS without running the Wizard at the end
  5. Applied the Infrastructure Update for MOSS
  6. Ran the Wizard to join the server to the existing farm

It worked for me. Anybody have different experiences?

In case you wonder which update packages you need there is a great list of post-SP1 update packages and version numbers here. You can find the version numbers of the existing farm through the Servers in Farm page in Central Administration.

Posted in MOSS, WSS | 2 Comments »

Quick Tip: Delete extended Web Application

Posted by Christian Dam on July 17, 2008

The extended web applications are not listed in the “normal” web application list and cannot be deleted through Delete Web Application in Central Administration.

Use this approach to delete the extended web apps:

  1. Start Central Administration
  2. Go to Application Management
  3. Click Remove SharePoint from IIS Web Site
  4. Select the web application that the extended web app was extended from
  5. Select which extention/zone to delete
  6. Keep or delete the IIS Web site
  7. Finally click OK

Posted in MOSS, Quick Tips, WSS | 11 Comments »

Quick Tip: Delete list items from a list

Posted by Christian Dam on July 2, 2008

It doesn’t seem there is a built-in way in MOSS/WSS to delete all list items from a list without deleting the entire list. A workaround is to save the list a a template without content, delete the list and recreate it using the template.

However, there is a gl-deletelistitem option in Gary’s STSADM Custom Extentions that can be used. It works well but it is rather slow so for large lists the template method may still be faster.

Posted in MOSS, Quick Tips, WSS | Comments Off on Quick Tip: Delete list items from a list