Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Služba komponent zařazených do fronty v modelu COM+ neumožňuje zařazování do fronty pro každou existující komponentu COM. Existují omezení typů metod, které lze zařadit do fronty. Z důvodu omezení zasílání zpráv musí metody dodržovat následující pravidla:
- Musí obsahovat pouze vstupní parametry.
- Nesmí vracet žádný výsledek specifický pro aplikaci.
Kromě toho existují omezení typů vstupních parametrů, které lze předat komponentě zařazené do fronty. Při běhu programu služba komponent zařazených do fronty zabalí argumenty na straně klienta a předá je do součásti serveru pomocí služby fronty zpráv. Jednoduché typy, jako jsou celá čísla a logické hodnoty, lze snadno zařaďovat – složitější typy nelze zařaďovat bez pomoci.
V případě, že se předává objekt jako parametr při volání metody komponenty ve frontě, klient předá objekt záznamníku. Záznamník převede objekt do zprávy pro Řízení front zpráv a předá ho posluchači. Jakmile posluchač přijme zprávu a předá ji přehrávači, musí přehrávač znovu vytvořit objekt, aby ho distribuuoval do volání metody určené klientem. Na základě životnosti klienta a serveru v prostředí s frontami vyplývá, že tyto objekty musí být schopny procházet procesem serializace dle hodnoty. Vzhledem k tomu, že com+ neposkytuje sémantiku pass-by-value pro standardní objekty COM, zapisovač a přehrávač potřebují pomoc od komponenty zařazování a odhalování objektu.
Odkazy na objekty, které podporují IPersistStream lze použít jako parametry pro volání metod ve frontě komponent. Objekt nemůže činit žádné předpoklady ohledně toho, kdy bude znovu vytvořen. Server může být například nedostupný nebo se součást serveru nemusí spustit až později v den. Objekty, které nepodporují IPersistStream vrátí chybu.
Trvalé objekty jazyka Visual Basic
Microsoft Visual Basic 6 umožňuje vytvoření trvalých objektů. Tyto objekty podporují IPersistStream a lze je předat jako parametry volání metod komponent zařazených do fronty. Před předáním objektu jazyka Visual Basic komponentě zařazené do fronty musí být trvalý objekt inicializován. Můžete to provést jedním z následujících dvou způsobů:
- Pokud je aplikace, která vytváří trvalý objekt, zapsána v jazyce Visual Basic, modul runtime jazyka Visual Basic zpracovává inicializaci objektu automaticky.
- Pokud je aplikace, která vytvoří perzistentní objekt jazyka Visual Basic, napsána v jiném jazyce než Visual Basic, jako je například Microsoft Visual C++, aplikace musí explicitně inicializovat komponentu buď dotazováním na rozhraní perzistentního objektu IPersistStream, nebo voláním metody IPersistStreamInit::InitNew, nebo metody IPersistStream::Load.
Sady záznamů ADO a sady řádků OLE DB
Předávání objektů sady záznamů ADO nebo objekty sady řádků OLE DB mezi komponentami umožňuje jedné komponentě zpracovat výsledky dotazů spuštěných jinou komponentou. To je užitečné při nasazování aplikace do více počítačů. objekty sady záznamů a sady řádků lze předat jako parametry metody komponentám zařazeným do fronty s následujícími omezeními:
- Objekty sady záznamů na straně serveru nelze maršálovat pomocí IPersistStream. Do volání metody zařazené do fronty lze předat pouze objekty na straně klienta sady záznamů objekty.
- Pokud pracujete přímo s OLE DB, musí být sada řádků OLE DB definována jako sada řádků na straně klienta.