Sdružování připojení OLE DB, ODBC a Oracle

Sdružování připojení může výrazně zvýšit výkon a škálovatelnost vaší aplikace. Tato část popisuje sdružování připojení pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB, ODBC a Oracle.

Oledb

Rozhraní .NET Framework Zprostředkovatel dat pro OLE DB automaticky s fondy připojení pomocí sdružování relací OLE DB. Připojení argumenty řetězce lze použít k povolení nebo zakázání služeb OLE DB, včetně sdružování. Například následující připojovací řetězec zakáže sdružování relací OLE DB a automatické zařazení transakcí.

Provider=SQLOLEDB;OLE DB Services=-4;Data Source=localhost;Integrated Security=SSPI;

Doporučujeme, abyste připojení vždy zavřeli nebo odstranili, až ho použijete, abyste připojení vrátili do fondu. Připojení iony, které nejsou explicitně uzavřeny, se nemusí vrátit do fondu. Například připojení, které bylo mimo rozsah, ale které nebylo explicitně uzavřeno, se vrátí do fondu připojení pouze v případě, že bylo dosaženo maximální velikosti fondu a připojení je stále platné.

Další informace o relaci OLE DB nebo sdružování zdrojů a o tom, jak zakázat sdružování přepsáním výchozích hodnot služby zprostředkovatele OLE DB, naleznete v Příručce programátora OLE DB.

ODBC

Připojení sdružování pro rozhraní .NET Framework Zprostředkovatel dat pro rozhraní ODBC spravuje správce ovladačů ODBC, který se používá pro připojení, a není ovlivněn rozhraním .NET Framework Zprostředkovatel dat pro rozhraní ODBC.

Pokud chcete povolit nebo zakázat sdružování připojení, otevřete zdroj dat ODBC Správa istrator ve složce Správa istrative Tools Ovládací panely. Karta Připojení ion Sdružování umožňuje zadat parametry sdružování připojení pro každý nainstalovaný ovladač ODBC. Připojení změny sdružování pro konkrétní ovladač ODBC ovlivňují všechny aplikace, které používají tento ovladač ODBC.

OracleClient

Rozhraní .NET Framework Zprostředkovatel dat pro Oracle poskytuje automatické sdružování připojení pro vaši klientskou aplikaci ADO.NET. Můžete také zadat několik modifikátorů připojovací řetězec pro řízení chování sdružování připojení (viz "Řízení Připojení ion Sdružování pomocí Připojení ion String Keywords" dále v tomto tématu).

Vytváření a přiřazování fondů

Při otevření připojení se fond připojení vytvoří na základě přesného odpovídajícího algoritmu, který přidruží fond k připojovací řetězec v připojení. Každý fond připojení je přidružený k odlišnému připojovací řetězec. Pokud se otevře nové připojení, připojovací řetězec není přesná shoda s existujícím fondem, vytvoří se nový fond.

Po vytvoření se fondy připojení nezničí, dokud aktivní proces nedokončí. Údržba neaktivních nebo prázdných fondů používá velmi málo systémových prostředků.

přidání Připojení ionu

Pro každý jedinečný připojovací řetězec se vytvoří fond připojení. Při vytvoření fondu se vytvoří a přidá do fondu více objektů připojení, aby byl splněn požadavek na minimální velikost fondu. Připojení se podle potřeby přidají do fondu až do maximální velikosti fondu.

OracleConnection Pokud je objekt požadován, získá se z fondu, pokud je k dispozici použitelné připojení. Aby bylo možné připojení použít, musí být aktuálně nepoužité, musí mít odpovídající kontext transakce nebo není přidružen k žádnému kontextu transakce a má platný odkaz na server.

Pokud byla dosažena maximální velikost fondu a není k dispozici žádné použitelné připojení, žádost se zařadí do fronty. Fond připojení tyto požadavky splňuje tím, že při jejich uvolnění zpět do fondu uvolní připojení. Připojení iony se uvolní zpět do fondu, když jsou zavřeny nebo uvolněny.

odebrání Připojení ion

Nástroj pro sdružování připojení odebere připojení z fondu po delší dobu nečinnosti nebo pokud nástroj pro sdružování zjistí, že připojení k serveru bylo přerušeno. To se dá zjistit až po pokusu o komunikaci se serverem. Pokud se najde připojení, které už není připojené k serveru, označí se jako neplatné. Nástroj pro sdružování připojení pravidelně vyhledává objekty, které byly uvolněny do fondu, a jsou označené jako neplatné. Tato připojení se pak trvale odeberou.

Pokud existuje připojení k serveru, který zmizel, je možné toto připojení načíst z fondu, pokud nástroj pro sdružování připojení nezjistil přerušené připojení a označil ho jako neplatné. V takovém případě se vygeneruje výjimka. Přesto ale musíte připojení zavřít, aby se uvolnila zpět do fondu.

Nevyvolávejte ani nezavolávejte CloseConnection, DataReadernebo Dispose žádný jiný spravovaný objekt v Finalize metodě třídy. V finalizátoru uvolněte pouze nespravované prostředky, které vaše třída vlastní přímo. Pokud vaše třída nevlastní žádné nespravované prostředky, nezahrnujte do definice třídy metodu Finalize . Další informace naleznete v tématu Uvolňování paměti.

Podpora transakcí

Připojení iony se z fondu přiřazují a přiřazují se na základě kontextu transakce. Kontext požadovaného vlákna a přiřazeného připojení se musí shodovat. Proto je každý fond připojení rozdělený na připojení bez přidruženého kontextu transakce a do dílčích dělení N , které každý obsahuje připojení s konkrétním kontextem transakce.

Když je připojení uzavřeno, uvolní se zpět do fondu a do příslušného dílčího dělení na základě jeho kontextu transakce. Připojení proto můžete zavřít bez generování chyby, i když distribuovaná transakce stále čeká na vyřízení. To vám umožní potvrdit nebo přerušit distribuovanou transakci později.

Řízení Připojení sdružování s klíčovými slovy řetězce Připojení ion

ConnectionString Vlastnost objektu OracleConnection podporuje připojovací řetězec páry klíč/hodnota, které lze použít k úpravě chování logiky sdružování připojení.

Následující tabulka popisuje ConnectionString hodnoty, které můžete použít k úpravě chování sdružování připojení.

Název Výchozí Popis
Connection Lifetime 0 Když se připojení vrátí do fondu, porovná se jeho čas vytvoření s aktuálním časem a připojení se zničí, pokud toto časové rozpětí (v sekundách) překročí hodnotu určenou Connection Lifetime. To je užitečné v clusterovaných konfiguracích k vynucení vyrovnávání zatížení mezi běžícím serverem a serverem, který jste právě převedli do režimu online.

Hodnota nuly (0) způsobí, že připojení ve fondu budou mít maximální časový limit.
Enlist "true" Když true, pooler automaticky zařadí připojení do aktuálního transakčního kontextu vlákna vytvoření, pokud existuje kontext transakce.
Max Pool Size 100 Maximální počet připojení povolených ve fondu.
Min Pool Size 0 Minimální počet připojení udržovaných ve fondu.
Pooling "true" Pokud truese připojení nakreslí z příslušného fondu nebo v případě potřeby vytvoří a přidá do příslušného fondu.

Viz také