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.
Nastavení časového limitu v ovladači JDBC lze použít k určení priority odezvy aplikace. Ve výchozím nastavení většina časových limitů řidiče určuje prioritu čekání na výsledek, aby se zajistila konzistence dat. Ujistěte se, že jste zvolili časové limity, které jsou vhodné pro potřeby vaší aplikace.
Při počátečním připojení se používá loginTimeout:
-
loginTimeoutje doba, v sekundách, ovladač čeká na navázání připojení k serveru. Pokud se tato částka překročí, vrátí se chyba a nenaváže se žádné otevřené připojení. Nulová hodnota označuje, že časový limit je výchozí systémový časový limit, což je 30 sekund ve verzích 11.2 a vyšší. Pro verze 10.2 a novější je výchozí časový limit 15 sekund. Jakákoli nenulová hodnota udává počet sekund, po které by měl ovladač počkat před vypršením časového limitu neúspěšného připojení. Pokud máte neustále potíže s navazováním připojení k ovladači JDBC, možná budete muset tento časový limit prodloužit na 90 nebo dokonce 120 sekund.
Jakmile je připojení vytvořeno, queryTimeoutcancelQueryTimeouta lockTimeout jsou použity během provádění příkazů.
socketTimeout se používá pro veškerou komunikaci ovladače se serverem.
-
queryTimeoutje doba v sekundách, kdy ovladač po odeslání příkazu execute na server počká, aby přijal odpověď ze serveru s daty. Pokud se tento čas překročí, příkaz se zruší. Překročení tohoto časového limitu připojení nezavře. Výchozí hodnota je -1, což znamená nekonečný časový limit. -
cancelQueryTimeoutje doba v sekundách, kdy ovladač čeká na potvrzeníqueryTimeoutzrušení ze serveru před vynuceným ukončením nebo zavřením připojení. To znamená, že ovladač čeká celkové množstvícancelQueryTimeoutplusqueryTimeoutsekund před uzavřením připojení. Nastavením tohoto časového limitu na nenulovou hodnotu zajistíte, aby aplikace zůstaly responzivní, pokud dojde k selhání sítě nebo komunikace se serverem, když vypršel časový limit dotazu. Výchozí hodnota této vlastnosti je -1, což je nekonečná doba čekání. -
lockTimeoutje doba čekání na uvolnění zámku v případech, kdy se spustí příkaz blokující zámek. Překročení tohoto časového limitu nemá za následek zavřené připojení. Výchozí hodnota této vlastnosti je -1, což je nekonečná doba čekání. -
socketTimeoutplatí pro veškerou komunikaci soketů se serverem. Pokud server zastaví komunikaci s ovladačem, a to tím, že nepotvrzuje nebo neodpovídá na data, ovladač počká na hodnotusocketTimeout, než připojení uzavře. Nastavením tohoto časového limitu na nenulovou hodnotu zajistíte, aby aplikace zůstaly responzivní, pokud dojde k selhání sítě nebo komunikace se serverem. Výchozí hodnota je 0, což znamená nekonečný časový limit. Ujistěte se, žesocketTimeoutje větší nežqueryTimeout, aby vám nevypršel časový limit soketů běhemqueryTimeoutokna. Podobně se ujistěte, žesocketTimeoutje větší nežcancelQueryTimeout, abyste zabránili výjimkám časového limitu soketů během oknacancelQueryTimeout.
Přiměřené hodnoty časového limitu pro vaši aplikaci závisí na prioritách aplikace. Nastavení nižších hodnot pro časové limity určuje prioritu odezvy aplikace oproti konzistenci dat. Po dosažení časových limitů musí aplikace rozhodnout o nejlepším průběhu akce. Toto rozhodnutí vychází z prováděné databázové akce. Například u SELECT příkazu může být rozhodnutí buď ohlásit uživateli chybu, nebo se znovu připojit a pokusit se spojení obnovit. U INSERT nebo UPDATE prohlášení se toto rozhodnutí může lišit.
Pro responzivní aplikaci loginTimeout a queryTimeout měla by být nastavená na relativně nízké hodnoty. Podobně by také měla být nastavena nízká hodnota cancelQueryTimeout, aby ovladač nečekal příliš dlouho na potvrzení zrušení dotazu serverem, když queryTimeout dojde k překročení. Nakonec by mělo být socketTimeout nastavováno, aby se zabránilo příliš dlouhému čekání ovladače v jakémkoli scénáři, kdy dojde k přerušení připojení k serveru (přerušení sítě, selhání serveru atd.).
Souhrn vlastností
| Vlastnictví | Description | Výchozí | Výsledek připojení |
|---|---|---|---|
loginTimeout |
Počet sekund, po které by měl ovladač čekat před vypršením časového limitu neúspěšného připojení. | 30 sekund [11,2+], jinak 15 sekund |
Uzavřené připojení |
queryTimeout |
Počet sekund čekání před zrušením dotazu. | -1 [Nekonečný časový limit] | Otevřené připojení |
cancelQueryTimeout |
Počet sekund čekání na potvrzení zrušení QueryTimeout. | -1 [Nekonečný časový limit] | Uzavřené připojení |
lockTimeout |
Počet milisekund, které je třeba počkat, až databáze vrátí chybu časového vypršení uzamčení. | -1 [Nekonečný časový limit] | Otevřené připojení |
socketTimeout |
Počet milisekund, které se mají čekat na čtení nebo zápis socketu. | Nula [Nekonečný časový limit] | Uzavřené připojení |