Thursday, April 28, 2011

SharePoint 2003-2010 migration requires direct permissions for target config db.

When you add a user into the Farm Administrators group in SharePoint 2010 it does not receive direct access to configuration database (as it was in SharePoint 2007).

To perform 2003-2010 migration, MM uses SharePoint Object Model which is working in a context of MMSP service account. 

That changes list of required permissions for 2003-2010 migration. In addition db_owner for target Configuration database is required or you could add the user to the SharePoint_Shell_Access role on target SQL server.
The following PowerShell command adds a user to the role:
Add-SPShellAdmin –username <your username>  

Thursday, April 14, 2011

Discover: SQL Server does not exist or access denied.

Issue:
You receive the "SQL Server does not exist or access denied" error during adding SharePoint farm. The server exists and you have all the required permissions. You can successfully connect to the SQL server via ODBC or UDL test. The server running discovery process is 64bit. You have SQL alias configured for SQL server.

How to confirm:
The discovery is 32 bit process but when you perform ODBC/UDL test it is running as 64bit application. To run the 32bit ODBC connection, run the following application: 
C:\Windows\SysWOW64\odbcad32.exe

How to fix:
Compare 64bit and 32bit SQL aliases.
For 64 bit client aliasing use cliconfg.exe from system32 (already in path and you can just type and run).
For 32 bit client aliasing switch to C:\Windows\SysWOW64 folder and run cliconfg.exe from there.
Configure 32bit aliases the same way as 64bit:
 

  

 

Wednesday, April 13, 2011

What does the "0x80040E14" error mean

During a migration the 0x80040E14 error may occur. The error occurs when it is unable to complete an action on SQL server. You nay see either of the following errors:

' Unable to complete this operation.  Please contact your administrator.’

'Exception from HRESULT: 0x80040E14’

How to fix:

If you see one of the following messages in Issue report or log files, you need to check the following:

1.     Target SQL server data drive is not full

2.     .mdf and .ldf files of target content database haven't reached their full allocated size

3.     Target content database files are set to increase when full.


Note: There can be another reason for the “0x80040E14” error. Refer to the following Microsoft article for more detailed information: http://support.microsoft.com/kb/841216

07/10 reorg: Access denied error on a list veiw importing


Issue:

You have a customized view with a web part in a document library.

The following error message occurs on import:

(-2147352567, 'Exception occurred.', (0, u'', u'Access denied.', None, 0, -2147024891), None)

If you go to the import.log file, you see the following:

[7/9/2010 4:27:37 PM]: Progress: Importing File Shared Documents/Forms/AllItems.aspx.
[7/9/2010 4:27:37 PM]: FatalError: Access denied.
   at Microsoft.SharePoint.SPGlobal.HandleUnauthorizedAccessException(UnauthorizedAccessException ex)
   at Microsoft.SharePoint.Library.SPRequest.PatchUrl(String bstrUrl, String bstrWebRelFileUrl, String bstrWebRelOldUrl, String bstrWebRelNewUrl, Int32 grf)
   at Microsoft.SharePoint.Deployment.ImportObjectManager.FixLinkInFile(String fileUrl, Guid webId, String oldTargetUrl, String newTargetUrl)
   at Microsoft.SharePoint.Deployment.LinkSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.FileSerializer.UpdateLinks(SPFile file, String linksXml, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.FileSerializer.UpdateFileAssocData(SPFile file, SPWeb web, Guid id, String fileUrl, SerializationInfoHelper infoHelper, SerializationInfoHelper infoHelperListitem, StreamingContext context, ISurrogateSelector selector, ImportObjectManager objectManager)
   at Microsoft.SharePoint.Deployment.FileSerializer.CreateOrUpdateFileAndAssocData(Object fileOrListItem, SPWeb web, Guid id, String& fileUrl, Boolean fileExistsInDb, SerializationInfoHelper infoHelper, SerializationInfoHelper infoHelperListitem, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.FileSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)
   at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject)
   at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope)
   at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
   at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader)
   at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
   at Microsoft.SharePoint.Deployment.SPImport.Run()



How to fix:

The issue may occur with the following web parts:

  • filter web part
  • content editor web part containing a link to another list/doc lib

As a workaround delete the web part or the whole list view on the source and repeat migration.

Monday, April 4, 2011

Why does MMSP need the prescan utility to be run?


First of all, I would like to notice that Prescan is Microsoft tool. It's required to run the tool before upgrading SharePoint 2003 environment.


There are posts explaining what prescan utility actually does: Don't be afraid of Prescan  and Your Friend Prescan.exe - How to Get it & What it Does

Among the other things prescan fills tp_fields column in the lists table to persist the list schema. It parses and saves List definitions with the associated Lists. SharePoint Portal Server 2003 Service Pack 2 already incorporates this feature whenever a list is modified; however, this process should be completed for all Lists, so prescan calls the SharePoint Portal Server 2003 Service Pack 2 method to persist that data.

The tp_field column contains list schema. So, if the prescan hasn’t been run, the column is left empty and MMSP cannot read the list schema.
In this case you see the following error message in issue report: 'Need to use 'prescan' tool!