Я столкнулся с исключением StaleConnectionException в своем приложении J2ee. Я изучал (и искал), и я нашел решение.WebSphere и StaleConnectionException
Вот оно.
public static Connection getConnection() {
Connection conn = null;
try {
if (ds == null) ds = (DataSource) new Utility.makeLookup();
conn = ds.getConnection();
conn.setAutoCommit(false);
// Check quality of return connection
Statement stmt = conn.createStatement();
stmt.executeQuery("Select 1 from dual");
stmt.close();
} catch (Throwable t) {
try {
// Recovery
ds = (DataSource) new Utility.makeLookup();
conn = ds.getConnection();
conn.setAutoCommit(false);
return conn;
} catch (Throwable t2) { /* RIP */ }
}
return conn;
}
Мне не нравится это решение, потому что я первый лаг 6 секунд при первом вызове метода, если я должен управлять StaleConnectionException.
Я сделал обходное решение: проверьте соединение в начале нового сеанса браузера, но мне это тоже не нравится.
Есть что-то лучшее, что я могу реализовать?
Заранее спасибо.
Шарлатанство