Pages

Monday, March 26, 2012

Lync Enterprise fails establishing a connection to SQL Server

Today I tried updating are Lync 2010 environment with CU4 in order to add the Mobility Service only to run into issues trying to do the database update. First let me say if you want to do this update please follow an amazing post by ZeroHourSleep. I however had additional issues I believe to be caused by the fact that we have an Standard instance and an Enterprise instance of lync in our enviroment.

The reason for this is because we originality setup Lync to just work for campus internal IM, for this standard was fine. Then our telcom/networking team wanted to deploy Lync as maybe a video and chat service. We get it up and running Lync Enterprise and then telcom/netowrking lost interest and only wanted to look at Cisco systems instead. So now we have both Standard and Enterprise instances deployed with users on both. I left the system as they left it but people are wantingto use the mobility features so now I'm trying to update it and get it working again.

As part of the CU4 updates I tried to use the database update command but I only get errors like the following.

PS C:\Users\towlesd> Install-CsDatabase -Update -ConfiguredDatabases -SqlServerFqdn SQLC2MAIN -SqlInstanceName MAINDB2 -UseDefaultSqlPaths


Install-CsDatabase : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:19
+ Install-CsDatabase <<<< -Update -ConfiguredDatabases -SqlServerFqdn SQLC2MAIN -SqlInstanceName MAINDB2 -UseDefaultSqlPaths
+ CategoryInfo : InvalidArgument: (:) [Install-CsDatabase], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.Rtc.Management.D eployment.InstallDatabaseCmdlet

After more research I figure out that the enterprise environment machines can not download the Topology.

PS C:\Users\towlesd> Get-CsTopology -asxml
Get-CsTopology : Cannot read topology. Verify that the topology data is accessible.
At line:1 char:15
+ Get-CsTopology <<<<  -asxml
    + CategoryInfo          : InvalidOperation: (:) 
[Get-CsTopology], SqlConnectionException
    + FullyQualifiedErrorId : A network-related or instance-specific error occurred
 while establishing a connection to SQL Server. The server was not found or was not accessible.
 Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
 (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified),Microsoft.Rtc.Management.Xds.GetOcsTopologyCmdlet

I find this command finaly which told me the server and database database the enterprise system was trying and failing to connect. (I've change my server name and instance name of course) Run this from the Enterprise Lync Server management Shell.

PS C:\Users\towlesd> Get-CsManagementConnection

StoreProvider : Sql
Connection    : Data Source=(sqlserverfqdn)\(sqlinstancename);Initial Catalog=xds;Integrated Security=True
ReadOnly      : False

Following this I tried to extablish a remote connect myself to that database and instance with Microsoft SQL Server Management Studio. The connection failed which is good because if it had worked I would of been really confused as to what to try next.

I remote to that database server which is the Lync Standard Pool Server. Because its a VM I take a snapshot of the VM just in case something goes wrong. Lets just I once had OCS installed but an OCS  upgrade patch destroyed it and it was easier to just re-install with Lync.

At the Lync standard machine and find that while users are connected just find remote systems can not access its SQL instance. On the Lync Standard server I try to open its SQL Server Configuration Manager.

SQL Server Configuration Manager - Invalid Class.png 

SQL Server Configuration Manager: Cannnot connect to the WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2008 and latter servers with SQL Server Configuration Manager.

Invalid Class [0x80041010]

Looking are round I found a great post by Michael Aspengren on how to fix it here.

C:\Users\towlesd> cd C:\Program Files (x86)\Microsoft SQL Server\100\Shared

C:\Program Files (x86)\Microsoft SQL Server\100\Shared> mofcomp sqlmgmproviderxpsp2up.mof
Microsoft (R) MOF Compiler Version 6.1.7600.16385
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: sqlmgmproviderxpsp2up.mof
MOF file has been successfully parsed
Storing data in the repository...
Done!

This cleaned up the issue of SQL Server Configuration Manager not starting. I rebooted here hoping to clear any starting issues SQL might have had but the connections fail all the same. Looking I find that Firewall is turned on and controlled by a GPO policy yet the server is in a Servers OU that is suppose to block GPO that controls firewalls. I added the SQL Server Firewall Ports following the Microsoft guide here.  I added the following rules:
  • Rule to allow TCP 1433
  • Rules for SQL Server when using dynamic ports for a program
    • C:\Program Files\Microsoft SQL Server\MSSQL10.RTC\MSSQL\Binn\sqlservr.exe
  • And be sure to add a rule for the SQL Server Browser to open UDP port 1434 because we are trying to connect to an instances of the Database Engine that is not listening on port 1433.

After opening those and rebooting I was able to remotely connect with with Microsoft SQL Server Management Studio. Then testing from the Lync Enterprise back-end I was finally able to download the Topology.

Downloaded Topology 
Successful

The bottom line is that this was all caused because a GPO turned on a machines local firewall. While I wish I had just checked to that begin with its easy to say that after you've already tracking down the cause.

Getting back to the Lync database upgrade


Working on updated the database still failed.


Result of trying to updating the Lync Enterprise Database
I know this is probably related to having the CS database with the Lync Standard store and my follows will be to move the CS database to the Enterprise database and not the Standard Pool I'd rather fix my current problem before adding more issues or variables.

Lync Database can't Move Central Management Store
I was finally able to update the database as part of CU4 by running it on the Lync Standard Server which held the Central Management Store and then rebooted all the Enterprise Lync Servers.

Install-CsDatabase -Update -ConfiguredDatabases -SqlServerFQDN (lync server)

Other Links

No comments:

Post a Comment

Please leave a comment; someone, anyone!