Vielen Dank für diese perfekte Antwort! Ich habe mich an deine Best Practise gehalten und nun folgenden JNDI Eintrag in der context.xml Datei vorgenommen:
[XML]
<Resource
name="jdbc/applikation"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
maxActive="100"
maxIdle="30"
maxIdleTime="3600"
maxPoolSize="15"
maxWait="10000"
minPoolSize="3"
username="xxxx"
password="xxxx"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/applikation" />
[/XML]
Im Java Code habe ich nun folgenden Verweis auf diese Resource:
[code=Java]
public static Connection getConnection() {
if (connection == null) {
DataSource ds = null;
// Obtain our environment naming context
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
ds = (DataSource) envCtx.lookup("jdbc/applikation");
} catch (NamingException e) {
e.printStackTrace();
}
// Allocate and use a connection from the pool
try {
connection = ds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return connection;
}
[/code]
In meinem Java Code verwende ich dann jeweils getConnection(); am Start vieler Methoden. Ich habe noch zwei kurze Fragen dazu:
a) Ist das Setzen des Parameters "maxIdleTime" ausreichend, um die Verbindungsabbrüche zu vermeiden?
b) Ist die Vorgehensweise, dass ich die Methode getConnection(); am Start vieler Methoden aufrufe best practise oder implementiert man die Datenbankkonnektivität normallerweise anders?
Gruß
Stefan