Я новичок в Java (я использую Java 6). Я использую приведенный ниже шаблон проектирования для всех своих Java POJO и сервлетов для доступа к базе данных Oracle 11G через веб-сервер GlassFish 3.1.2.
Я получаю прерывистую ошибку базы данных (ORA-12519), когда все доступные процессы (или сеансы, не уверен, какая разница) потребляются, что заставляет меня думать, что процессы не будут выпущены приложением.
Рассматривая шаблон проектирования ниже, есть ли лучший способ убедиться, что соединение JDBC с базой данных будет выпущено в случае исключения? Например, должен ли я также помещать код if ( conn != null) conn.close();
INSIDE в блок catch? Или, есть ли лучший дизайн? Заранее благодарим за любые комментарии/подсказки.
public String MyFunction() throws Exception {
Connection conn;
CallableStatement cs;
try {
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("jdbc/MyPool");
conn = ds.getConnection();
cs = conn.prepareCall( "{call my_sproc (?)}" );
cs.registerOutParameter(1, Types.VARCHAR);
cs.execute();
String outParam = cs.getString(1);
if ( conn != null ) // close connection
conn.close();
} catch (Exception e) {
outParam = "an error occurred";
}
return outparam;
}