You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by geoffrey hendrey <ge...@nextdb.net> on 2009/12/29 23:15:25 UTC

XJ073 The data in this BLOB or CLOB is no longer available

On Derby 10.4.1.3 I see the following error. "ERROR XJ073: The data in this
BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be
committed, or its connection is closed." Are there any known issues around
this? It occurs intermittently, and I've never seen in happen twice in a
row. I don't think I'm prematurely closing the connection. I found a Jira
issue around this, but it seemed like the discussion concluded it was user
error. Thought I would ping the list to see if there are any known bugs on
this.

Caused by: java.sql.SQLException: The data in this BLOB or CLOB is no longer
available.  The BLOB/CLOB's transaction may be committed, or its connection
is closed.
    at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
    at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:201)
    at
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:391)
    at
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
    at
org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2135)
    at
org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
    at
org.apache.derby.impl.jdbc.EmbedResultSet.getBlob(EmbedResultSet.java:3975)
    at
org.apache.derby.impl.jdbc.EmbedResultSet.getObject(EmbedResultSet.java:1666)
    at
org.apache.derby.impl.jdbc.EmbedResultSet.getObject(EmbedResultSet.java:1711)
    at
org.apache.commons.dbcp.DelegatingResultSet.getObject(DelegatingResultSet.java:290)
    at
org.apache.commons.dbcp.DelegatingResultSet.getObject(DelegatingResultSet.java:290)
    at net.nextdb.DynamicORM.getColumn(DynamicORM.java:176)
    at
net.nextdb.formatter.ColumnContentFormatter.format(ColumnContentFormatter.java:51)
    ... 45 more
Caused by: ERROR XJ073: The data in this BLOB or CLOB is no longer
available.  The BLOB/CLOB's transaction may be committed, or its connection
is closed.
    at
org.apache.derby.iapi.error.StandardException.newException(StandardException.java:276)
    at org.apache.derby.impl.jdbc.EmbedBlob.<init>(EmbedBlob.java:210)
    at
org.apache.derby.impl.jdbc.EmbedResultSet.getBlob(EmbedResultSet.java:3973)
    ... 51 more


-- 
http://nextdb.net - RESTful Relational Database
http://www.nextdb.net/wiki/en/REST

Re: XJ073 The data in this BLOB or CLOB is no longer available

Posted by Rick Hillegas <Ri...@Sun.COM>.
Hi Geoff,

Thanks for tracking this down. There are a number of bugs related to 
accessing the same LOB in a row twice. For instance, see 
https://issues.apache.org/jira/browse/DERBY-3646 Cleaning up this area 
(or at least clarifying what works and what doesn't) is on our to-do 
list for 10.6.

Thanks,
-Rick

Geoff hendrey wrote:
> I've tracked this down. The intermittent failure occurs when calling 
> ResultSet.getObject(columName) twice in a row on the same result set. 
> I had a logging statement that was printing 
> ResultSet.getObject(columName) right before a second call to 
> ResultSet.getObject(columName). I took out the logging statement and 
> the error never occurs. Is this a Derby bug?
>
> --
> http://nextdb.net - RESTful Relational Database
> http://www.nextdb.net/wiki/en/REST
>
>
> --- On *Thu, 12/31/09, Geoff hendrey /<ge...@yahoo.com>/* wrote:
>
>
>     From: Geoff hendrey <ge...@yahoo.com>
>     Subject: Re: XJ073 The data in this BLOB or CLOB is no longer
>     available
>     To: "Derby Discussion" <de...@db.apache.org>
>     Cc: dmclean62@gmail.com
>     Date: Thursday, December 31, 2009, 2:40 PM
>
>     Thanks for the suggestion. I tried autocommit false, but it didn't
>     make any difference. This error seems to occur about once out of
>     30 times. I also printed Connection.isClosed after catching the
>     exception, just to make sure the connection wasn't closed (since
>     the error message implied the connection might be closed).
>
>     I also tried many wacky things to try to work around it,
>     including: using TRANSACTION_SERIALIZABLE and synchronizing on a
>     static variable to eliminate multi-threading as a cause. None of
>     these affected the problem.
>
>
>     --
>     http://nextdb.net - RESTful Relational Database
>     http://www.nextdb.net/wiki/en/REST
>
>
>     --- On *Wed, 12/30/09, Donald McLean /<dm...@gmail.com>/* wrote:
>
>
>         From: Donald McLean <dm...@gmail.com>
>         Subject: Re: XJ073 The data in this BLOB or CLOB is no longer
>         available
>         To: "Derby Discussion" <de...@db.apache.org>
>         Date: Wednesday, December 30, 2009, 5:23 PM
>
>         This condition is very frequently caused when the user has
>         autocommit
>         set to true. BLOBs and CLOBs can only be used inside a transaction
>         (i.e. autocommit set to false). Don't forget to commit the
>         transaction
>         after you have finished with the BLOB/CLOB.
>
>         On Tue, Dec 29, 2009 at 5:15 PM, geoffrey hendrey
>         <ge...@nextdb.net> wrote:
>         > On Derby 10.4.1.3 I see the following error. "ERROR XJ073:
>         The data in this
>         > BLOB or CLOB is no longer available.  The BLOB/CLOB's
>         transaction may be
>         > committed, or its connection is closed." Are there any known
>         issues around
>         > this? It occurs intermittently, and I've never seen in
>         happen twice in a
>         > row. I don't think I'm prematurely closing the connection. I
>         found a Jira
>         > issue around this, but it seemed like the discussion
>         concluded it was user
>         > error. Thought I would ping the list to see if there are any
>         known bugs on
>         > this.
>         -- 
>         Family photographs are a critical legacy for
>         ourselves and our descendants. Protect that
>         legacy with a digital backup and recovery plan.
>
>         Join the photo preservation advocacy Facebook group:
>         http://www.facebook.com/home.php?ref=logo#/group.php?gid=148274709288
>


Re: XJ073 The data in this BLOB or CLOB is no longer available

Posted by Geoff hendrey <ge...@yahoo.com>.
I've tracked this down. The intermittent failure occurs when calling ResultSet.getObject(columName) twice in a row on the same result set. I had a logging statement that was printing ResultSet.getObject(columName) right before a second call to ResultSet.getObject(columName). I took out the logging statement and the error never occurs. Is this a Derby bug?

--
http://nextdb.net - RESTful Relational Database
http://www.nextdb.net/wiki/en/REST


--- On Thu, 12/31/09, Geoff hendrey <ge...@yahoo.com> wrote:

From: Geoff hendrey <ge...@yahoo.com>
Subject: Re: XJ073 The data in this BLOB or CLOB is no longer available
To: "Derby Discussion" <de...@db.apache.org>
Cc: dmclean62@gmail.com
Date: Thursday, December 31, 2009, 2:40 PM

Thanks for the suggestion. I tried autocommit false, but it didn't make any difference. This error seems to occur about once out of 30 times. I also printed Connection.isClosed after catching the exception, just to make sure the connection wasn't closed (since the error message implied the connection might be closed).

I also tried many wacky things to try to work around it, including: using TRANSACTION_SERIALIZABLE and synchronizing on a static variable to eliminate multi-threading as a cause. None of these affected the problem.


--
http://nextdb.net - RESTful Relational Database
http://www.nextdb.net/wiki/en/REST


--- On Wed, 12/30/09, Donald McLean <dm...@gmail.com> wrote:

From: Donald McLean
 <dm...@gmail.com>
Subject: Re: XJ073 The data in this BLOB or CLOB is no longer available
To: "Derby Discussion" <de...@db.apache.org>
Date: Wednesday, December 30, 2009, 5:23 PM

This condition is very frequently caused when the user has autocommit
set to true. BLOBs and CLOBs can only be used inside a transaction
(i.e. autocommit set to false). Don't forget to commit the transaction
after you have finished with the BLOB/CLOB.

On Tue, Dec 29, 2009 at 5:15 PM, geoffrey hendrey <ge...@nextdb.net> wrote:
> On Derby 10.4.1.3 I see the following error. "ERROR XJ073: The data in this
> BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be
> committed, or its connection is closed." Are there any known issues around
> this? It occurs intermittently, and
 I've never seen in happen twice in a
> row. I don't think I'm prematurely closing the connection. I found a Jira
> issue around this, but it seemed like the discussion concluded it was user
> error. Thought I would ping the list to see if there are any known bugs on
> this.
-- 
Family photographs are a critical legacy for
ourselves and our descendants. Protect that
legacy with a digital backup and recovery plan.

Join the photo preservation advocacy Facebook group:
http://www.facebook.com/home.php?ref=logo#/group.php?gid=148274709288

Re: XJ073 The data in this BLOB or CLOB is no longer available

Posted by Geoff hendrey <ge...@yahoo.com>.
Thanks for the suggestion. I tried autocommit false, but it didn't make any difference. This error seems to occur about once out of 30 times. I also printed Connection.isClosed after catching the exception, just to make sure the connection wasn't closed (since the error message implied the connection might be closed).

I also tried many wacky things to try to work around it, including: using TRANSACTION_SERIALIZABLE and synchronizing on a static variable to eliminate multi-threading as a cause. None of these affected the problem.


--
http://nextdb.net - RESTful Relational Database
http://www.nextdb.net/wiki/en/REST


--- On Wed, 12/30/09, Donald McLean <dm...@gmail.com> wrote:

From: Donald McLean <dm...@gmail.com>
Subject: Re: XJ073 The data in this BLOB or CLOB is no longer available
To: "Derby Discussion" <de...@db.apache.org>
Date: Wednesday, December 30, 2009, 5:23 PM

This condition is very frequently caused when the user has autocommit
set to true. BLOBs and CLOBs can only be used inside a transaction
(i.e. autocommit set to false). Don't forget to commit the transaction
after you have finished with the BLOB/CLOB.

On Tue, Dec 29, 2009 at 5:15 PM, geoffrey hendrey <ge...@nextdb.net> wrote:
> On Derby 10.4.1.3 I see the following error. "ERROR XJ073: The data in this
> BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be
> committed, or its connection is closed." Are there any known issues around
> this? It occurs intermittently, and I've never seen in happen twice in a
> row. I don't think I'm prematurely closing the connection. I found a Jira
> issue around this, but it seemed like the discussion concluded it was user
> error. Thought I would ping the list to see if there are any known bugs on
> this.
-- 
Family photographs are a critical legacy for
ourselves and our descendants. Protect that
legacy with a digital backup and recovery plan.

Join the photo preservation advocacy Facebook group:
http://www.facebook.com/home.php?ref=logo#/group.php?gid=148274709288

Re: XJ073 The data in this BLOB or CLOB is no longer available

Posted by Donald McLean <dm...@gmail.com>.
This condition is very frequently caused when the user has autocommit
set to true. BLOBs and CLOBs can only be used inside a transaction
(i.e. autocommit set to false). Don't forget to commit the transaction
after you have finished with the BLOB/CLOB.

On Tue, Dec 29, 2009 at 5:15 PM, geoffrey hendrey <ge...@nextdb.net> wrote:
> On Derby 10.4.1.3 I see the following error. "ERROR XJ073: The data in this
> BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be
> committed, or its connection is closed." Are there any known issues around
> this? It occurs intermittently, and I've never seen in happen twice in a
> row. I don't think I'm prematurely closing the connection. I found a Jira
> issue around this, but it seemed like the discussion concluded it was user
> error. Thought I would ping the list to see if there are any known bugs on
> this.
-- 
Family photographs are a critical legacy for
ourselves and our descendants. Protect that
legacy with a digital backup and recovery plan.

Join the photo preservation advocacy Facebook group:
http://www.facebook.com/home.php?ref=logo#/group.php?gid=148274709288