Category Archives: Uncategorized

How to Swing SharePoint to a new (clone) Config DB after Restoring from Backup

I have a request to get a restored SharePoint 2010 up for some recovery. The existing SharePoint is still running while having its same Image restored to a separate Server, the first key important thing is that the cloned Server should not have the same Host Name as per the existing one.

Once you boot up the cloned Server, the HostName is changed and you will hit Error when connecting to SharePoint configuration server.

So, if you run SharePoint Product Configuration Wizard, You will hit error again saying you cannot connect to existing Config DB. Simply because your cloned server is still pointing to OLD Config DB (OLDHOSTNAME\SQLInstance).

Resolution

What you can only do! (as far as i know!) is to run the following STSADM comment

stsadm.exe -o setconfigdb - -databaseserver "<DatabaseServer>" -farmuser "<DOMAIN\YourFarmAccount>" -farmpassword "<YourFarmAccount Password>"

Once its done, rerun SharePoint Product Configuratino Wizard…

Content Plugin can not be initialized – list of CSS addresses is not set.

Having this error in my SharePoint Servers running Search Service Application.

This error was due to Search Index folder not granted FULL CONTROl permission to the following SharePoint Local Group

WSS_ADMIN_WPG

WSS_WPG

Content Plugin cannot be initialized

Go to your search index folder and grant them!

 

If you do not know how to find your Search Index folder. Run the PowerShell below in SharePoint Management Console


##Change the name in case you are using a different name for the search service application

$ssa = Get-SPEnterpriseSearchServiceApplication "Search Service Application"

$ssa.ActiveTopology.GetComponents() | ? {$_.Name -like "IndexComponent*"}

## you should see able to see RootDirectory properties. and that is your search index location.

Changing Domain and Changing SharePoint Distributed Cache Host Name

Today, I’m asked to change my SharePoint Servers to another domain. (jaw dropped). And I’m gonna share the important steps that help you to rename your existing distributed cache host name to a new host name.

I will be using the following naming for better illustration

SharePointWeb01.olddomain.com  -> SharePointWeb01.newdomain.com

As usual, you would domain disjoint, restart server, join to the new domain (using enterprise admin of the new domain). Once the server is joint to the new domain. You can instantly see many error log generated in your event viewer. This post I’m gonna cover only how to swing Distributed Cache and make it goes Live again and with assumption that you have changed the SharePoint Farm Account to a new account. (cause this is domain change activity! big task)

 

First thing first

Make sure the OLD distrbuted host name is pingable and it is still connecting back to the same server. How to do that?

Fire NOTEPAD and edit C:\windows\system32\drivers\etc\hosts

Add in your server IP with the old host name. You will then remove the old host name AFTER successfully getting the distributed cache cluster up.

 

Secondly, change the distributed cache service from the old orphan service account to a new one in the new domain.

Run the following to change the service account


$farm = Get-SPFarm
$cacheService = $farm.Services | where {$_.Name -eq "AppFabricCachingService"}
$accnt = Get-SPManagedAccount -Identity "NEWDOMAIN\NewFarmAdmin"
$cacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$cacheService.ProcessIdentity.ManagedAccount = $accnt
$cacheService.ProcessIdentity.Update()
$cacheService.ProcessIdentity.Deploy()

Restart-CacheCluster

## At this step you will see error but please ignore.

Get-CacheHost

## And you should see your old cache host is UP.

## Register your new Host Name

## Note the DataSource=XXX it may be different from your environment. Change it accordingly to yours.

Register-CacheHost -Provider "SPDistributedCacheClusterProvider"
-ConnectionString "Data Source=SQL;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False"
-Account "<NEW DOMAIN>\<NEW FARM ACCOUNT>"
-CachePort 22233 -ClusterPort 22234 -ArbitrationPort 22235 -ReplicationPort 22236
-HostName <HOST NAME of the server, SharePointWeb01>

After executing the Register-CacheHost

Kindly perform a Export-CacheClusterConfig -Path c:\cache.xml to double check cache.xml if the new FQDN of your server is showing under datacache > hosts

Should look something like that


<hosts>
 <host replicationPort="22236" arbitrationPort="22235" clusterPort="22234"
 hostId="54695588" size="781"
 leadHost="true" account="<new service account>"
 cacheHostName="AppFabricCachingService"
 name="<new and Correct FQDN e.g. SharePointWeb01.newdolmain.com>"
 cachePort="22233" />

 <!-- Together with another host that stating your OLD FQDN e.g. SharePointWeb01.olddomain.com -->
</hosts>

new host’s name should be a FQDN that you can ping and resolve right away without the need of editing HOSTS file.

Once this is done, run the final command in SharePoint Powershell console

Unregister-CacheHost -Provider "SPDistributedCacheClusterProvider" 
-ConnectionString "Data Source=SQL;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False" 
-HostName <the old host name e.g. SharePointWeb01.olddomain.com>

Go back to your HOSTS file and remove the old ip mapping to SharePointWeb01.olddomain.com.

 

Definition of System Performance Test

Thought it would be good for me to write down my own note of definitions and its objective

Performance Test

Performance Test is used to measure the performance characteristics of your web site/system. It helps you to find out the following

  1. How many users can work with the site concurrently receiving the acceptable quality of service? Usually we benchmark it with Page Response Time
  2. How many visitors your web site can handle by day or hour?
  3. What response time is typical for your web site under load? This is more for baseline testing of your system performance.

Stress Test

Stress Test is performed to check the ability of your web site to respond to an excessive load. Every web site has a performance limit. However, even when that limit is reached, the web site should meet the “Correct Overload Criteria”.

  1. It should not crash or stop responding completely.
  2. The number of correct page responses per second should not decline significantly.
  3. It should either provide a user friendly overload message for requests that it cannot serve, or delay all responses equally.
  4. After a period of overload it should return to the normal operation without performance degradation

Endurance Test

Endurance Test is to check the ability of your web site/system to withstand the specified load for a long period of time. In such conditions the performance degradation can be a result of memory leaks or other server resource allocation problem. The endurance testing is usually performed for several hours. The goal is to confirm that the web site performance during different test phases does not differ significantly

Office Web App with SharePoint Sorry there was a problem and we cant open this document

Introduction

I have a Web Front End server running via HTTPS protocol and the SSL Cert is self-signed (Strictly HTTPS Only). Meanwhile, I also have an Officer Web App (OWA) 2013 server.

After binding the SP WFE server with the OWA server. (by referring steps from MDSN) and uploading a testing DOCX document.

This is the error i got from the OWA Viewer.

Office Web App - Sorry there was a problem

“Sorry, there was a problem and we can’t open this document. If this happens again, try opening the document in Microsoft Word.”

Ok Great. I then checked the OWA ULS log file. The below error was thrown


Unexpected

HttpRequestAsync, (WOPICheckFile,WACSERVER) no response [WebExceptionStatus:TrustFailure, url:https://MY SHAREPOINT URL/Docs/_vti_bin/wopi.ashx/files/f6f23205af3348199e803f3c568685df?access_token=REDACTED_1084&access_token_ttl=1373225332912, exception:System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.     at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)     at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)     --- End of inner exception stack trace ---     at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)     at Microsoft.Office... 54a29cd8-d404-45d9-bba4-359a21382bb0

Apparently it has got to do with SSL/TLS due to the self signed certification.

Resolution

Download the self-signed certification to OWA.

  1. In the OWA server, go to IE browser and hit the SharePoint URL.
  2. Beside the Address Bar, click on the Certificate and click View certificates
  3. Under General tab and click Install Certificate
  4. Specify Local Machine
  5. Select “Place all certificates in the following store”
  6. Click “Browse” and select ‘Trusted Root Certification Authorities”
  7. Click Ok.
  8. Now try to open the document via Browse. =)