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