Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 54466 invoked from network); 17 Dec 2007 15:41:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Dec 2007 15:41:10 -0000 Received: (qmail 56162 invoked by uid 500); 17 Dec 2007 15:40:58 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 56097 invoked by uid 500); 17 Dec 2007 15:40:58 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 56064 invoked by uid 99); 17 Dec 2007 15:40:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 17 Dec 2007 07:40:58 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 17 Dec 2007 15:40:53 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 05D2D714272 for ; Mon, 17 Dec 2007 07:40:45 -0800 (PST) Message-ID: <5107783.1197906045021.JavaMail.jira@brutus> Date: Mon, 17 Dec 2007 07:40:45 -0800 (PST) From: "Christopher Sahnwaldt (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Issue Comment Edited: (DERBY-637) Conglomerate does not exist after inserting large data volume In-Reply-To: <5379765.1129886875518.JavaMail.jira@ajax.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-637?page=3Dcom.atlassian.= jira.plugin.system.issuetabpanels:comment-tabpanel#action_12552441 ]=20 jcsahnwaldt edited comment on DERBY-637 at 12/17/07 7:40 AM: ----------------------------------------------------------------------- We experienced this error when we cleaned up some tables without restarting= the server. After the cleanup, all prepared statements failed with the mes= sage "The conglomerate (...) requested does not exist". When we used a slig= htly 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 d= uring 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_D= AY, -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 n= ew entries may have been inserted. was (Author: jcsahnwaldt): We experienced this error when we cleaned up some tables without restar= ting 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. A= fter we executed "CALL SYSCS_UTIL.SYSCS_EMPTY_STATEMENT_CACHE()" all statem= ents worked again. This very much looks like the prepared statements cached= by the server still referenced some objects (index, key, ...) that went aw= ay during the cleanup. The cleanup consisted of several steps: 1. ALTER TABLE SESSION DROP CONSTRAINT SESSION_PARENT_FK; (SESSION_PARENT= _FK was a key from one column of the table to another) 2. DELETE FROM SESSION WHERE SESSION.TIMESTAMP < {fn TIMESTAMPADD(SQL_TSI_D= AY, -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 n= ew entries may have been inserted. =20 > 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=20 > Reporter: =C3=98ystein Gr=C3=B8vlen > > 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 t= race below). > 5. Stopped client, started a new client to run a TPC-B transaction, got s= ame 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 =3D 7550= 4654), (SESSIONID =3D 0), (DATABASE =3D /export/home3/tmp/oysteing/tpcbdb),= (DRDAID =3D NF000001.OB77-578992897558106193{1}), Cleanup action starting > 2005-10-19 18:47:41.839 GMT Thread[DRDAConnThread_3,5,main] (XID =3D 7550= 4654), (SESSIONID =3D 0), (DATABASE =3D /export/home3/tmp/oysteing/tpcbdb),= (DRDAID =3D NF000001.OB77-578992897558106193{1}), Failed Statement is: UPD= ATE accounts SET abal =3D abal + ? WHERE aid =3D ? AND bid =3D ? > ERROR XSAI2: The conglomerate (8,048) requested does not exist. > =09at org.apache.derby.iapi.error.StandardException.newException(Standard= Exception.java:311) > =09at org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.rea= dConglomerate(HeapConglomerateFactory.java:224) > =09at org.apache.derby.impl.store.access.RAMAccessManager.conglomCacheFin= d(RAMAccessManager.java:486) > =09at org.apache.derby.impl.store.access.RAMTransaction.findExistingCongl= omerate(RAMTransaction.java:389) > =09at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(= RAMTransaction.java:1315) > =09at org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(= B2IForwardScan.java:237) > =09at org.apache.derby.impl.store.access.btree.index.B2I.openScan(B2I.jav= a:750) > =09at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTrans= action.java:530) > =09at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTrans= action.java:1582) > =09at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorV= iaIndex(DataDictionaryImpl.java:7218) > =09at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getAliasDescri= ptor(DataDictionaryImpl.java:5697) > =09at org.apache.derby.impl.sql.compile.QueryTreeNode.resolveTableToSynon= ym(QueryTreeNode.java:1510) > =09at org.apache.derby.impl.sql.compile.UpdateNode.bind(UpdateNode.java:2= 07) > =09at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatem= ent.java:333) > =09at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement= .java:107) > =09at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.pre= pareInternalStatement(GenericLanguageConnectionContext.java:704) > =09at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPrepa= redStatement.java:118) > =09at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(EmbedPre= paredStatement20.java:82) > =09at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(EmbedPre= paredStatement30.java:62) > =09at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.j= ava:92) > =09at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedCo= nnection.java:678) > =09at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedCo= nnection.java:575) > =09at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > =09at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImp= l.java:39) > =09at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc= essorImpl.java:25) > =09at java.lang.reflect.Method.invoke(Method.java:585) > =09at org.apache.derby.impl.drda.DRDAStatement.prepareStatementJDBC3(DRDA= Statement.java:1497) > =09at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java= :486) > =09at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatem= ent.java:444) > =09at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnTh= read.java:3132) > =09at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnT= hread.java:673) > =09at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:2= 14) > Cleanup action completed > 2005-10-19 18:47:41.983 GMT Thread[DRDAConnThread_3,5,main] (XID =3D 7550= 4654), (SESSIONID =3D 0), (DATABASE =3D /export/home3/tmp/oysteing/tpcbdb),= (DRDAID =3D NF000001.OB77-578992897558106193{1}), Cleanup action starting > 2005-10-19 18:47:41.983 GMT Thread[DRDAConnThread_3,5,main] (XID =3D 7550= 4654), (SESSIONID =3D 0), (DATABASE =3D /export/home3/tmp/oysteing/tpcbdb),= (DRDAID =3D NF000001.OB77-578992897558106193{1}), Failed Statement is: cal= l SYSIBM.SQLCAMESSAGE(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) > ERROR XSAI2: The conglomerate (8,048) requested does not exist. > =09at org.apache.derby.iapi.error.StandardException.newException(Standard= Exception.java:311) > =09at org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.rea= dConglomerate(HeapConglomerateFactory.java:224) > =09at org.apache.derby.impl.store.access.RAMAccessManager.conglomCacheFin= d(RAMAccessManager.java:486) > =09at org.apache.derby.impl.store.access.RAMTransaction.findExistingCongl= omerate(RAMTransaction.java:389) > =09at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(= RAMTransaction.java:1315) > =09at org.apache.derby.impl.store.access.btree.index.B2IForwardScan.init(= B2IForwardScan.java:237) > =09at org.apache.derby.impl.store.access.btree.index.B2I.openScan(B2I.jav= a:750) > =09at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTrans= action.java:530) > =09at org.apache.derby.impl.store.access.RAMTransaction.openScan(RAMTrans= action.java:1582) > =09at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorV= iaIndex(DataDictionaryImpl.java:7218) > =09at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getAliasDescri= ptor(DataDictionaryImpl.java:5697) > =09at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getRoutineList= (DataDictionaryImpl.java:5766) > =09at org.apache.derby.impl.sql.compile.StaticMethodCallNode.resolveRouti= ne(StaticMethodCallNode.java:303) > =09at org.apache.derby.impl.sql.compile.StaticMethodCallNode.bindExpressi= on(StaticMethodCallNode.java:192) > =09at org.apache.derby.impl.sql.compile.JavaToSQLValueNode.bindExpression= (JavaToSQLValueNode.java:250) > =09at org.apache.derby.impl.sql.compile.CallStatementNode.bind(CallStatem= entNode.java:177) > =09at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatem= ent.java:333) > =09at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement= .java:107) > =09at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.pre= pareInternalStatement(GenericLanguageConnectionContext.java:704) > =09at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(EmbedPrepa= redStatement.java:118) > =09at org.apache.derby.impl.jdbc.EmbedCallableStatement.(EmbedCalla= bleStatement.java:68) > =09at org.apache.derby.impl.jdbc.EmbedCallableStatement20.(EmbedCal= lableStatement20.java:78) > =09at org.apache.derby.impl.jdbc.EmbedCallableStatement30.(EmbedCal= lableStatement30.java:60) > =09at org.apache.derby.jdbc.Driver30.newEmbedCallableStatement(Driver30.j= ava:115) > =09at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnect= ion.java:771) > =09at org.apache.derby.impl.jdbc.EmbedConnection.prepareCall(EmbedConnect= ion.java:719) > =09at org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.java= :475) > =09at org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDAStatem= ent.java:444) > =09at org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDAConnTh= read.java:3132) > =09at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnT= hread.java:673) > =09at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:2= 14) > Cleanup action completed --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.