Oprava: chybová zpráva při spuštění Agent distribuce synchronizovat odběratelům s aplikace publisher v Microsoft SQL Server 2005 nebo SQL Server 2008: "the příchozí tabulková data datového proudu (TDS) vzdálené volání procedury proudu protokol (RPC) je nesprávná"

Překlady článku Překlady článku
ID článku: 973103 - Produkty, které se vztahují k tomuto článku.
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2005 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Použijte transakční replikace v Microsoft SQL Server 2005. Při spuštění Agent distribuce synchronizovat odběratelům s vydavatelem distribuce Agent může selhat a v historii distribuce agenta nebo výstup protokolu se zobrazí následující chybová zpráva:

42000 Příchozí tabulková data datový proud (TDS) vzdálené volání procedury proudu protokol (RPC) je nesprávná. Příliš mnoho parametrů byly součástí tento požadavek RPC. Maximální počet je 2100. 8003

Při těchto chyb dochází opakovaně, může být ovlivněn výkon. Dojde k chybě agenta distribuce bude proveďte opakování zpracování zkuste stejné příkazy znovu. Agent distribuce proto používá více času k synchronizaci odběratelům s vydavatelem, protože každý problematické dávkové vyzkoušeli dvakrát.

Příčina

Při distribuci Agent zpracovává čekající příkazy v distribuční databáze, používá parametr CommitBatchSize a parametr CommitBatchThreshold určit, kolik příkazy jsou batched společně jako jeden provádění při odešle tyto příkazy odběratelům.

Počet transakcí vystavené odběratelům před vydáním příkazu potvrzení je parametr CommitBatchSize. Výchozí hodnota je 100. Parametr CommitBatchThreshold je počet příkazů replikace vystaven pro odběratelům před vydáním příkazu potvrzení. Výchozí hodnota je 1000.

Protože jediné transakce může obsahovat jeden příkaz nebo může obsahovat mnoho příkazů, nastavení parametru CommitBatchSize 100 a nastavení parametru CommitBatchThreshold 1000 by mohla umožnit pro několik tisíc příkazy doručeny v jediné dávkové příkazy.

Když je článek přidán do publikace @ ins_cmd, @ upd_cmd a @ del_cmd parametry příkazu typ replikace jsou zadány pro sp_addarticle uložené procedury zjistěte, jak doručovat příkazy odběratele. Kromě parametrů CommitBatchSize a CommitBatchThreshold Agent distribuce má také zvážit, že jsou maximální požadavky Native Client zprostředkovatele SQL OLE DB na kolik parametry mohou být vázány v jedné dávce příkazy odeslané odběratele.

Je maximální 2100 parametry použité v jediné dávkové příkazy. Agent distribuce proto automaticky rozdělí velké listy za dávkové právě dostatek příkazy tak, aby nebyl překročen maximální 2100 parametry. Všechny zbývající příkazy dávkového příkazu jsou pak automaticky přesunuty do dalšího spuštění dávkové.

K tomuto problému dochází při distribuci Agent nesprávně vypočte počet parametrů, které jsou potřebné k doručení dávkové příkazy. Tato situace nastane, pokud Agent distribuce používá dynamické uložené procedury sp_executesql jako obálka pro dávkové replikované mnoho příkazů.

Pokud příkaz replikované obsahuje více než 2098 parametry dávkového příkazu a dávkového příkazu zalomený pomocí sp_executesql uložené procedury doručit dávkové jako dynamicky předdefinovaný příkaz Transact-SQL, agent distribuce neobsahuje v sp_executesql uložené procedury potřebám dva další vázaného parametry výpočtu samotné funkce. Celkový počet parametrů tedy může přesáhnout 2100 parametry.

Agent distribuce může pomocí této volby doručení dynamicky předdefinovaný příkaz Transact-SQL vnořen sp_executesql uložené procedury v následujících situacích:
  • Článek obsahuje binární velké Object (BLOB) sloupce jako například text nebo obrázek sloupce.
  • Přes všechny články používá více než jeden typ příkazu replikace. Například pokud jednoho článku používá typ příkazu SQL doručení replikace, ale jiného článku používá sp_MSins_procedure uložené procedury jako typ příkazu replikace.

Řešení

SQL Server 2005

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 5 pro SQL Server 2005 Service Pack 3. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
972511 Balíček kumulativní aktualizace 5 pro SQL Server 2005 Service Pack 3
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání. Společnost Microsoft doporučuje zvážit instalaci nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
960598SQL Server 2005 vytvoří, které byly vydány po vydání SQL Server 2005 Service Pack 3
Opravy hotfix Microsoft SQL Server 2005 jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. K instalaci aplikace SQL Server 2005 Service Pack 3 musí použít opravu hotfix SQL Server 2005 Service Pack 3. Ve výchozím opravy hotfix, která je poskytována v aktualizace service pack pro SQL Server součástí příští aktualizace service pack pro SQL Server.

SQL Server 2008

SQL Server 2008

Důležité: Tato oprava je nutné použít, pokud používáte verzi SQL Server 2008.

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 7. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
973601Balíček kumulativní aktualizace 7 pro SQL Server 2008
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
956909Sestaví SQL Server 2008, které byly vydány po vydání SQL Server 2008

SQL Server 2008 Service Pack 1 (SP1)

Důležité: Tato oprava musíte použít, pokud je spuštěn SQL Server 2008 Service Pack 1 (SP1).

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 4 pro SQL Server 2008 Service Pack 1. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
973602Balíček kumulativní aktualizace 4 pro SQL Server 2008 Service Pack 1
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání. Společnost Microsoft doporučuje zvážit instalaci nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
970365Sestaví SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. K instalaci aplikace SQL Server 2008 Service Pack 1, je třeba použít opravu hotfix SQL Server 2008 Service Pack 1. Ve výchozím opravy hotfix, která je poskytována v aktualizace service pack pro SQL Server součástí příští aktualizace service pack pro SQL Server.

Jak potíže obejít

Chcete-li tento problém vyřešit, použijte jednu z následujících metod:

Metoda 1

Ke snížení výskyty této chybě více tolerable úroveň snížit hodnotu parametry CommitBatchSize a CommitBatchThreshold distribuce Agent. Cílem je omezit maximální počet příkazů za potvrzení dávkové vyhnout překročení 2,100 parametry za dávkové příkazy.

Například výchozí hodnota parametru CommitBatchSize je 100. Můžete změnit na 10. Výchozí hodnota parametru CommitBatchThreshold je 1000. Můžete změnit na 100.

Snížení tyto hodnoty mohou ovlivnit výkon, protože listy nejsou doručeny v původně optimální velikosti. Tato metoda však pomáhá zabránit chybové podmínky, které jsou popsány v části Příčina.

Parametry CommitBatchSize a CommitBatchThreshold můžete změnit pomocí následujících metod:
  • Přidat CommitBatchSize a CommitBatchThreshold parametrů příkazu úlohy krok distribuce Agent v SQL Server Agent
  • Změnit parametry CommitBatchSize a CommitBatchThreshold při vytvoření nového profilu agent z dialogového okna Vlastnosti Distributor nebo sledování replikace.
Další informace o tyto parametry měnit na webu Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms151326(SQL.90).aspx


Zcela se vyhnout této chybě pozdější opakování dávky, plánujete musí pro scénář nejhorší případu. To provedete najít nejširší článek, který má většina počet sloupců v publikaci. Například pokud mít tabulku, která má 100 sloupce, který je publikován v publikaci transakční replikované jediného příkazu proti tabulky mohou obsahovat 100 parametry. Nastavení parametru CommitBatchThreshold musí zmenšit tak, aby je maximální počet Agent distribuce má odeslat libovolný jeden dávkové parametry nejvíce 2098. Pokud všechny sloupce jsou ovlivněny příkazem, nastavení parametru CommitBatchThreshold má být 20 nebo menší povolit maximálně 2000 parametry za dávkové příkazy 20 proti tabulky.

Metoda 2

Při publikaci nastavit použít stejný typ příkazu replikace pro všechny články v publikaci. Vyhnout směšování mechanismy doručování příkaz pro články ve stejné publikaci snížit nutné Agent distribuce vyberte doručování dávky pomocí sp_executesql uložené procedury jako souhrnný na dávkové příkazy.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Další informace o replikaci Agent distribuci na webu Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms147328(SQL.90).aspx

Další informace o profilech agenta replikace na webu Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms151223(SQL.90).aspx

Odkazy

Další informace o modelu přírůstkové Servicing pro SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
935897Přírůstkové Model Servicing je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže
Další informace o získání SQL Server 2005 Service Pack 3 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
913089Jak získat nejnovější aktualizaci service pack pro SQL Server 2005
Další informace o nových funkcích SQL Server 2005 SP3 a o vylepšeních v SQL Server 2005 SP3 naleznete na následujícím webu:
http://go.microsoft.com/fwlink/?LinkId=131442
Další informace o pojmenování schématu aktualizace SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů pro balíčky aktualizací softwaru Microsoft SQL Server
Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 973103 - Poslední aktualizace: 17. srpna 2009 - Revize: 1.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Klíčová slova: 
kbmt kbsurveynew kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbhotfixserver KB973103 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:973103

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com