title: Oracle doesn't remove cursors after closing result set
body: <p>Note: we reuse single connection.</p>
  
  <pre><code>************************************************
  public Connection connection() {        
      try {
          if ((connection == null) || (connection.isClosed()))
          {
              if (connection!=null)
                  log.severe("Connection was closed !");
              connection = DriverManager.getConnection(jdbcURL, username, password);
          }
      } catch (SQLException e) {
          log.severe("can't connect: " + e.getMessage());
      }
      return connection;        
  }
  **************************************************
  
  public IngisObject[] select(String query, String idColumnName, String[] columns) {
      Connection con = connection();
  
      Vector&lt;IngisObject&gt; objects = new Vector&lt;IngisObject&gt;();
      try {
          Statement stmt = con.createStatement();
  
          String sql = query;
          ResultSet rs =stmt.executeQuery(sql);//oracle increases cursors count here
          while(rs.next()) {
              IngisObject o = new IngisObject("New Result");
              o.setIdColumnName(idColumnName);            
              o.setDatabase(this);
              for(String column: columns)
                  o.attrs().put(column, rs.getObject(column));
              objects.add(o);
          }
  
          rs.close();// oracle don't decrease cursor count here, while it's expected
          stmt.close();
      } 
      catch (SQLException ex) {
          System.out.println(query);
          ex.printStackTrace();
      }
  </code></pre>