db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Øystein Grøvlen (JIRA) <j...@apache.org>
Subject [jira] Commented: (DERBY-2990) ResultSet.getBlob holds locks even with READ_UNCOMMITTED isolation level
Date Wed, 21 Nov 2007 15:08:43 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12544492

Øystein Grøvlen commented on DERBY-2990:

The reason ResultSet.getBlob() causes a lock to be held, is to make
sure that the Blob object is stable. (Ref. discussion in DERBY-2892).
In other words, the decribed behavior is intended.

If this JIRA is to be fixed, we will have to implement another mechanism
than locking to guarantee stability of LOB objects.

> ResultSet.getBlob holds locks even with READ_UNCOMMITTED isolation level
> ------------------------------------------------------------------------
>                 Key: DERBY-2990
>                 URL: https://issues.apache.org/jira/browse/DERBY-2990
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions:,,,
>            Reporter: Kathey Marsden
>         Attachments: GetBlobLocks.java
> ResultSet.getBlob() holds locks even when isolation level is set to TRANSACTION_READ_UNCOMMITTED.
  See attached repro
>  java GetBlobLocks
> Exception in thread "main" ERROR 40XL1: A lock could not be obtained within the time
>         at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
>         at org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Source)
>         at org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown Source)
>         at org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown Source)
>         at org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(Unknown
>         at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.lockPositionForWrite(Unknown
>         at org.apache.derby.impl.store.access.conglomerate.GenericConglomerateController.delete(Unknown
>         at org.apache.derby.impl.sql.execute.RowChangerImpl.deleteRow(Unknown Source)
>         at org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(Unknown
>         at org.apache.derby.impl.sql.execute.DeleteResultSet.open(Unknown Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source)
>         at GetBlobLocks.testBlobLocks(GetBlobLocks.java:46)
>         at GetBlobLocks.main(GetBlobLocks.java:11)
> [C:/kmarsden/repro/getblob] echo $WS

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message