Gå til innhold

JDBC avslutter ikke tilkoblingen mot MySQL korrekt


Anbefalte innlegg

Skrevet

Hei.

 

Noen som har vært borti samme problemet? I tillegg er det en bug i MySQL som øker Aborted_connections med to per tilkobling som blir avbrutt.

 

Men ihvertfall ... Noen som vet om det er mulig å få tilkoblingen til å stenges når vaskehjelpen (garbage collector) kommer?

Videoannonse
Annonse
Skrevet
Hei.

 

Noen som har vært borti samme problemet? I tillegg er det en bug i MySQL som øker Aborted_connections med to per tilkobling som blir avbrutt.

 

Men ihvertfall ... Noen som vet om det er mulig å få tilkoblingen til å stenges når vaskehjelpen (garbage collector) kommer?

9066094[/snapback]

 

Kan du ikke stenge dem selv i koden ?

Skrevet

The obvious answer, selvsagt ... For å spesifisere mer nøyaktig, er det slik at hvis jeg kjører System.exit(42) så avsluttes tilkoblingen korrekt av garbage collectoren?

Skrevet
The obvious answer, selvsagt ... For å spesifisere mer nøyaktig, er det slik at hvis jeg kjører System.exit(42) så avsluttes tilkoblingen korrekt av garbage collectoren?

9066979[/snapback]

 

Hvis du bruker System.exit(n) så avslutter du jo jvm'n. Er det ikke bare connection du skal avslutte ?

Da kan du i så fall bruke Connection sin close ().

 

Utdrag fra java api:

 

close

void close()

throws SQLExceptionReleases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released.

Calling the method close on a Connection object that is already closed is a no-op.

 

Note: A Connection object is automatically closed when it is garbage collected. Certain fatal errors also close a Connection object.

 

 

Throws:

SQLException - if a database access error occurs

Skrevet

Ja, selvsagt kan jeg bruke close(), og det gjør jeg nå, og jeg har også lest at garbage collectoren skal close den automatisk, men det er ikke min erfaring av den per nå.

 

Nå har jeg dog gjort alt jeg kan for å få den closed, men jeg vil bare sørge for at det ikke skjer noe særtilfeller.

Skrevet
Ja, selvsagt kan jeg bruke close(), og det gjør jeg nå, og jeg har også lest at garbage collectoren skal close den automatisk, men det er ikke min erfaring av den per nå.

 

Nå har jeg dog gjort alt jeg kan for å få den closed, men jeg vil bare sørge for at det ikke skjer noe særtilfeller.

9067067[/snapback]

 

Okei. Man kan jo ikke force garbage collection. Blir bare en request når du kjører System.gc() eller Runtime.getRuntime().gc().

Hvis du har kontroll over databasen du bruker, så kan kanskje endre noen innstillinger i connection poolinga?

Skrevet

Foreløpig starter jeg en connection som varer helt til windowClosed() blir avfyrt, da closer jeg den. Kan det føre til en timeout som ødelegger connection-en uskikkelig? Ja, jeg har root-tilgang til MySQL-databasen.

Skrevet
Foreløpig starter jeg en connection som varer helt til windowClosed() blir avfyrt, da closer jeg den. Kan det føre til en timeout som ødelegger connection-en uskikkelig? Ja, jeg har root-tilgang til MySQL-databasen.

9067191[/snapback]

 

Nå kjenner jeg ikke til windowClosed(), men du kan jo prøve debugge å se om con.close() faktisk blir kjørt og ikke kaster exception. Bare sånn for å være helt sikker.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...