Issue Details (XML | Word | Printable)

Key: DERBY-414
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Mamta A. Satoor
Reporter: Kathey Marsden
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

With Network Client starting an XA transaction resets the isolation level set with setTransactionIsolation

Created: 30/Jun/05 07:37 AM   Updated: 30/Sep/05 02:00 AM
Return to search
Component/s: Network Client
Affects Version/s: 10.1.1.0, 10.2.1.6
Fix Version/s: 10.1.2.1, 10.2.1.6

Time Tracking:
Issue & Sub-Tasks
Issue Only
Not Specified

File Attachments:
  Size
Zip Archive deby414Repro.zip 2005-06-30 07:40 AM Kathey Marsden 3 kB

Resolution Date: 30/Sep/05 02:00 AM

Sub-Tasks  All   Open   
No sub-tasks match this view.

 Description  « Hide
When using v10.1.1.0 of the Apache Derby Network Client JDBC Driver and configuring
the TRANSACTION_READ_UNCOMMITTED isolation level, it is unable to read changes from another transaction which haven't been committed yet if the setTransactionIsolation call comes before the xa transation is started.

$ java TestDerbyNSXA
Connection number: 2.
Database product: Apache Derby
Database version: 10.2.0.0 alpha
Driver name: Apache Derby Network Client JDBC Driver
Driver version: 10.2.0.0 alpha
Thread 1: transaction started (with read committed isolation)
Thread 1: row updated first time.
Connection number: 3.
Thread 2: transaction started (with read uncommitted isolation)
Query complete on thread 2. About to do ResultSet.next()...
Thread 1: row updated second time.
ResultSet.next() took 19067 milliseconds.
Test fails. ResultSet next under read uncommitted isolation appears to have been blocked and unable to perform a dirty read.
Thread 1: transaction committed.
Thread 2: transaction committed.
$


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Kathey Marsden added a comment - 30/Jun/05 07:40 AM
run repro as
java TestDerbyNSXA

Kathey Marsden made changes - 30/Jun/05 07:40 AM
Field Original Value New Value
Attachment deby414Repro.zip [ 12311022 ]
Kathey Marsden added a comment - 01/Jul/05 07:00 AM
If I move the setTransactionIsolation to after the start of the xa transaction the isolation level gets set properly.

It would appear that with embedded if you set the isolation level with
SET CURRENT ISOLATION = UR;
it gets reset on start of the xa transaction to the default.
and that causes this problem with setTransactionIsolation with client.

Kathey Marsden made changes - 01/Jul/05 08:03 AM
Description
When using v10.1.1.0 of the Apache Derby Network Client JDBC Driver and configuring
the TRANSACTION_READ_UNCOMMITTED isolation level, it is unable to read changes from another transaction which haven't been committed yet.

$ java TestDerbyNSXA
Connection number: 2.
Database product: Apache Derby
Database version: 10.2.0.0 alpha
Driver name: Apache Derby Network Client JDBC Driver
Driver version: 10.2.0.0 alpha
Thread 1: transaction started (with read committed isolation)
Thread 1: row updated first time.
Connection number: 3.
Thread 2: transaction started (with read uncommitted isolation)
Query complete on thread 2. About to do ResultSet.next()...
Thread 1: row updated second time.
ResultSet.next() took 19067 milliseconds.
Test fails. ResultSet next under read uncommitted isolation appears to have been blocked and unable to perform a dirty read.
Thread 1: transaction committed.
Thread 2: transaction committed.
$
When using v10.1.1.0 of the Apache Derby Network Client JDBC Driver and configuring
the TRANSACTION_READ_UNCOMMITTED isolation level, it is unable to read changes from another transaction which haven't been committed yet if the setTransactionIsolation call comes before the xa transation is started.

$ java TestDerbyNSXA
Connection number: 2.
Database product: Apache Derby
Database version: 10.2.0.0 alpha
Driver name: Apache Derby Network Client JDBC Driver
Driver version: 10.2.0.0 alpha
Thread 1: transaction started (with read committed isolation)
Thread 1: row updated first time.
Connection number: 3.
Thread 2: transaction started (with read uncommitted isolation)
Query complete on thread 2. About to do ResultSet.next()...
Thread 1: row updated second time.
ResultSet.next() took 19067 milliseconds.
Test fails. ResultSet next under read uncommitted isolation appears to have been blocked and unable to perform a dirty read.
Thread 1: transaction committed.
Thread 2: transaction committed.
$
Summary Client XA has a problem with the TRANSACTION_READ_UNCOMMITTED isolation level With Network Client starting an XA transaction resets the isolation level set with setTransactionIsolation
Mamta A. Satoor made changes - 13/Sep/05 12:48 PM
Assignee Mamta A. Satoor [ mamtas ]
Mamta A. Satoor added a comment - 13/Sep/05 12:52 PM
The fix went into both 10.2 and 10.1 codeline

Mamta A. Satoor made changes - 13/Sep/05 12:52 PM
Status Open [ 1 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]
Kathey Marsden made changes - 16/Sep/05 01:31 AM
Fix Version/s 10.1.2.0 [ 12310270 ]
Fix Version/s 10.2.0.0 [ 11187 ]
Deepa Remesh added a comment - 30/Sep/05 01:59 AM
reopening to fix fix version

Deepa Remesh made changes - 30/Sep/05 01:59 AM
Status Resolved [ 5 ] Reopened [ 4 ]
Resolution Fixed [ 1 ]
Deepa Remesh made changes - 30/Sep/05 02:00 AM
Fix Version/s 10.1.1.1 [ 12310332 ]
Deepa Remesh made changes - 30/Sep/05 02:00 AM
Status Reopened [ 4 ] Closed [ 6 ]
Resolution Fixed [ 1 ]