A holdable cursor, or result does not automatically close when the transaction that
contains the cursor is committed. You must specify the holdability of a
ResultSet object.
JDBC 3.0 supports specifying cursor holdability. You must specify the holdability of your
ResultSet when you prepare a statement using the
createStatement(),
prepareStatement(), or
prepareCall() methods. The holdability may be one of the
following constants:
-
HOLD_CURSORS_OVER_COMMIT – ResultSet objects (cursors)
are not closed; they are held open when a commit
operation is implicitly or explicitly performed.
-
CLOSE_CURSORS_AT_COMMIT – ResultSet objects (cursors)
are closed when a commit operation is implicitly or
explicitly performed.
Closing a cursor when a transaction is committed usually results in better
performance. Unless you require the cursor after the transaction, Sybase recommends
that you close the cursor when the commit operation is carried
out. Because the specification does not define the default holdability of a
ResultSet, its behavior depends on the implementation.