Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tidsgränsinställningar i JDBC-drivrutinen kan användas för att prioritera programmets svarstider. Som standard prioriterar de flesta drivrutins timeouter att vänta på ett resultat för att säkerställa datakonsekvens. Se till att du väljer tidsgränser som är lämpliga för programmets behov.
För den första anslutningen loginTimeout används:
-
loginTimeoutär antalet sekunder som drivrutinen väntar på att etablera en anslutning till servern. Om denna tid passerar ger drivrutinen ett felmeddelande och öppnar ingen anslutning. Ett nollvärde sätter timeouten till standard-systemets timeout, som är 30 sekunder i JDBC-drivrutin 11.2 och senare versioner. I JDBC-drivrutin 10.2 och tidigare versioner är standardtimeout 15 sekunder. Ett värde som inte är noll anger hur många sekunder drivrutinen väntar innan den ger upp ett misslyckat anslutningsförsök. Om du konsekvent har problem att etablera en anslutning med JDBC-drivrutinen kan du behöva öka denna timeout till 90 eller till och med 120 sekunder.loginTimeoutbegränsar också drivrutinens anslutningsförsök, inte bara ett enda försök, vilket är viktigt när du ansluter till en automatiskt pausad Azure SQL Database-serverlös databas. För mer information, se Koppla till en automatiskt pausad serverlös databas.
När anslutningen har upprättats används queryTimeout, cancelQueryTimeout och lockTimeout under exekveringar av instruktioner.
socketTimeout används för all drivrutinskommunikation med servern.
-
queryTimeoutär tiden, i sekunder, som drivrutinen kommer att vänta efter att ha skickat ett körningskommando till servern för att ta emot ett datasvar från servern. Om den här tiden överskrids avbryts kommandot. Om tidsgränsen överskrids stängs inte anslutningen. Standardvärdet är -1, vilket innebär oändlig timeout. -
cancelQueryTimeoutär tiden, i sekunder, som föraren väntar på ett erkännande avqueryTimeoutannulleringen från servern innan anslutningen tvångsavslutas/stängs. Det innebär att drivrutinen väntar den totala tidencancelQueryTimeoutplusqueryTimeoutsekunder innan anslutningen stängs. Om du anger den här tidsgränsen till ett icke-nollvärde ser du till att program kan förbli dynamiska om det uppstår nätverks- eller kommunikationsfel med servern när en fråga har överskriden tidsgräns. Standardvärdet för den här egenskapen är -1, vilket är en oändlig väntetid. -
lockTimeoutär tiden att vänta tills ett lås hunnit frigöras, i de fall där en låsblockering hindrar körningen. Om tidsgränsen överskrids resulterar det inte i en stängd anslutning. Standardvärdet för den här egenskapen är -1, vilket är en oändlig väntetid. -
socketTimeoutgäller för all socketkommunikation med servern. Om servern stoppar kommunikationen med drivrutinen, antingen genom att inte bekräfta eller svara på data, väntar drivrutinen på värdetsocketTimeoutföre anslutningen stängs. Om du ställer in den här tidsgränsen på ett icke-nollvärde kan program förbli dynamiska om det uppstår nätverks- eller kommunikationsfel med servern. Standardvärdet är 0, vilket innebär en oändlig timeout. Se till attsocketTimeoutär större änqueryTimeoutför att undvika socket-timeout-undantag under fönstretqueryTimeout. Se till attsocketTimeoutär större äncancelQueryTimeoutför att undvika socket-timeout-undantag undercancelQueryTimeout-fönstret.
Rimliga tidsgränsvärden för ditt program beror på programmets prioriteringar. Om du anger lägre värden för timeouter prioriteras programmets svarstider framför datakonsekvens. När tidsgränser nås måste applikationerna bestämma den bästa handlingsplanen. Det beslutet baseras på den databasåtgärd som utförs. Till exempel, för en SELECT sats kan beslutet vara att rapportera ett fel till användaren, eller att återansluta och försöka igen. För INSERT eller UPDATE uttalanden kan det beslutet vara annorlunda.
För ett dynamiskt program loginTimeout och queryTimeout bör anges till relativt låga värden.
cancelQueryTimeout På samma sätt bör detta också ställas in på ett lågt värde för att säkerställa att drivrutinen inte väntar för länge på att servern ska bekräfta avbrytandet av frågan när en queryTimeout överskrids. Slutligen bör socketTimeout ställas in för att förhindra att drivrutinen väntar för länge vid alla scenarier där anslutningen till servern bryts (nätverksavbrott, serverkrasch etc.).
Egenskapssammanfattning
| Fastighet | Description | Förinställning | Anslutningsresultat |
|---|---|---|---|
loginTimeout |
Antalet sekunder som föraren ska vänta innan en misslyckad anslutning avbryts. | 30 sekunder [11.2+], annars 15 sekunder |
Stängd anslutning |
queryTimeout |
Antalet sekunder att vänta innan du avbryter en fråga. | -1 [Oändlig timeout] | Öppna anslutning |
cancelQueryTimeout |
Antalet sekunder att vänta på en bekräftelse av annulleringen av QueryTimeout. | -1 [Oändlig timeout] | Stängd anslutning |
lockTimeout |
Antalet millisekunder att vänta innan databasen returnerar ett låstidsgränsfel. | -1 [Oändlig timeout] | Öppna anslutning |
socketTimeout |
Antalet millisekunder att vänta vid läsning eller skrivning på en socket. | Noll [Oändlig timeout] | Stängd anslutning |