Hallo,
ich nutze DBCP, damit mein Servlet mit einer MySQL Datenbank Verbindungen aufbauen kann. Für die Datenbank Verbindungen habe ich deshalb folgende Klasse geschrieben:
Sinn des Servlets ist es einfach nur RPC Calls auszuführen und Daten zurück zu liefern. Eine der Funktionen des Servlets sieht z.B. so aus:
Es funktioniert eigentlich ganz gut, nur habe ich nach einiger Zeit irgendwann das Problem, dass auf einmal garnichts mehr geht. Und es scheint an
zu liegen. Tomcat zeigt auch an, das zahlreiche Threads busy sind. Habe ich irgendwelche logischen Fehler in den Klassen drin oder woran liegt das?
ich nutze DBCP, damit mein Servlet mit einer MySQL Datenbank Verbindungen aufbauen kann. Für die Datenbank Verbindungen habe ich deshalb folgende Klasse geschrieben:
Code:
public class DBConnection {
private static BasicDataSource ds;
public Connection getDataSource(){
if(ds==null){
ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername(Config.get_mysql_username());
ds.setPassword(Config.get_mysql_pwd());
String url = "jdbc:mysql://" + Config.get_mysql_host() + ":3306/"+Config.get_mysql_dbname();
ds.setUrl(url);
ds.setMaxActive(10);
ds.setMaxIdle(3);
}
try {
Connection conn = ds.getConnection();
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Sinn des Servlets ist es einfach nur RPC Calls auszuführen und Daten zurück zu liefern. Eine der Funktionen des Servlets sieht z.B. so aus:
Code:
public UserData getAdvancedUserData(String userKey, UserData userData) {
DBConnection db = new DBConnection();
Connection con = db.getDataSource();
try {
String _userID = DB.checkUserKey(userKey, con);
UserData result = DB.getAdvancedUserData(userData, _userID, con);
con.close();
return result;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Es funktioniert eigentlich ganz gut, nur habe ich nach einiger Zeit irgendwann das Problem, dass auf einmal garnichts mehr geht. Und es scheint an
Code:
Connection conn = ds.getConnection();