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 Close
Connection
, DataReader
nebo 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 true se 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. |