Vytvoření, úprava nebo odstranění konference se nezdaří u některých koncových bodů aplikace v Lyncu nebo Skype pro firmy

Příznaky

Zvažte následující příklad:

  • Máte místní fond Microsoft Server Skypu pro firmy 2015 nebo Lync Server 2013 enterprise.
  • Máte jednu nebo více aplikací třetích stran využívajících důvěryhodné koncové body aplikací, které vytvářejí velký počet konferencí.
  • U jednoho nebo několika Front-End serverů Server Skypu pro firmy 2015 nebo Lync Serveru 2013 dojde k výpadku nebo odpojení sítě.

V tomto scénáři zjistíte, že některá část koncových bodů používaných vašimi aplikacemi nemůže vytvářet, upravovat ani odstraňovat konference. Koncový bod obdrží chybu "503 syncReplicationFailed" nebo "400 conferenceAlreadyExists" pro každou konferenci, kterou se pokusí vytvořit, upravit nebo odstranit.

Příčina

Replikace stavových dat z primárního serveru Front-End na oba sekundární servery Front-End selže při pokusu o vytvoření, úpravu nebo odstranění konference.

Během výpadku nebo odpojení jednoho nebo více Front-End serverů můžou aktuálně aktivní Front-End servery převzít vlastnictví určitých skupin uživatelů a v průběhu tohoto procesu vyžadovat vytvoření nových sekundárních replik pro tyto uživatele.

Když aplikace třetí strany v průběhu času vytvoří mnoho konferencí, tabulka Data trvalých služeb (PSD) se může zvětšit na velikost, při které dokončení replikace na nové sekundární repliky trvá příliš dlouho. Tento prodloužený proces způsobí, že se fronty na serveru zaplní na delší dobu, než se čekalo, a aktivuje selhání replikace během operací konference.

Řešení

Pokud chcete tomuto problému zabránit, použijte nástroj PurgeAppEndpointUserDataFromPSD.ps1 ze sady prostředků Skype pro firmy 2015:

https://gallery.technet.microsoft.com/How-to-purge-application-eb80d022

Tento nástroj vyhledá všechny položky související s konferencemi, které byly vytvořeny koncovými body aplikace, ale od té doby byly odstraněny. Tyto položky také vyprázdní z tabulky PersistedServiceData.

Poznámka

Pokud vás tento problém aktivně ovlivnil před spuštěním tohoto nástroje, můžete si všimnout, že aktuálně ovlivněné koncové body aplikace selhávají během operací konference, a to i po spuštění nástroje. Tento problém může přetrvávat, dokud se nedokončil proces sekundární replikace.

Pomocí příkazu Get-CsPoolUpgradeReadinessState PowerShellu můžete určit, jestli se dokončily všechny sekundární procesy replikace. Pokud je stav Zaneprázdněn, stále probíhají úlohy sekundární replikace, a proto můžou být ovlivněny některé části koncových bodů aplikace. Po přechodu stavu na Připraveno by se měly dokončit všechny úlohy sekundární replikace a všechny koncové body aplikace by teď měly být schopné dokončit operace konference.

Pro každý ovlivněný fond postupujte takto:

  1. Volitelné: Spuštěním následujícího dotazu SQL na instanci SQL RTCLocal serverů Front-End určete aktuální počet položek v tabulce PersistedServiceData. Vrácená hodnota se může u jednotlivých Front-End serverů v konkrétním fondu lišit.

    select count(*) from [rtc].[dbo].[PersistedServiceData] psd with (nolock)
    inner join [rtc].[dbo].[Document] d with (nolock) on psd.DocId = d.DocId
    
  2. Spusťte následující příkaz:

    PurgeAppEndpointUserDataFromPSD.ps1 -PoolName <pool name> -Command select
    
  3. Otevřete výstupní soubory a vizuálně potvrďte, že je bezpečné jejich data odstranit.

  4. Spusťte následující příkaz:

    PurgeAppEndpointUserDataFromPSD.ps1 -PoolName <pool name> -Command delete
    
  5. Volitelné: Když je nástroj spuštěný, můžete spustit dotaz SQL z kroku 1 a ověřit, že se počet snižuje. Po dokončení spuštění skriptu můžete ještě jednou spustit dotaz SQL a určit konečný počet položek v tabulce PersistedServiceData na každém Front-End serveru. Toto číslo by mělo být menší než počet zaznamenaný v kroku 1.

Ve výchozím nastavení bude tento skript zpracovávat koncové body aplikace, které jsou aktuálně uložené v určitém fondu. Pokud se koncové body aplikace přesunuly do jiného fondu, můžete pomocí volitelného přepínače AllPoolEndpoints označit, že chcete zahrnout koncové body aplikace uložené v libovolném fondu, a to následujícím způsobem:

PurgeAppEndpointUserDataFromPSD.ps1 - PoolName <Pool name> -Command delete -AllPoolEndpoints

Průběžná údržba

Tento nástroj vymaže všechny relevantní položky, které jsou aktuálně v tabulce PersistedServiceData, ale vzhledem k tomu, že všechny aplikace třetích stran, které používají konference, budou i nadále vytvářet nové konference, velikost tabulky se bude dál zvětšovat. Proto doporučujeme pravidelně spouštět nástroj PurgeAppEndpointUserDataFromPSD.ps1, abyste zajistili, že se velikost tabulky PersistedServiceData nezvětší až do bodu, kdy k tomuto problému znovu dojde.

Frekvence spouštění tohoto nástroje závisí na rychlosti, s jakou tyto aplikace třetích stran vytvářejí konference. Pomocí dotazu SQL z kroku 1 v části Řešení můžete monitorovat velikost tabulky a určit, jak rychle roste. To vám pomůže určit vhodný plán pro vaše prostředí.

Další informace

Stále potřebujete pomoc? Přejděte na web Microsoft Community.