So while I recently wrote on how wonderful the spell check update in Lync 2013is, there is a gotcha. By gotcha I mean bug. Once the update is applied, Outlook calendar presence is no longer synchronized 100% between your Lync client and Outlook. The Microsoft KB article released today (KB2883716) states:
If the meeting cannot be joined by using Lync 2010 or Lync 2013, your presence status isn't updated in Lync 2013 when the meeting starts.
If the meeting is a Lync 2010 or Lync 2013 meeting, your presence status isn’t updated in Lync 2013 until you join the meeting manually.
That’s right, meeting information is broken (you always look available) and OOF is not synchronized either. An update will be resolved with an update at some point so really it comes down to spell check versus correct presence state. Hopefully something will be released soon (and I would suspect it will be) to address this issue.
Yesterday Microsoft released Cumulative Update (CU) July 2013 for Microsoft Lync Server 2013. The update is a typical Lync Server path file but has some additional steps and safety measures built-in. To start, the upgrade now supports a SQL mirror so there is no need to break and re-create the HA configuration. There are additional Lync Management Shell commands to be run in this process starting with Get-CsPoolUpgradeReadinessState. While the readiness check is a good idea for SE deployments, the importance is less as the pool is either functioning or not.
Execute Get-CsPoolUpgradeReadinessState for a Lync PowerShell command. Assuming the returned value is Ready you are to begin the process. Listed in the returned information is the state of the front-end servers within the pool and their current upgrade domain readiness state. User data will be distributed among multiple front-end servers (up to 3) and making sure a server upgrade combination that takes down all three of a user’s pool is avoided is important. The easiest way to avoid this is to simply upgrade a single server at any one time and wait for the server to come back online and list a status of True.
Upgrading a pool that has active users can be a challenge when a high uptime is desired. If you are faced with this dilemma, start with shutting down the front-end services of a desired pool member by using the Stop-CsWindowsService –Graceful cmdlet. Using the graceful switch the services stop only after current requests have been filled. It also prevents any further request from being queued so think of it as an option to shut down as soon as possible with as little disruption as possible. This doesn’t mean people logged into that pool sever will not be logged out and back into another pool member, it simply means if they are in an active conversation the server will not interrupt the communications.
Once the services have been shut down gracefully (or if you have an outage window and simply want to perform the upgrade, launch the LyncServerUpdateInstaller.exe. This can be done at the command line as before or by simply launching the executable and running the GUI.
The next step is the beloved backend database upgrade. The SE upgrade is the same as before with the running of the commandInstall-CsDatabase -ConfiguredDatabases -SqlServerFqdn SE.FQDN -Verbose. If you have an SE deployment with Persistent Chat collocatedyou must run the above command with the -ExcludeCollocatedStores parameter and perform the upgrade to the PChat databases after the initial install.
To upgrade a collocated PChat database on an SE server the command you would need to run next would be Install-CsDatabase -DatabaseType PersistentChat -SqlServerFqdn PChatBE.fqdn -SqlInstanceName DBInstance -Verbose. Again, this is only required when you have an SE with PChat collocated.
After all the application and user databases have been upgraded, the final step is updating the CMS database. This upgrade is ONLY required if you are updating your server from Lync Server 2013 RTM as the update has not changed since February 2013 Cumulative Updatebut it does not hurt to run it if you are not sure. To do this, run the command Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn CMS.FQDN -SqlInstanceName DBInstanceName -Verbose.
It is recommended that the Enable-CsTopology command is run after the upgrade to ensure mobility is active and functioning andbootstrapper is executed (found in a default install at%ProgramFiles%\Microsoft Lync Server 2013\Deployment\Bootstrapper.exe) on all SE, EE, and Director servers (basically anywhere the web components are installed).
After the upgrade of a front-end server is complete, reboot the server (you could just start services, but I prefer a reboot) and before moving on to the next make sure the Get-CsPoolUpgradeReadiness cmdlet returns a Ready state before moving on.
Make sure all servers in the environment have been updated, including the PChat, Edge, custom application servers, etc. when performing this update and should you have a large Lync Server 2013 installation, expect the process to take some time. I expect additional updates for clients and devices will be coming shortly so check back for updates often.
Additional Notes:
Lync Server 2010 build number is 4.0.7577.216
Lync 2010 Client build number is 4.0.7577.4378
Lync Server 2013 build number is 5.0.8308.420
Lync 2013 Client build number is 15.0.4454.1506
Lync Group Chat build number is 4.0.7577.4102
Lync Group Chat Server build number 4.0.7577.4778
Lync Group Chat Admin build number 4.0.7577.4102
Lync Attendee build number is 4.0.7577.4356
Lync Attendant build number is 4.0.7577.4098
Lync Phone Editions build number is 4.0.7577.4387
Lync 2010 for iPhone build number 4.7
Lync 2010 for iPad build number 4.7
Lync 2010 for Android build number 4.0.6509.3001
Lync 2013 for Windows Phone build number is 5.0.8250.0
Lync 2013 for iPad build number is 5.0
Lync 2013 for iPhone build number is 5.0
Lync Basic 2013 build number is 15.0.4420.1017
Lync VDI 2013 build number is 15.0.4420.1017