View Khurram Jamshed's profile on linkedin

Sunday, October 13, 2013

Improvise #ProjectServer 2013 #CU installation time #SP2013 #PS2013 #CU

With the release of Project Server 2013 and then release of periodic Cumulative Updates, one evident factor i have experienced is the size of cumulative updates of project server, and the time they requires to be installed.

Just before this blog, a normal time i have experienced to install any CU on Project Server 2013 servers, were some where between 4-5 hrs and some time more than that as well :( and this duration is for 1 CU only, imagine if you have to install more than 1 CU which is common as March CU is a pre-requiste for any new CUs to be installed.

Which means, that either you plan to start the installation at day end, so that next day when you will resume work you only have to wait for configuration wizard to be finished
you can sit idle and stare at that progress bar on your screen, moving as slowly as any slowest turtle exist on planet earth, and curse yourself that why have you started the installation at this time.

I have been look for ways to improvise the duration of installation of CU, and the good news is that there is a way to install the same CU with the duration time of between 30-45 mins ... yea you are reading it rite, its mins NOT hrs :)

Credit for this goes to Russ Maxwell, who brought this solution forward. And i am re-posting this good to spread to Project server community, because its equally painful for us as well :)

From the start the suspect in this whole case, i.e. why CU takes so long, are the SharePoint services running on the server such as App fabric/search etc. As they consume most part of CPU, and push windows installer to a lower priority to consume CPU time.

So here is a Power-Shell script to automate and speed up the installation process by disabling SharePoint server services gracefully. The scirpts performs the following steps:

  1. Disable the IISAdmin and SPTimerV4 service
  2. Shut down IIS Admin and Timer Services if they are running                                                                                                          
  3. Give you the option to Pause the Search Service Application (see search notes below)                                                                                      
  4. Stop Search Services (see search notes below)                                                                                                                                                     
  5. Install the patch in passive mode (No user interaction required but will witness the patch install in the UI). Note:  Power Shell should remain open in the background while patch is running.
  6. Upon completion of the patch, the Power Shell script, services in step 1 are set to Automatic                                                                          
  7. Starts up IIS Admin and Timer Services                                                                                                                                              
  8. Starts up Search Services                                                                                                                                                                                      
  9. Resume the Search Service Application if it was paused                                                                                                                       
  10. Finally, the script will display the Start Time and End Time for patch install

The script can be downloaded from the script gallery below:

A walkthrough using the script is below:

Copy the script and CU in the same folder, note that only one CU should be placed in the folder and file extension should be .exe.

Open the power shell and run the script, i recommend to pause search service application here by choosing 1. The screen shots below are of Project Server 2013 JUN CU installation on my server:

Notice the installation time of JUN CU, 35 mins, voila :)

Happy patching.

Thursday, October 3, 2013

Office Web Apps Server 2013 - Unable to preview/create/edit through web #SP2013 #PS2013 #OWA2013

A quick post to share the joy of installing/configuring Office Web App server 2013 and adding to farm to work with Project Server 2013 project sites, and additionally to share the issue which led me bang my head to wall several times a day while troubleshooting :)

This can be very beneficial in terms that Project Server users can enjoy a complete web based Project Management experience with Office Web Apps server in place. As most of the Project scheduling capabilities are already available through PWA in 2013, additionally users can also manage their project artifacts on project site without the need of office suite installed to be used to create/edit documents.  

Follow these very detailed and helpful TechNet article in order to prepare Office Web App server , and then bind it with your SharePoint server later to make it work.
  1. Plan office Web Apps Server
  2. Deploy Office Web Apps Server 
  3. Configure SharePoint 2013 to use Office Web App Server
There is troubleshooting section in last TechNet article, Configure SharePoint 2013 to use OWA server, which can help you to troubleshoot most of your common issues.

However there are few more i would like to highlight, which may can drive you crazy:

First, if you are planning to configure your SharePoint to use Office Web Apps in test environment over HTTP, include the host name list to your OWA server list by using following power-shell command:

New-OfficeWebAppsHost -domain <server-name>

Note, since the above parameter is slightly confusing, you need to include Domain and your SharePoint server name as well. That is if you domain name is, and your SharePoint webapp name is http://sharepoint:port, then include and sharepoint both to host list by executing above command twice for each parameter value.

You may find following error in your OWA server log file due to above issue:

WOPI : CreateWOPIHttpRequest failing due to invalid host

Also in your Office Web Apps Server, ULS logs location is: c:\programdata\microsoft\officewebapps\data\logs\uls 

More issues, if you see the below issue and technet article solution wont help, try check your SharePoint server firewall settings:

Sorry there was a problem and we cant open this document. Please try to use Microsfot word to open this file. 

One of the solution for the above issue is host name not available in host list of OWA as described above. however, if you still see this error, as for me i have had been banging my head with this error for last few hours :) , go through your ULS logs thoroughly and see if there is an indication to connectivity between two servers. Something like below in ULS: (i have highlighted the meaningful line in below, however left the other part intentionaly so that search engines can catch)

OPI CheckFile: Catch-All Failure [exception:Microsoft.Office.Web.Common.EnvironmentAdapters.UnexpectedErrorException: HttpRequest failed ---> Microsoft.Office.Web.Apps.Common.HttpRequestAsyncException: No Response in WebException ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond     at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)     at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Excepti... 03e73292-863f-49a5-bf05-6d9f982aa7e9
10/01/2013 15:17:29.72* w3wp.exe (0x1084)                       0x222C Office Web Apps               WAC Hosting Interaction       adhsk Unexpected ...on& exception)     --- End of inner exception stack trace ---     at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)     at Microsoft.Office.Web.Apps.Common.HttpRequestAsync.GetResponseCallback(IAsyncResult asyncResult)     --- End of inner exception stack trace ---     --- End of inner exception stack trace ---     at Microsoft.Office.Web.Apps.Common.WopiDocument.LogAndThrowWireException(HttpRequestAsyncResult result, HttpRequestAsyncException delayedException)     at Microsoft.Office.Web.Apps.Common.HttpRequestAsync.End()     at Microsoft.Office.Web.Apps.Common.WopiDocument.GetWopiRequestResultWithRetry(Int32 maxSize, MemoryStream ms, WopiRequest wopiRequest)     at Microsoft.Office.Web.Apps.Common.WopiDocument.CheckWopiFile()] 03e73292-863f-49a5-bf05-6d9f982aa7e9
10/01/2013 15:17:29.72 w3wp.exe (0x1084)                       0x222C Office Web Apps               WAC Hosting Interaction       ajjve Medium   WOPI CheckFile: Catch-All Failure [url:http://epm2013:85/_vti_bin/wopi.ashx/files/9cc20f3dd1c444f0b6eb71528ec907c2] 03e73292-863f-49a5-bf05-6d9f982aa7e9


To ensure the connectivity, don't only rely on using ping command to ensure the connectivity between two servers, i.e SP and OWA. Try browse you webapp from OWA server and see if its accessible. If you are getting above error, then most likely you wont be able to access the webapp as well from outside SP server. Check your firewall settings of SP server, and see if you have allowed the ports to be accessed.

Control Panel -> Windows firewall -> advance security -> Inbound Rules > Port > Protocol:TCP, Specific Port:  > Allow the connection > Apply to all zones > Enter a rule name > Finish.

And hopefully if everything works for you, you will be able to preview/create/edit office documents through web to have a complete web based experience of SharePoint 2013.