Oznámení
Opakované připojování k databázi po selhání prvního pokusu
před 7 lety
- Ascaria
- Člen | 187
Zdravím,
pokud mám lazy připojení k databázi, pravděpodobně se to při opakovaném selhávání (např změna hesla u db) bude u každého dotazu pokoušet připojit znovu. Jde v dibi nastavit, aby se to pokusilo připojit jen jednou a každej další pokus by rovnou házel exception? Případně po prvním pokusu o připojení vypnout lazy…
před 7 lety
- Milo
- Nette Core | 1119
Lazy připojení spočívá v tom, že se buď vytvoří připojení
k databázi ihned při vytváření objektu DibiConnection
anebo
až ve chvíli, kdy je potřeba. Tedy při volání prvního dotazu.
A pokud připojení při volání prvního dotazu selže, vyhodí se
DibiException
.
před 7 lety
- Ascaria
- Člen | 187
Ano vyhodí, ale pokud ten exception odchytím a pokračuju dál (např když selže dotaz, bez kterého se aplikace může vzpamatovat), tak další dotaz způsobí pokus o připojení znovu. V případě, že to bude způsobovat timeouty po nějakých 20ti vteřinách při každém neúspěšném připojení, je pak docela zlo na to čekat… Řešení je asi vypnout lazy, ale co když je lazy potřeba..
před 7 lety
- Milo
- Nette Core | 1119
Tohle s lazy připojení IMHO souvisí okrajově. Ty řešíš případ, kdy chceš nechat aplikaci běžet i přes chybu prováděného dotazu. Pokud tedy usoudíš, že není třeba dotaz úspěšně dokončit z jakéhokoliv důvodu, měl bys podle kódu vyjímky tento důvod kategorizovat a podle toho se rozhodnout jak dál.
Lazy „vypnout“ za běhu už nelze. Objekt DibiConnection
už
jednou existuje bez aktivního DB spojení. U „ne-lazy“ přístupu by
neexistoval.
před 7 lety
- Ascaria
- Člen | 187
Chápu, takže je to na mě. :)