db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dag.Wan...@Sun.COM (Dag H. Wanvik)
Subject Re: Invalid transaction state - held cursor requires same isolation
Date Wed, 10 Oct 2007 08:12:44 GMT
Geoff hendrey <geoff_hendrey@yahoo.com> writes:

> "Well, it is even harder for us, since we don't see the relevant part
> of your code..."
>
> Oh, I think you misunderstood me. You don't need to see my code to answer my question.

>
> My question was:
>
> "ANyone have any ideas what this message might mean?"
>
> The message I am referring to is:
> "Invalid transaction state - held cursor requires same isolation"

Your analysis is correct; it means that some result set for which
holdability is true is still open when you try to change the isolation
level.

I think Dyre is trying to say that since we don't have access to your
source code is it hard for others to determine if this is a Derby error
or an error in your application code.

Are you able to produce a repro program showing the error? If so, this
will greatly aid in finding the problem.

Thanks,
Dag


>
> Why would you need my code to provide a simple elaboration on the meaning of
> a rather cryptic message?
>
>> Here are 3 lines from my code:
>>
>> Connection c = ConnectionManager.getConnection(req);
>> c.setAutoCommit(false);
>> c.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); 
>>
>>
>> The *second* time this block executes, I get this exception from the attempt to setTransactionIsolation:
>>
>> java.sql.SQLException: Invalid transaction state - held cursor requires same isolation
> level
>>         at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown
Source)
>>         at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
>>         at org.apache.derby.client.am.Statement.executeUpdate(Unknown Source)
>>         at org.apache.derby.client.am.Connection.setTransactionIsolation(Unknown
Source)
>>  
>>
>> ANyone have any ideas what this message might mean? My guess is that a result set
is
> open and a cursor in that result set is somehow not getting closed after the first pass.
But
> I'm hard pressed to see where in my code this could be happening since I close all my
connections
> in finally blocks.
>
> Well, it is even harder for us, since we don't see the relevant part
> of your code...
>
> -- 
> dt

Mime
View raw message