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.