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 Daniel Noll <da...@nuix.com> on 2007/05/11 07:09:53 UTC
ERROR XSAI2: The conglomerate requested does not exist.
It was while running this statement...
CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()
That I got the following exception:
ERROR XSAI2: The conglomerate (113) requested does not exist.
at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:311)
at org.apache.derby.impl.store.access.btree.index.B2IFactory.readConglomerate(B2IFactory.java:241)
at org.apache.derby.impl.store.access.RAMAccessManager.conglomCacheFind(RAMAccessManager.java:486)
at org.apache.derby.impl.store.access.RAMTransaction.findExistingConglomerate(RAMTransaction.java:389)
at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:1582)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(DataDictionaryImpl.java:7111)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getTableDescriptorIndex1Scan(DataDictionaryImpl.java:1672)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getUncachedTableDescriptor(DataDictionaryImpl.java:1698)
at org.apache.derby.impl.sql.catalog.NameTDCacheable.setIdentity(NameTDCacheable.java:109)
What does this mean exactly?
Daniel
--
Daniel Noll
Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699
Web: http://nuix.com/ Fax: +61 2 9212 6902
Re: ERROR XSAI2: The conglomerate requested does not exist.
Posted by Daniel Noll <da...@nuix.com>.
On Monday 14 May 2007 10:04:33 Daniel Noll wrote:
> I'll see if I can get access to the derby.log file.
Okay, now I have derby.log and the same error occurs twice. Once on
checkpoint, but it also happens earlier when trying to do a real query
(figures.)
Here's the lines which precede the error:
2007-05-11 04:34:05.612 GMT Thread[sG,5,main] (XID = 114873), (SESSIONID = 0),
(DATABASE = directory:D:\Path\To\Stores\EvidenceDatabase), (DRDAID = null),
Cleanup action starting
2007-05-11 04:34:05.612 GMT Thread[sG,5,main] (XID = 114873), (SESSIONID = 0),
(DATABASE = directory:D:\Path\To\Stores\EvidenceDatabase), (DRDAID = null),
Failed Statement is: SELECT CAST ('' AS VARCHAR(128)) AS TABLE_CAT,
SCHEMANAME AS TABLE_SCHEM, TABLENAME AS TABLE_NAME, (CAST (RTRIM(TABLE_TYPE)
AS VARCHAR(12))) AS TABLE_TYPE, CAST ('' AS VARCHAR(128)) AS REMARKS FROM
SYS.SYSTABLES, SYS.SYSSCHEMAS, (VALUES ('T','TABLE'), ('S','SYSTEM TABLE'),
('V', 'VIEW')) T(TTABBREV,TABLE_TYPE) WHERE (TTABBREV=TABLETYPE AND
(SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID) AND ((1=1) OR ? IS NOT
NULL) AND (SYS.SYSSCHEMAS.SCHEMANAME LIKE ?) AND (TABLENAME LIKE ?)) AND
TABLETYPE IN ('T') ORDER BY TABLE_TYPE, TABLE_SCHEM, TABLE_NAME
Daniel
--
Daniel Noll
Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699
Web: http://nuix.com/ Fax: +61 2 9212 6902
Re: ERROR XSAI2: The conglomerate requested does not exist.
Posted by Øystein Grøvlen <Oy...@Sun.COM>.
I observed this error a few times during some experiments I did some
time ago. See DERBY-637. Not the same setting, though. Client/server,
30 GB database. When this started to occur, all my transaction fail
with this error. Restarting the database, made the error disappear.
--
Øystein
Re: ERROR XSAI2: The conglomerate requested does not exist.
Posted by Daniel Noll <da...@nuix.com>.
On Saturday 12 May 2007 01:47:30 Stanley Bradbury wrote:
> A conglomerate is a data or index file in Derby. The message means
> conglomerate number 113 was referenced but could not be found. It
> appears the object was an index that was referenced in the cache but I
> can't tell much else from the stack trace. Files are removed when
> objects are dropped but this should not result in an error. Was this a
> fatal error or did processing continue uninterrupted?
>
> Could you supply additional information regarding the processing that
> was happening at the time the check point was issued and the version
> being used? Would you post the information in the derby.log so we have
> any additional information reported by the server? It would be good to
> try and understand what might have caused this.
As far as I can tell from the logs, this was happening right after inspecting
the schema (metadata) to determine what version the schema is. For a while
we didn't keep an explicit version number table anywhere in the database, so
for older databases we guess the schema version by looking at what tables are
present.
Right before closing the Connection we checkpoint (I can't remember why but
there was a very good reason for it.) Though in this case obviously no
changes had actually occurred to the database.
So in some sense the error was fatal (it did throw an exception, afterall,
which we can catch but not necessarily know what to do with afterwards, so we
throw an exception ourselves.) But since no modifications actually occurred,
I guess there isn't any real harm.
I'll see if I can get access to the derby.log file.
Other than that, could this perhaps be a permissions issue? One of the things
customers consistently fail at is that they go and haphazardly modify the
permissions on files without knowing what will happen, rather than just
blocking access to the top-level directory entirely, resulting in a directory
with mixed permissions. :-/
Daniel
--
Daniel Noll
Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699
Web: http://nuix.com/ Fax: +61 2 9212 6902
Re: ERROR XSAI2: The conglomerate requested does not exist.
Posted by Stanley Bradbury <St...@gmail.com>.
Daniel Noll wrote:
> It was while running this statement...
> CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()
>
> That I got the following exception:
> ERROR XSAI2: The conglomerate (113) requested does not exist.
> at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:311)
> at org.apache.derby.impl.store.access.btree.index.B2IFactory.readConglomerate(B2IFactory.java:241)
> at org.apache.derby.impl.store.access.RAMAccessManager.conglomCacheFind(RAMAccessManager.java:486)
> at org.apache.derby.impl.store.access.RAMTransaction.findExistingConglomerate(RAMTransaction.java:389)
> at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:1582)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(DataDictionaryImpl.java:7111)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getTableDescriptorIndex1Scan(DataDictionaryImpl.java:1672)
> at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getUncachedTableDescriptor(DataDictionaryImpl.java:1698)
> at org.apache.derby.impl.sql.catalog.NameTDCacheable.setIdentity(NameTDCacheable.java:109)
>
> What does this mean exactly?
>
> Daniel
>
>
HI Daniel -
A conglomerate is a data or index file in Derby. The message means
conglomerate number 113 was referenced but could not be found. It
appears the object was an index that was referenced in the cache but I
can't tell much else from the stack trace. Files are removed when
objects are dropped but this should not result in an error. Was this a
fatal error or did processing continue uninterrupted?
Could you supply additional information regarding the processing that
was happening at the time the check point was issued and the version
being used? Would you post the information in the derby.log so we have
any additional information reported by the server? It would be good to
try and understand what might have caused this.