Volgens mij is het een redelijk bekend probleem (niet op got maar wel op google) ik heb alleen nog geen goed antwoord kunnen vinden.
Mijn probleem:
In java heb ik een server geschreven die via een connection-pool verbinding maakt met een mysql database. Als driver gebruik ik connectorJ van mysql zelf.
Alles werkt prima totdat de verbindingen met mysql worden verbroken wanneer er een tijd niets gebeurt. Tenmiste dit denk ik. Wat ik zeker weet is dat de verbindingen worden verbroken, mijn query komt namelijk ook niet in m'n mysql.log te staan. Ik denk dat dit gebeurt na een periode van inactiviteit.
Weet iemand een oplossing?
Is er een mogelijkheid zodat de driver zelf weet dat de verbinding weg is en dit netjes zelf regelt met java. b.v. met een bepaalde parameter die ik mee geef an mysql d.m.v de connection string?
of:
moet ik het lelijk oplossen en zelf zo af en toe de connectie resetten?
Onderstaad is de exception die ik krijg, na een simpele select query die goed is geformuleerd.
Mijn probleem:
In java heb ik een server geschreven die via een connection-pool verbinding maakt met een mysql database. Als driver gebruik ik connectorJ van mysql zelf.
Alles werkt prima totdat de verbindingen met mysql worden verbroken wanneer er een tijd niets gebeurt. Tenmiste dit denk ik. Wat ik zeker weet is dat de verbindingen worden verbroken, mijn query komt namelijk ook niet in m'n mysql.log te staan. Ik denk dat dit gebeurt na een periode van inactiviteit.
Weet iemand een oplossing?
Is er een mogelijkheid zodat de driver zelf weet dat de verbinding weg is en dit netjes zelf regelt met java. b.v. met een bepaalde parameter die ik mee geef an mysql d.m.v de connection string?
of:
moet ik het lelijk oplossen en zelf zo af en toe de connectie resetten?
Onderstaad is de exception die ik krijg, na een simpele select query die goed is geformuleerd.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| STACKTRACE:
java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1319)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1164)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2087)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2037)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1156)
at database.DBMS.getServiceID(DBMS.java:212)
at Protocol.xml(Protocol.java:216)
at Protocol.serviceRequest(Protocol.java:127)
at ServerThread.run(ServerThread.java:108)
** END NESTED EXCEPTION **
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1638)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1164)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2087)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2037)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1156)
at database.DBMS.getServiceID(DBMS.java:212)
at Protocol.xml(Protocol.java:216)
at Protocol.serviceRequest(Protocol.java:127)
at ServerThread.run(ServerThread.java:108)
java.lang.NullPointerException
at database.DBMS.getServiceID(DBMS.java:223)
at Protocol.xml(Protocol.java:216)
at Protocol.serviceRequest(Protocol.java:127)
at ServerThread.run(ServerThread.java:108) |