Zprostředkovatelé úložiště instancí, dotazů a řízení
Úložiště instancí je logickým kontejnerem instancí. Jedná se o umístění, ve kterém jsou uložena data a metadata instancí. Úložiště instancí nutně neznamená vyhrazené fyzické úložiště. Může obsahovat trvanlivé informace v databázi systému SQL Server nebo netrvanlivé informace o stavu v paměti. Součástí rozhraní .NET Framework verze 4 je úložiště instancí pracovních postupů SQL představující konkrétní implementaci úložiště instancí, které umožňuje uložení dat a metadat instancí do databáze systému SQL Server 2005 nebo SQL Server 2008. Další informace naleznete v článku Úložiště instancí (https://go.microsoft.com/fwlink/?LinkId=181533) v nápovědě k rozhraní .NET Framework. Technologie AppFabric podporuje ukládání instancí služeb pracovních postupů pouze do databází systému SQL Server 2008.
Chcete-li používat úložiště instancí s nástroji technologie AppFabric (rutiny prostředí Windows PowerShell a rozšíření Správce služby IIS) a se službou Správa pracovního postupu, je třeba pro toto úložiště vytvořit zprostředkovatele úložiště instancí, zprostředkovatele dotazů na instance a zprostředkovatele řízení instancí. Tyto tři typy zprostředkovatelů jsou popsány v následujících odstavcích.
Poznámka
Rozhraní API zprostředkovatele dotazů na instance a zprostředkovatele řízení instancí je založeno na rozhraní .NET Framework 2.0, zatímco rozhraní API zprostředkovatele úložiště instancí je založeno na rozhraní .NET Framework verze 4.
Zprostředkovatelé úložiště instancí
Zprostředkovatel úložiště instancí zpřístupní rozhraní API, které klienti vyvolávají pro vytváření objektů úložiště instancí. Pomocí objektu úložiště instancí může klient uložit instanci pracovního postupu do základního úložiště instancí (například do databáze systému SQL Server) nebo načíst instanci z úložiště.
Technologie AppFabric obsahuje zprostředkovatele pro úložiště instancí pracovních postupů SQL. Chcete-li vytvořit podporu pro jiné úložiště instancí, je třeba pro ně vytvořit zprostředkovatele. K vytvoření zprostředkovatele úložiště instancí je třeba vytvořit třídu odvozenou od třídy InstanceStoreProvider a implementovat metody, které vytvoří úložiště instancí, jako je například SqlWorkflowInstanceStore. Další informace naleznete v tématu Postupy: Vývoj zprostředkovatele úložiště instancí.
Zprostředkovatelé dotazů na instance
Zprostředkovatel dotazů na instance umožňuje zadávat vůči úložišti instancí dotazy. Při použití rutiny, jako je Get-ASAppServiceInstance, pro zadání dotazu na instance v úložišti instancí tato rutina vytvoří objekt zprostředkovatele dotazů a vyvolá u objektu metody. Objekt zprostředkovatele dotazů vytvoří dotazy a spustí je vůči úložišti instancí a výsledky dotazu vrátí rutině. Rozšíření Správce služby IIS pro technologii AppFabric používají ve většině scénářů rutiny pro zadávání dotazů vůči úložištím instancí. Z tohoto důvodu také závisí na zprostředkovatelích dotazů.
Všichni zprostředkovatelé dotazů implementují stejné rozhraní API a poskytují abstrakční vrstvu nad různými základními úložišti instancí. Technologie AppFabric obsahuje zprostředkovatele dotazů na instance pro úložiště instancí pracovních postupů SQL, který umožňuje zadávat dotazy na instance uložené v databázi trvalosti systému SQL Server. Jakmile zprostředkovatel dotazů SQL přijme dotaz od klienta (například od rutiny prostředí Windows PowerShell), zadá dotaz a načte data instance z databáze systému SQL Server a vrátí sadu výsledků klientovi. Implementace zprostředkovatele dotazů na instance pro úložiště instancí pracovních postupů SQL se nachází v knihovně Microsoft.ApplicationServer.StoreManagement.dll.
Chcete-li vytvořit podporu pro zadávání dotazů pro jiný typ úložiště instancí, je třeba mít pro toto úložiště zprostředkovatele dotazů na instance. K vytvoření vlastního zprostředkovatele dotazů je třeba vytvořit třídu odvozenou od třídy InstanceQueryProvider a implementovat metody pro spuštění dotazů za klienta. Další informace naleznete v tématu Postupy: Vývoj zprostředkovatele dotazů na instance.
Zprostředkovatelé řízení instancí
Zprostředkovatel řízení instancí umožňuje klientovi vydávat řídicí příkazy vůči instancím v úložišti instancí a načítat příkazy, které je třeba spustit vůči instanci. Při použití rutiny prostředí Windows PowerShell v technologii AppFabric k řízení (pozastavení, obnovení atd.) instance v úložišti instancí vytvoří tato rutina objekt zprostředkovatele řízení a vyvolá u tohoto objektu metodu, která přidá příkaz do fronty příkazů. Zprostředkovatel řízení spravuje frontu příkazů uloženou v úložišti instancí. Obecný hostitel, například služba Správa pracovního postupu, vytvoří objekt zprostředkovatele řízení a vyvolá u něj metodu pro načtení příkazu uloženého ve frontě příkazů a tento příkaz spustí. Správa pracovního postupu oznámí zprostředkovateli řízení nezdařené nebo úspěšné spuštění. Pokud bylo spuštění úspěšné, zprostředkovatel řízení odebere příkaz z fronty. V opačném případě Správa pracovního postupu upozorní zprostředkovatele na chybu a ten pak provede příslušnou akci.
Kromě předání příkazu z fronty do Správy pracovního postupu předává zprostředkovatel řízení instancí balík vlastností obsahující metadata o instanci, vůči níž byl příkaz vydán. Balík vlastností obsahuje název webu a virtuální cestu ke službě instance. Zprostředkovatel řízení získává tato metadata z úložiště instancí. Správa pracovního postupu používá tato metadata k získání přístupu ke koncovému bodu řízení instancí zpřístupněnému instancí služby a vyvolává u tohoto koncového bodu příslušné metody.
Všichni zprostředkovatelé dotazů implementují stejné rozhraní API a poskytují abstrakční vrstvu nad různými základními úložišti instancí. Technologie AppFabric obsahuje zprostředkovatele řízení instancí pro úložiště instancí pracovních postupů SQL, který umožňuje vydávat řídicí příkazy vůči instancím uloženým v databázi trvalosti systému SQL Server. Implementace zprostředkovatele řízení instancí pro úložiště instancí pracovních postupů SQL je v knihovně Microsoft.ApplicationServer.StoreManagement.dll. Chcete-li vytvořit podporu pro vydávání příkazů vůči instancím uloženým v jiném typu úložiště instancí, je třeba pro toto úložiště vytvořit zprostředkovatele řízení instancí.
K vytvoření vlastního zprostředkovatele řízení instancí je třeba vytvořit třídu odvozenou od třídy InstanceControlProvider a implementovat metody pro přidání a načtení příkazů z fronty příkazů jménem klientů. Další informace naleznete v tématu Postupy: Vývoj zprostředkovatele řízení instancí.
Zprostředkovatel řízení instancí pro úložiště instancí pracovních postupů SQL
Technologie AppFabric obsahuje zprostředkovatele řízení instancí pro úložiště instancí pracovních postupů SQL. Zprostředkovatel řízení spravuje frontu příkazů v databázi systému SQL Server. Při spuštění řídicí rutiny vůči úložišti instancí pracovních postupů SQL obdrží zprostředkovatel řízení instancí žádost a uloží informace o příkazu do fronty příkazů v databázi systému SQL Server. Správa pracovního postupu použije zprostředkovatele řízení instancí k načtení příkazu z fronty příkazů, spustí tento příkaz vůči úložišti instancí pracovních postupů SQL a odstraní jej z fronty příkazů, pokud bylo jeho spuštění úspěšné. Implementace zprostředkovatele řízení instancí pro úložiště instancí pracovních postupů SQL je v knihovně Microsoft.ApplicationServer.StoreManagement.dll.
Následující body se týkají zprostředkovatele řízení instancí pro úložiště instancí pracovních postupů SQL:
Okamžitě (synchronně) zpracuje příkaz Odstranit. Dříve než zprostředkovatel řízení předá všechny ostatní příkazy Správě pracovního postupu ke zpracování, jsou tyto příkazy zařazeny (přidány) do fronty příkazů.
Fronta příkazů je frontou FIFO (First In First Out). Zprostředkovatel řízení přidává nový příkaz na konec fronty a čte jej zepředu. Zprostředkovatel řízení vrátí Správě pracovního postupu nejstarší příkaz, který není zamčen.
Ve frontě může uložit pouze jeden příkaz na instanci. Pokud zprostředkovatel přijme žádost o zařazení příkazu do fronty pro instanci, ve které již příkaz ve frontě existuje, přepíše existující příkaz, pokud není uzamčen. Je-li příkaz uzamčen nebo je-li ve stavu čekání, vrátí zprostředkovatel řízení chybu.
Po přečtení příkazu z fronty zprostředkovatel umístí dočasný zámek. Platnost zámku vyprší po 65 sekundách. Po přijetí oznámení ze Správy pracovního postupu o úspěšném spuštění příkazu zprostředkovatel odebere příkaz z fronty.
Pokud se spuštění nezdaří, zprostředkovatel řízení zopakuje příkaz pětkrát. Fronta příkazů spravuje čítač neúspěšných pokusů o spuštění. Pokud se spuštění příkazu pětkrát nezdaří, zprostředkovatel jej odebere z fronty.
Zprostředkovatel spravuje v databázi protokol chyb spuštění příkazů. Tento protokol ukládá metadata o neúspěšných příkazech a příčinách chyb. Protokol obsahuje nejvýše jeden neúspěšný příkaz na instanci. Každá položka protokolu obsahuje typ příkazu, ID instance, kód chyby, chybovou zprávu, čas posledního pokusu o spuštění, ID počítače, v němž bylo spuštění příkazu provedeno, a počet pokusů o spuštění.
Položka protokolu pro instanci je odebrána v případě, že je do fronty zařazen nový příkaz, nebo pokud uživatel odebere instanci z úložiště instancí. Uživatel může odebrat instanci pomocí rutiny (například Remove-ASAppServiceInstance).
Zprostředkovatel řízení vyřazuje příkazy z fronty v dávkách po 10.
Další odkazy
Koncepty
Postupy: Vývoj zprostředkovatele úložiště instancí
Postupy: Vývoj zprostředkovatele dotazů na instance
Postupy: Vývoj zprostředkovatele řízení instancí
Postupy: Konfigurace zprostředkovatelů úložišť instancí, dotazů a řízení
2011-12-05