SQL 2008 R2 SP1 installation failure

Installing of SCOM 2012 has some requirements and one of them being SQL. I ran the install for SQL and when I tried to install SP1 for SQL 2008 R2 it failed with the following error:

  • ” A failure was detected for a previous installation, patch, or repair for instance ‘MSSQLSERVER’. In order to apply this patch package, you must resolve any issues with the previous operation that failed. View the summary.txt log to determine why the previous operation failed.”

So I went to Programs and Features and ran a repair on SQL. Upon getting to 80% of the repair it gave this error:

  • “The following error has occurred: The process cannot access the file ‘C:\Windows\system32\perf-MSSQL10_50.MSSQLSERVER-sqlagtctr.dll’ because it is being used by another process.
  • Click ‘Retry’ to retry the failed action, or click ‘Cancel’ to cancel this action and continue setup.”

So I checked and all services were stopped. The fix is to stop the Windows Management Intrumentation Service and all the dependencies. After that the repair will go through successfully and you will now be able to install SP1 for SQL.

Hope it helps


SharePoint 2013: Unified Logging Service Event ID:2159

After a nice festive season I came back to thousands of errors logged in event viewer for the above error:

Seems like this error only started occurring after the recent windows updates released. Never the less you can need to check if Named Pipes is enabled in SQL Configuration and you can run the following command in SQL Management Studio:

USE master

The errors should stop being logged in the application log.

Hope it helps

Exchange Server 2013 Client Access Server High Availability

I was giving it some thought and even though having a DAG you have some high availability I was not happy that if one of the exchange servers went down clients would not connect to the DB (it takes a while for them to establish connection).

I had a public name setup but decided to make the internal name same as the external one. I had one DNS record setup but created the same for my other exchange servers.

So to give you an example, if you had to test email AutoConfiguration on Outlook the RPC server would also point to a specific server. I wanted to change this to point to the external name so that I had some more high availability. A proper load balancer etc. would be ideal but where budgets are tight this is the next best option.

If you run the following command you will see what your Internal, External names are set to:

  • Get-ClientAccessServer | Get-OutlookAnywhere | select identity,*hostname


Identity : MyServer\Rpc (Default Web Site)
ExternalHostname :
InternalHostname : myserver.domain.com

Now we can go and change the URL’s so that outlook will connect to the External Name:

  • Get-OutlookAnywhere | Set-OutlookAnywhere -InternalHostname mail.domain.com -InternalClientsRequireSsl $false

So because I am not using a load balancer at all I will make use of DNS Round Robin. Run the following command from either from powershell or a command prompt and it should list all the servers resolving to that name mail.domain.com.

  • Resolve-DnsName mail.domain.com

Once the change has been made, give it time to replicate across all your servers. I left mine for 1 hour. After that I tested and ran the AutoConfiguration from Outlook it was now showing the RPC Server as mail.domain.com which is what I wanted.

Hope it helps