Java / JDBC: лучший шаблон проектирования для закрытия соединения с базой данных при возникновении исключения

Я новичок в Java (я использую Java 6). Я использовал приведенный ниже шаблон проектирования для всех моих Java POJO и сервлетов для доступа к базе данных Oracle 11G через веб-сервер GlassFish 3.1.2.

Я получаю неустойчивую ошибку базы данных (ORA-12519), когда все доступные процессы (или сеансы, не уверен, в чем разница) используются, что заставляет меня думать, что процессы не освобождаются приложением.

Глядя на шаблон проектирования ниже, есть ли лучший способ убедиться, что соединение JDBC с базой данных освобождается в случае исключения? Например, я должен также разместитьif ( conn != null) conn.close(); код ВНУТРИ блока 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;
}

Ответы на вопрос(4)

Ваш ответ на вопрос