Zejména v prostředí aplikačních serverů nebo webových kontejnerů se uplatňuje metoda recyklace spojení s databází. Jde o to, že většinou má navázaní spojení nezanedbatelnou režii a také otevřené spojení spotřebovává systémové zdroje. Proto je součástí aplikačního serveru nebo kontejneru správce spojení, který otevře určitý počet spojení s databází a tyto otevřená spojení pak podle potřeby přiděluje běžícím procesům.
Když aplikace potřebuje spojení s databází, nenavazuje jej přímo, ale použije služeb tohoto správce. Když už spojení nepotřebuje, vrátí jej, a správce toto spojení může poskytnout dalšímu procesu.
Funkci správce spojení zajišťuje tovární třída implementující rozhraní javax.sql.DataSource
. Instanci této třídy získáme nejčastěji pomocí JNDI:
Context context = new InitialContext().lookup("java:comp/env"); DataSource source = (DataSource) context.lookup("jdbc/test"); // Spojení získáme pomocí metody getConnection() Connection conn = source.getConnection(); // ... // Zavoláním metody close() spojení vrátíme conn.close();
Typ JDBC ovladače a URL pro spojení s databází označenou jdbc/test se v tomto případě nastavuje v konfiguraci serveru či kontejneru.
Ne každá implementace rozhraní javax.sql.DataSource
musí provádět recyklaci spojení (connection pooling). I v takovém případě však zůstává její výhodou právě oddělení konfigurace přístupu k databázi od vlastního kódu programu.