>> > The IBM DB2 universal jdbc driver returns "repeatable read (version:
>> > SQL08024)" as the default isolation level when getTransactionIsolation
[quoted text clipped - 8 lines]
>
> Knut can you elaborate on what you think is stupid and why?
Repeatable read isolation level allows less concurrency than committed read
(or uncommitted read). Thus, an isolation level is chosen per default which
has an adverse effect on performance.
Another, similar issue is auto-commit being the default for JDBC
connections. First, any transactional properties are discarded with this
right away. You cannot rollback changes. Likewise, due to the
auto-commit, it was necessary to open cursors per default as holdable
cursors. Otherwise, the OPEN CURSOR (as JDBC method) would cause the
cursor to be closed at the end of the OPEN already. So you couldn't use
the cursor. Making all cursors holdable fits in with the auto-commit. But
again, holdable cursors allocate some resources on the database server. If
you don't need auto-commit, you can lift the resource requirements on the
server and get better performance.
Granted, those settings are good for novice programmers who just want to
their Hello World program to work. But for all practical purposes, you
have to change those defaults, IMHO.

Signature
Knut Stolze
DB2 z/OS Utilities Development
IBM Germany
dunleav1 - 19 Dec 2007 23:24 GMT
> >> > The IBM DB2 universal jdbc driver returns "repeatable read (version:
> >> > SQL08024)" as the default isolation level when getTransactionIsolation
[quoted text clipped - 32 lines]
> DB2 z/OS Utilities Development
> IBM Germany
Thanks Knut, I'll have to run some tests with our Java programmers.
Our application supports DB2, Oracle, Sql Server. DB2 has the worst
performance out of the three.
I'll start experimenting with the isolation level to get those number
comparable (or better).