\

Školení Návrhové vzory, OOP a UML


 Tuesday, 18 May 2004
Další hrátky s Merge replikací

Tak dnes jsem si lál do příliš brzy zpychlých individuí, protože ve spotu z minulého týdne jsem se chlubil, jak se nám podařilo Merge replikaci zkrotit. Dnes za mnou přišel tester, který dostal za úkol vyzkoušet replikaci ve Virtual PC s Windows XP a souborovým systémem FAT. Uznávám, kombinace Windows XP a FAT zní nesmyslně, ale z mně neznámého důvodu ji na některých stanicích náš zákazník používá, a my jsme si chtěli být jisti, že nebudou při zítřejším releasu žádné problémy.

Tester přišel, že se mu nedaří založit subscription. Vždy nastala tato výjimka :
"System.Runtime.InteropServices.COMException(0x80004005). The subscription to publication <nazev publikace> is invalid.


Překvapilo mě, že k založení "subscription" přes tuto hlášku došlo, protože se zobrazila v sekci Subscriptions v Enterprise manageru. Vyzkoušel jsem založení "subscription" na třech dalších počítačích, virtuálních i hmotných.:) Vše proběhlo bez problémů. Po několika neúspěšných pokusech o založení "subscription" na stroji s XP a FAT, jsem se pokusil zaregistrovat inkriminovaný MS SQL server v mém Enterprise Manageru . Přitom jsem si všiml, že občas se název MSSQL serveru zobrazí, občas ne, registrace selže, ale za 10 sekund již proběhne bez problémů. Začal jsem mít podezření, že jde o síťový problém. Tester se mi až po mém přímém a přiznám už dost nevrle a neomaleně formulovaném dotazu, jaké že to koniny musel provádět s názvem stanice, přiznal, že po instalaci MSSQL změnil název počítače. Vrátit původní název stanici ale nestačilo. Bylo třeba znovu zaregistrovat jméno MSSQL serveru.

Musíte nejdříve zjistit, pod jakým jménem se MSSQL hlásí.
select @@SERVERNAME

Poté odregistrujete server ze seznamu známých serverů.
sp_dropserver <Současný název serveru>

Server znovu zaregistrujete se správným jménem a parametrem 'local'. Pouze jeden server může být registrován jako "local" Od této chvíle bude proměnná @@SERVERNAME vracet nový název.
sp_addserver <Nový název> , 'LOCAL'

Ještě můžete zkontrolovat, že procedura sp_addserver opravdu úspěšně proběhla. Lokální server musí mít ve sloupci Id nulu.
sp_helpserver

Poučení? Merge replikace je opravdu zkrocena, jen nad kreativními testery je třeba nestále práskat varovným bičem. Nemám rád kritickou podmínku úspěchu zvanou lidský faktor.:)



Tuesday, 18 May 2004 19:58:00 (Central Europe Standard Time, UTC+01:00)       
Comments [15]  (MS)SQL tipy a triky