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

jcsahnwaldt edited comment on DERBY-637 at 12/17/07 7:49 AM:
-----------------------------------------------------------------------

We experienced this error with version 10.3.1.4 when we cleaned up some tables 
without restarting the server. After the cleanup, all prepared statements 
failed with the message "The conglomerate (...) requested does not exist". When 
we used a slightly different SQL statement (just add a space somewhere), it 
worked. After we executed "CALL SYSCS_UTIL.SYSCS_EMPTY_STATEMENT_CACHE()" all 
statements worked again. This very much looks like the prepared statements 
cached by the server still referenced some objects (index, key, ...) that went 
away during the cleanup.

The cleanup consisted of several steps:
1. ALTER TABLE SESSION DROP CONSTRAINT SESSION_PARENT_FK;
2. DELETE FROM SESSION WHERE SESSION.TIMESTAMP < {fn TIMESTAMPADD(SQL_TSI_DAY, 
-90, CURRENT_TIMESTAMP)};
3. CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE('APP', 'SESSION', 1);

And basically the same steps for a few other tables.

There was some delay between the first and second step, during which some new 
entries may have been inserted.

      was (Author: jcsahnwaldt):
    We experienced this error when we cleaned up some tables without restarting 
the server. After the cleanup, all prepared statements failed with the message 
"The conglomerate (...) requested does not exist". When we used a slightly 
different SQL statement (just add a space somewhere), it worked. After we 
executed "CALL SYSCS_UTIL.SYSCS_EMPTY_STATEMENT_CACHE()" all statements worked 
again. This very much looks like the prepared statements cached by the server 
still referenced some objects (index, key, ...) that went away during the 
cleanup.

The cleanup consisted of several steps:
1. ALTER TABLE SESSION DROP CONSTRAINT SESSION_PARENT_FK;
2. DELETE FROM SESSION WHERE SESSION.TIMESTAMP < {fn TIMESTAMPADD(SQL_TSI_DAY, 
-90, CURRENT_TIMESTAMP)};
3. CALL SYSCS_UTIL.SYSCS_COMPRESS_TABLE('APP', 'SESSION', 1);

And basically the same steps for a few other tables.

There was some delay between the first and second step, during which some new 
entries may have been inserted.
  
> Conglomerate does not exist after inserting large data  volume
> --------------------------------------------------------------
>
>                 Key: DERBY-637
>                 URL: https://issues.apache.org/jira/browse/DERBY-637
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.2.1.6
>         Environment: Solaris 10 Sparc
> Sun 1.5 VM
> Client/server DB
> 1 GB page cache
> JVM heap on server: min 1 GB, max 3 GB 
>            Reporter: Øystein Grøvlen
>
> In a client/server environment I did as follows:
> 1. Started server
> 2. Dropped existing TPC-B tables and created new ones
> 3. Inserted data for 200 million accounts (30 GB account table)
> 4. When insertion was finished, tried to run a TPC-B transaction on same 
> connection and was informed that conglomerate does not exist.  (See stack 
> trace below).
> 5. Stopped client, started a new client to run a TPC-B transaction, got same 
> error
> 6. Restarted server
> 7. Ran client again, and everything worked fine.
> Stack trace from derby.log:
> 2005-10-19 18:47:41.838 GMT Thread[DRDAConnThread_3,5,main] (XID = 75504654), 
> (SESSIONID = 0), (DATABASE = /export/home3/tmp/oysteing/tpcbdb), (DRDAID = 
> NF000001.OB77-578992897558106193{1}), Cleanup action starting
> 2005-10-19 18:47:41.839 GMT Thread[DRDAConnThread_3,5,main] (XID = 75504654), 
> (SESSIONID = 0), (DATABASE = /export/home3/tmp/oysteing/tpcbdb), (DRDAID = 
> NF000001.OB77-578992897558106193{1}), Failed Statement is: UPDATE accounts 
> SET abal = abal + ? WHERE aid = ? AND bid = ?
> ERROR XSAI2: The conglomerate (8,048) requested does not exist.
>       at 
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:311)
>       at 
> org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.readConglomerate(HeapConglomerateFactory.java:224)
>       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.openConglomerate(RAMTransaction.java:1315)
>       at 
> org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(B2IForwardScan.java:237)
>       at 
> org.apache.derby.impl.store.access.btree.index.B2I.openScan(B2I.java:750)
>       at 
> org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:530)
>       at 
> org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:1582)
>       at 
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(DataDictionaryImpl.java:7218)
>       at 
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getAliasDescriptor(DataDictionaryImpl.java:5697)
>       at 
> org.apache.derby.impl.sql.compile.QueryTreeNode.resolveTableToSynonym(QueryTreeNode.java:1510)
>       at 
> org.apache.derby.impl.sql.compile.UpdateNode.bind(UpdateNode.java:207)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:333)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:107)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:704)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:118)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java:82)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java:62)
>       at 
> org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java:92)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:678)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:575)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at 
> org.apache.derby.impl.drda.DRDAStatement.prepareStatementJDBC3(DRDAStatement.java:1497)
>       at 
> org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:486)
>       at 
> org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:444)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3132)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:673)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:214)
> Cleanup action completed
> 2005-10-19 18:47:41.983 GMT Thread[DRDAConnThread_3,5,main] (XID = 75504654), 
> (SESSIONID = 0), (DATABASE = /export/home3/tmp/oysteing/tpcbdb), (DRDAID = 
> NF000001.OB77-578992897558106193{1}), Cleanup action starting
> 2005-10-19 18:47:41.983 GMT Thread[DRDAConnThread_3,5,main] (XID = 75504654), 
> (SESSIONID = 0), (DATABASE = /export/home3/tmp/oysteing/tpcbdb), (DRDAID = 
> NF000001.OB77-578992897558106193{1}), Failed Statement is: call 
> SYSIBM.SQLCAMESSAGE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
> ERROR XSAI2: The conglomerate (8,048) requested does not exist.
>       at 
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:311)
>       at 
> org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.readConglomerate(HeapConglomerateFactory.java:224)
>       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.openConglomerate(RAMTransaction.java:1315)
>       at 
> org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(B2IForwardScan.java:237)
>       at 
> org.apache.derby.impl.store.access.btree.index.B2I.openScan(B2I.java:750)
>       at 
> org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:530)
>       at 
> org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTransaction.java:1582)
>       at 
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(DataDictionaryImpl.java:7218)
>       at 
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getAliasDescriptor(DataDictionaryImpl.java:5697)
>       at 
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getRoutineList(DataDictionaryImpl.java:5766)
>       at 
> org.apache.derby.impl.sql.compile.StaticMethodCallNode.resolveRoutine(StaticMethodCallNode.java:303)
>       at 
> org.apache.derby.impl.sql.compile.StaticMethodCallNode.bindExpression(StaticMethodCallNode.java:192)
>       at 
> org.apache.derby.impl.sql.compile.JavaToSQLValueNode.bindExpression(JavaToSQLValueNode.java:250)
>       at 
> org.apache.derby.impl.sql.compile.CallStatementNode.bind(CallStatementNode.java:177)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:333)
>       at 
> org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:107)
>       at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:704)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:118)
>       at 
> org.apache.derby.impl.jdbc.EmbedCallableStatement.<init>(EmbedCallableStatement.java:68)
>       at 
> org.apache.derby.impl.jdbc.EmbedCallableStatement20.<init>(EmbedCallableStatement20.java:78)
>       at 
> org.apache.derby.impl.jdbc.EmbedCallableStatement30.<init>(EmbedCallableStatement30.java:60)
>       at 
> org.apache.derby.jdbc.Driver30.newEmbedCallableStatement(Driver30.java:115)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:771)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnection.java:719)
>       at 
> org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java:475)
>       at 
> org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatement.java:444)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnThread.java:3132)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:673)
>       at 
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:214)
> Cleanup action completed

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

Reply via email to