SharePoint 2010 Upgrade Tips and Dreaded User Profile Synchronization Service Stuck on Starting…

SharePoint 2010 Upgrade Tips:

I have been working with SharePoint since way back in 2000 when I started at Microsoft, with every release of the product the upgrade process has been getting easier. If you are upgrading only content databases, no significant customizations are detected, and are not planning on upgrading MySites then upgrading SP2007 to SP2010 is very straight-forward using the database attach method, virtually bullet-proof from  my experience over a multitude of SP2010 upgrades both small and large. If however significant customizations are detected (covering in more detail in subsequent post) have been deployed and/or you are upgrading MySites (focus of this post) then a successful migration requires a solid assessment and planning to limit impact to the business. I always strive to limit the impact of the upgrade on the business keeping the production upgrade in as short of a window as possible: “Everyone leaves on Friday with SP2007 and comes in on Monday with SP2010″:)   To that end sharing a few of the lessons learned during recent SharePoint 2010 upgrades for those of you in the planning stages of an upgrade.  Not a comprehensive guide, for a more comprehensive list of upgrade planning steps the place to start is the SharePoint 2010 Upgrade documentation on TechNet.

Tip #1: Perform Database Attach as the upgrade approach: Database attach is the best upgrade approach providing you put the necessary time into planning the upgrade including planning for several test upgrades particularly if you are upgrading MySites as well. Also provides a viable rollback plan if production upgrade fails-reset the databases to read/write while you address upgrade issues and schedule another pass-live to fight another day:)

Tip #2: Perform Test Upgrades and document results: Always perform test upgrades on a virtual machine in advance of production upgrade to resolve issues and verify a successful upgrade path.

  • Document: Document successful  upgrade path based on test upgrades, including environment variables and PowerShell  scripts with the assumption you could follow step-by-step on production      upgrade. Great documentation to provide IT for future reference as a runbook.
  • Test on production hardware and configuration: Consider a test upgrade pass on the new SP2010 production environment prior to actual production upgrade to identify and address environment variables prior to actual production      upgrade weekend i.e. web part caching issues in production environment  where NLB is configured, web.config modifications, SMTP out-bound and  in-bound email,  Alternate Access Mappings, IIS Bindings, all general configurations. You do not want to address these during actual production upgrade for release!
  • Hint: Plan for available free disk space of 3-times the size of the content database or  user profile database you are planning to upgrade. When upgrading a database exceeding 100GB expect the upgrade process to take some time. I was upgrading a content database of 100GB in one scenario and noticed the upgrade progress stayed at .30% complete for some time, after a duration of 2 hours it eventually upgraded so don’t end the process too soon. Monitor the SharePoint upgrade log file if you suspect it’s taking too long.

Tip #3: Provide adequate time to identify and address customizations:

  • STSADM Pre-Upgrade Checker and PowerShell Test-SPContentDatabase are  required. If you are not familiar with STSADM already then could be rough going:) Overall, being proficient in PowerShell is a pre-requisite skill  for SharePoint 2010 upgrade.
  • Consider how best to deal with the Fab 40 templates and provide ample time if you need  to provide support in SP2010 for existing Fab 40 sites.
  • Determine the need to upgrade InfoPath form administrator templates in Central Administration Form Template Library as these may have to be upgraded manually and there could be custom dlls that need to be migrated as well.
  • Plan for addressing custom applications, services, and custom and/or third-party web-parts.
  • Transfer the customizations into the test upgrade environment and test thoroughly.
  • Consider transferring customizations you plan to keep to production environment prior to actual production upgrade and test against production environment to eliminate environmental variables to address during production upgrade i.e. web part caching issues in environment where NLB is configured, web.config modifications, SMTP out-bound and in-bound email, Alternate Access Mappings, IIS Bindings, and all general configurations.

Tip #4: MySite Upgrades:

  • For MySite upgrades do not forget to create or upgrade the MySite host and set MySite      host URL in Profile Service Application prior to upgrading MySites.
  • Create a new web application to host MySites when possible,  I have found no issues with deploying a new site collection for the MySite host rather than upgrading the SP2007 MySite host with the exception of scenario where the MySite host was originally created in the default web application on port 80. Recommend hosting the MySites site collections as part of a separate web application providing a level of isolation for MySites.
  • Use PowerShell to upgrade MySite SSP and provision UPS application pool etc. Ensure you reference the correct Shared Services Database typically SharedServicesDB etc. rather than the MySite content database when activating User Profile Service Application.

Tip #5: Plan to address the Dreaded User Profile Synchronization Service not starting… You have successfully upgraded your content databases via the recommended database attach upgrade and proceeded to the MySite upgrade process. After completing the upgrade of the profile db following the steps on TechNet to the letter and in preparation had reviewed the UPS Architecture when you advance to the step to configure your profile service application settings i.e. to set the MySite host link SharePoint on the Profile Service Application management link it returns an error page instead of the expected  administration page. Potential cause: the user profile synchronization service is not started.  On more than one occasion I noticed the profile synchronization service was stuck on starting in the manage services administration page for more than 10 minutes after provisioning and activating the UPS and until the service is started you will not be able to access the manage profile service application page.

Resolution: There have been many posts dedicated to resolving the profile sync stuck on starting. Here is one of my favorites http://www.harbar.net/articles/sp2010ups2.aspx that includes significant detail and troubleshooting steps.  TechNet article http://technet.microsoft.com/en-us/library/gg750253.aspx   Recommend reviewing these posts in cases where following the steps I outline below are not successful. There are cases where permissions have not been set properly in AD, NetBIOS issue, or security access issues with the FIM Services themselves that will require access to both SharePoint, SQL, and Active Directory to resolve.  In such cases I involve IT Admin/IT Services team and in some cases contacting Microsoft support. In one case with MS support assistance uncovered changes made to the AD containers were causing synchronization errors.

Quick steps to try before getting too deep into the weeds that has worked for me over the course of several SP2010 Upgrades.

  • Ensure you have installed SharePoint latest SharePoint 2010 cumulative updates http://technet.microsoft.com/en-us/office/sharepointserver/bb735839
  • Ensure the ForeFront Identity Management Services are enabled and set to manual start and configure to run under your service account. DO NOT START YOURSELF-the user profile service will attempt to configure and start these services automatically.
  • Start the Profile Service application from Central Administration (in addition to the Profile Synchronization Service)
  • Reboot the SharePoint server.
  • Verify FIM  services are started. Hint: You can view FIM services in action using the FIM Client located at C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\miisclient.exe
  • Verify the Profile Synchronization Service and User Profile Service status are both reporting as ”Started” and no longer “Starting”
  • If the Profile Synchronization Service status is still stuck on starting, try setting the FIM Services to “Automatic-Delayed Start” then Reboot once more.
  • At this point your profile synchronization service status should be reporting as started, review errors in event log, and if successful you will be able to access the Profile Sync Settings page and verify the user profiles have been successfully imported, configure your MySite settings etc.
  • Hint: Do not be shy about deleting the UPS application and re-activating using PowerShell from scratch once more to ensure all configurations are correct.
  • Consider turning off the SMTP service to disable email during user profile upgrade to avoid emails being sent out to Managers from the MySite Cleaner Timer Job.

Summary:

Performing database attach upgrade is a great approach for planning an upgrade that limits the overall impact to the business and provides best roll-back plan. Plan for several test upgrade passes to get to a successful upgrade pass, particularly if upgrading customizations and/or MySites. Document the test results as part of a step-by-step upgrade guide that includes each step, environmental variables i.e. server names, service accounts, database names, general configurations, list of customizations, and accompanying PowerShell scripts will help make the actual production upgrade go smoothly.  Also consider the additional step of performing a test upgrade on the planned production environment to identify and address environmental variables early. Plan out the production upgrade tasks, activities day by day, including all tasks, resources, and estimated time necessary for copying databases from production, estimate for performing database upgrade, and allocated time/resources for performing post-upgrade testing.

Most importantly, bring coffee.

Rod Stagg
SharePoint Practice Manager and Architect http://www.rstagg.com

SharePoint Intelligence Conference Bellevue KeyNote Take Aways

In Bellevue for the conference, key takeaways from keynote.

Self service BI tools are compelling in SharePoint 2010 in conjunction with SharePoint SQL Server 2008 R2 and upcoming SQL Server 2012.
Adoption of SharePoint is being driven by organizatizations seeking a unified Infrastructure reducing impact to IT freeing time for strategic initiatives

LINQ and integrated Voice Messaging worth looking into, shows presence in SharePoint 2010 and an interesting feature in Outlook that summarizes cm in text and search.

Unified Communications offer potential ROI opportunities.

 

Tips/Tricks: EndUserSharePoint.com moved on to NothingButSharePoint.com

Mark Miller announced  Dec 10, 2010 the closing of endusersharepoint.com but good news is the new NothingButSharePoint.com launch from Mark Miller, Jeremy Thake, and Joel Oleson with sections for End User, Developer, and IT Pro.

This is wrong…so wrong.

Cool pic from http://jalopnik.com/5715603/this-is-why-you-park-your-ferrari-in-a-garage 

Holiday Gift SharePoint to help others during the holidays

Using SharePoint to help others during the holidays

For the past several years, our employees have helped make the holidays very happy for many local children.  Because of thier thoughtfulness and generosity, these children woke up to presents and a wonderful Holiday Season.   Last year you helped a homeless family of six move into an apartment for the holidays – and if that wasn’t enough, fulfilled the kid’s wish lists! 

Again, this year we have a wonderful family who is going through some hard times.  A single mom with four children who works full time but struggles to make ends meet.  Last year, she was only able to get a few gifts for the youngest child.  We thought it be great if we could make this holiday a good one for all of them and knew this family would appreciate any help we can offer.  

This year we have a Holiday Gift SharePoint!

How SharePoint can help:
In previous years we sent out an email similiar to the above.  Thanks to the generousity of our employees many of the gifts came in time for the holidays, some even 2 or 3 times! 

Preventing duplicate gifts:
This year we wondered if we could provide the holidays wish list that could work much like a wedding registry preventing duplicated gifts.  When employees purhase a gift, they could go to the list and mark off that it is fulfilled. 
 
In SharePoint this turned out to be easy and fast to implement: 
  1. Create a custom list to store the holiday gift wish list items.
  2. Add fields for a picture of the gift, title, family member, and check-off field.
  3. Populate list with gift items.
  4. Create a new site page and add the gift list as a web-part to the page.
  5. Configure the list view to enable inline editing.
  6. Add content explaining how to view and select items from the list.
  7. Optional: Create a SharePoint Designer Workflow to automatically send out a thank you email.

Increasing Participation:

To increase participation we made the SharePoint accessible to more employees and also partners by enabling claims-based authentication and providing access through the firewall. 

Happy Holidays!

Configure Dataview Webpart to display results from a centralized list regardless of what site level

If you need to deploy a customized dataview web-part (customized in SharePoint Designer) across multiple sites within a site collection this may be a good option particularly if you want each instance of the dataview web-part to query and render the data from a single list.  Useful anytime you want to store the data in a centralized location, customize the dataview web-part in SharePoint Designer, and upload to the web-part gallery for use on any subsite.    Applies to SharePoint 2010 and SharePoint 2007 and WSS as well. 

Steps:

1) Convert your dataview web-part to XSLT in SharePoint Designer

2) Locate the SharePoint:SPDataSource control in code view

3) Locate the SelectCommand section and add the webs scope to your dataview web-parts SelectCommand directly preceding the select query:

SelectCommand=”<Webs Scope=’Recursive’></Webs>&lt;View&gt;&lt;Query&gt;&lt;OrderBy&gt;&lt;FieldRef Name=&quot;Order&quot;/&gt;&lt;/OrderBy&gt;&lt;/Query&gt;&lt;/View&gt;”

4) Add or Modify the WebUrl parameter in your <SelectParameters> section of the datasource ontolr and update the DefaultValue to {sitecollectionroot}:

<asp:Parameter Name=”WebUrl” DefaultValue= “{sitecollectionroot} “/>

5) Save the page, open in browser and export dataview web-part to your computer.

6) From Site Action, Site Settings select the link to the webpart gallery and upload the web-part to the web part gallery or Import the web-part on any site page.

Exporting/Importing SharePoint webparts 

http://office.microsoft.com/en-us/sharepoint-server-help/manage-and-share-web-parts-and-web-part-pages-HA010024106.aspx#BM4

Have fun.

Rod

<SharePoint:SPDataSource runat=”server” DataSourceMode=”List” SelectCommand=”<Webs Scope=’Recursive’></Webs>&lt;View&gt;&lt;Query&gt;&lt;OrderBy&gt;&lt;FieldRef Name=&quot;Order&quot;/&gt;&lt;/OrderBy&gt;&lt;/Query&gt;&lt;/View&gt;” UseInternalName=”True” IncludeHidden=”True” ID=”datasource1″><SelectParameters><asp:Parameter DefaultValue=”{5942043E-EC50-41A2-8A06-513CA392FE65}” Name=”ListID”></asp:Parameter><asp:QueryStringParameter QueryStringField=”RootFolder” Name=”RootFolder” Type=”String”></asp:QueryStringParameter><asp:Parameter DefaultValue=”0″ Name=”StartRowIndex”></asp:Parameter><asp:Parameter DefaultValue=”0″ Name=”nextpagedata”></asp:Parameter><asp:Parameter DefaultValue=”100″ Name=”MaximumRows”></asp:Parameter><asp:Parameter Name=”WebUrl” DefaultValue=”{sitecollectionroot}”/>
</SelectParameters><UpdateParameters><asp:Parameter DefaultValue=”{5942043E-EC50-41A2-8A06-513CA392FE65}” Name=”ListID”></asp:Parameter>
</UpdateParameters><InsertParameters><asp:Parameter DefaultValue=”{5942043E-EC50-41A2-8A06-513CA392FE65}” Name=”ListID”></asp:Parameter>
</InsertParameters><DeleteParameters><asp:Parameter DefaultValue=”{5942043E-EC50-41A2-8A06-513CA392FE65}” Name=”ListID”></asp:Parameter>
</DeleteParameters>
</SharePoint:SPDataSource>

Another SharePoint Guru born:)

Jordan

Does FaceBook flavor of social networking work in the enterprise?

Interesting post by Johns Brunswick, Senior Consultant for Oracle Corporation:

http://aiimcommunities.org/e20/blog/you-dont-want-facebook-enterprise

How to bulk upload and synchronize data into SharePoint using the Excel Add-in and SharePoint Designer Workflows

Overview
Provide the ability for selected individuals who need to continue to maintain data in Excel and also share the data with users via SharePoint taking advantage of all SharePoint’s built-in features for lists. 

This solution provides the ability for Excel users to select data stored in their Excel spreadsheet and synchronize the data to a custom SharePoint list eliminating the sometimes redundant and time-consuming process of entering each item individually.

Screenshot from a table in Excel spreadsheet:

TableSyncSharePointContextSmall syncSharePointContextSmall

This scenario is part of an overall solution that takes advantage of SharePoint’s out-of-the-box features including SharePoint Designer workflows and custom lists to provide an online database for event tracking, a database of subject matter experts, workflow processes for resourcing, and incorporating scoring data imported from pre-populated reports downloaded in Excel format.  
In addition the solution uses the new document sets in SharePoint 2010 to allow user to upload and share supporting files and tag supporting files at a folder level eliminating redundant input.

Configuring SharePoint

  • Create a new custom list to serve as a public list that will display the data to end-users.
  • Create a new custom list to serve as an import list supporting the import workflow process.  This list is created directly from the Excel spreadsheet using the Excel Add-in’s Publish and allow Sync command (more later on this).
  • Create a new site column named BulkImportID and that will be added to both the Import List and Public list.  
  • Create a new SharePoint Designer workflow to handle the import process.  Set the workflow to execute when a new item is added to the Import List. 
  • Add logic to the workflow detect whether a new item should be added or whether the item has been previously added to the public list requiring only an update to the list item.  The purpose of the BulkImportID is to be used to evaluate the workflow condition.
  • Using the create item function in the workflow populate the public list with the appropriate values from each newly added item in the import list and set the BulkImportID for each added list item. Delete each list item in the import list using the Delete Item function when the workflow has succeeded for the item.

Installing and Configuring the Excel Add-in

  • Install the Excel Add-in to the user’s desktop or laptop (individuals contributing data to the system) This provides the mechanism to synchronize the data from the user’s Excel spreadsheet to the Import List in SharePoint.
  • Save the spreadsheet as Excel 2003-2007 format as described in the Excel Add-in configuration instructions.  You can also create a copy of the original to support the import process to maintain the original’s advanced features.   
  • Configure the Excel spreadsheet for the Excel Add-in on the Excel spreadsheet by completing the configuration steps.  Create a new table in Excel with your data and use the Publish and allow sync command to deploy your Import List for the first time.  Optionally add a new worksheet to each spreadsheet where the  user can copy in the specific data they need to import to SharePoint preserving the source worksheets.

Advantages

  • Users can continue to use their Excel spreadsheets for advanced computations, offline access, and custom formatting while also being able to share the data via SharePoint. 
  • Users can bulk-import pre-populated spreadsheets and reports provided by other systems into SharePoint. 
  • Custom filtered views including progressive filtering can be created and shared via SharePoint not provided in Excel auto-filtering. 
  • SharePoint Designer workflows provide a non-code mechanism to both import new items into the Public List and also detecting existing items for performing updates.   

Using the Excel Add-in:

publishAndSyncToolBarSmall

Deploy Excel Add-in to selected users who will be importing data from Excel to SharePoint

Brief Description This add-in works with Excel 2007 to allow you to synchronize data in a table with a list on a SharePoint site.

Download from MSDN http://www.microsoft.com/downloads/details.aspx?FamilyId=25836E52-1892-4E17-AC08-5DF13CFC5295&displaylang=en

Configure Excel spreadsheets for Publishing and Synchronizing Excel 2007 Tables to SharePoint Lists

Summary: In Microsoft Office Excel 2007, the ability to synchronize the data between a table and a list in Microsoft Windows SharePoint Services is deprecated. This article describes an add-in that enables you to update the information in a SharePoint list from Excel 2007.

Configuration Instructions
http://msdn.microsoft.com/en-us/library/bb462636(office.11).aspx#Office2007SynchronizeSharePointListfromExcel_Synchronizing

Important considerations when using the Excel Add-in.

  • Create your custom “Import List” directly from the Add-in using the Publish and allow sync command in the Table Tools-Design tab of your Excel spreadsheet provided by the Excel Add-in.  You can add your own fields to the Import List later and synchronize with Excel. 
    Think carefully about what fields you want as required fields and the desired order in your spreadsheet before provisioning the Import List since the field order is difficult to re-arrange once the Excel spreadsheet is connected to SharePoint. 
  • Take advantage of the ability for the Excel spreadsheet to incorporate pick-lists from the columns in your SharePoint Import list. 
  • There is a limit of 6 fields if I remember correctly and you are not able to provide for multiple selections but very usefull for maintaining data consistancy and case where selecting users from AD would be usefull.
  • A common confusion I have seen on MSDN for users implementing the add-in is the Publish and allow Sync command in the Excel toolbar.  Some users attempt to select this command to sync the data with SharePoint.  This command is only used to provision the initial list in SharePoint bound to the Excel table and not used for updates.  For updates right-click anywhere on the Excel table and use the additional features added to the context-menu to sync data (see screenshot above)

Conclusion

There are circumstances when users need to continue to use existing Excel spreadsheets and adding each data item to SharePoint individually would be both redundant and time-consuming.  Using the Excel Add-in in combination with custom Import Lists and SharePoint Designer workflows provide one mechanism for bulk-uploading data from Excel to SharePoint. 

Creating a dynamic site page banner using SharePoint and Silverlight

Overview

How to create a dynamic banner for SharePoint 2007/2010 site pages to surface images stored within SharePoint while also making it easy for site authors to upload their own images to be displayed in the banner rotation.

Solution: 
 

  • Develop a Silverlight application to dynamically display images stored in any standard SharePoint 2007/2010 picture library.

  • Provide an easy way to configure which picture library is used to display the banner images using the Silverlight application initParams. 

  • Use the content editor web part to add the dynamic banner to SharePoint 2007/2010 site pages.

Demo:

 

Advantages:

· Easy for users to add new images to the banner.

· Works on existing SharePoint 2007/2010 picture libraries.

· Easy to deploy using Silverlight and the SharePoint content editor web-part.

· All files can be stored in SharePoint.

Download Files

http://cid-11725deb07615960.skydrive.live.com/embedicon.aspx/SilverlightPictureViewerWebPart/PictureLibraryWebPart.zip

Link to XAP file, test page, and content editor web-part you can use to add this functionality to your Silverlight enabled SharePoint 2007/2010 site.

Installation and Configuration of Silverlight files

http://cid-11725deb07615960.skydrive.live.com/embedicon.aspx/SilverlightPictureViewerWebPart/ConfiguringtheSilverlightSharePointPictureLibraryViewerWebPart.docx

 

Have fun.

Follow

Get every new post delivered to your Inbox.