[ http://issues.apache.org/jira/browse/DERBY-1513?page=comments#action_12421379 ] Tomohito Nakayama commented on DERBY-1513: ------------------------------------------
However,I found there were difference in behavior. I survey OutOfMemoryError of the program with configuration of -Xmx64m -Xmx128m -Xmx192m -Xmx256m. OutOfMemoryError happen in all of those configurations. However, how OutOfMemoryError was thrown from program was not same between these configurations. Next was information captured by using jdb. -Xmx64m : Exception occurred: java.lang.OutOfMemoryError (uncaught) Exception occurred: java.lang.OutOfMemoryError (uncaught)"thread=DRDAConnThread_3", org.apache.derby.impl.drda.DDMReader$MemorySavedByteArrayOutputStream.<init>(), line=1,807 bci=6 1,807 buf = new byte[size]; DRDAConnThread_3[1] where [1] org.apache.derby.impl.drda.DDMReader$MemorySavedByteArrayOutputStream.<init> (DDMReader.java:1,807) [2] org.apache.derby.impl.drda.DDMReader.getExtData (DDMReader.java:958) [3] org.apache.derby.impl.drda.DDMReader.getExtData (DDMReader.java:944) [4] org.apache.derby.impl.drda.DRDAConnThread.readAndSetExtParam (DRDAConnThread.java:4,355) [5] org.apache.derby.impl.drda.DRDAConnThread.readAndSetAllExtParams (DRDAConnThread.java:4,320) [6] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects (DRDAConnThread.java:3,811) [7] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT (DRDAConnThread.java:3,640) [8] org.apache.derby.impl.drda.DRDAConnThread.processCommands (DRDAConnThread.java:928) [9] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254) DRDAConnThread_3[1] eval java.lang.Runtime.getRuntime().maxMemory() java.lang.Runtime.getRuntime().maxMemory() = 66650112 -Xmx128m : Exception occurred: java.lang.OutOfMemoryError (to be caught at: org.apache.derby.impl.store.raw.data.StoredPage.logRow(), line=4,209 bci=1,370)"thread=DRDAConnThread_3", org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.expandBuffer(), line=243 bci=64 243 byte[] newbuf = new byte[newsize]; DRDAConnThread_3[1] where [1] org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.expandBuffer (DynamicByteArrayOutputStream.java:243) [2] org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.write (DynamicByteArrayOutputStream.java:88) [3] java.io.DataOutputStream.write (DataOutputStream.java:85) [4] org.apache.derby.iapi.types.SQLBinary.writeExternal (SQLBinary.java:282) [5] org.apache.derby.impl.store.raw.data.StoredPage.logColumn (StoredPage.java:6,255) [6] org.apache.derby.impl.store.raw.data.StoredPage.logRow (StoredPage.java:3,965) [7] org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer (InsertOperation.java:369) [8] org.apache.derby.impl.store.raw.data.InsertOperation.<init> (InsertOperation.java:114) [9] org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert (LoggableActions.java:138) [10] org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow (BasePage.java:664) [11] org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot (BasePage.java:585) [12] org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot (StoredPage.java:6,735) [13] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:691) [14] org.apache.derby.impl.store.access.heap.HeapController.doInsert (HeapController.java:254) [15] org.apache.derby.impl.store.access.heap.HeapController.insert (HeapController.java:573) [16] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow (RowChangerImpl.java:447) [17] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore (InsertResultSet.java:995) [18] org.apache.derby.impl.sql.execute.InsertResultSet.open (InsertResultSet.java:522) [19] org.apache.derby.impl.sql.GenericPreparedStatement.execute (GenericPreparedStatement.java:357) [20] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement (EmbedStatement.java:1,181) [21] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement (EmbedPreparedStatement.java:1,512) [22] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute (EmbedPreparedStatement.java:1,190) [23] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556) [24] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT (DRDAConnThread.java:3,655) [25] org.apache.derby.impl.drda.DRDAConnThread.processCommands (DRDAConnThread.java:928) [26] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254) DRDAConnThread_3[1] eval java.lang.Runtime.getRuntime().maxMemory() java.lang.Runtime.getRuntime().maxMemory() = 133234688 -Xmx192m : Exception occurred: java.lang.OutOfMemoryError (to be caught at: org.apache.derby.impl.store.raw.data.StoredPage.logRow(), line=4,209 bci=1,370)"thread=DRDAConnThread_3", org.apache.derby.impl.store.raw.data.MemByteHolder.<init>(), line=68 bci=26 68 this.curBuf = new byte[bufSize]; DRDAConnThread_3[1] where [1] org.apache.derby.impl.store.raw.data.MemByteHolder.<init> (MemByteHolder.java:68) [2] org.apache.derby.impl.store.raw.data.StoredPage.logColumn (StoredPage.java:6,351) [3] org.apache.derby.impl.store.raw.data.StoredPage.logRow (StoredPage.java:3,965) [4] org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer (InsertOperation.java:369) [5] org.apache.derby.impl.store.raw.data.InsertOperation.<init> (InsertOperation.java:114) [6] org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert (LoggableActions.java:138) [7] org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow (BasePage.java:664) [8] org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot (BasePage.java:585) [9] org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot (StoredPage.java:6,735) [10] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:691) [11] org.apache.derby.impl.store.access.heap.HeapController.doInsert (HeapController.java:254) [12] org.apache.derby.impl.store.access.heap.HeapController.insert (HeapController.java:573) [13] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow (RowChangerImpl.java:447) [14] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore (InsertResultSet.java:995) [15] org.apache.derby.impl.sql.execute.InsertResultSet.open (InsertResultSet.java:522) [16] org.apache.derby.impl.sql.GenericPreparedStatement.execute (GenericPreparedStatement.java:357) [17] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement (EmbedStatement.java:1,181) [18] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement (EmbedPreparedStatement.java:1,512) [19] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute (EmbedPreparedStatement.java:1,190) [20] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556) [21] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT (DRDAConnThread.java:3,655) [22] org.apache.derby.impl.drda.DRDAConnThread.processCommands (DRDAConnThread.java:928) [23] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254) DRDAConnThread_3[1] eval java.lang.Runtime.getRuntime().maxMemory() java.lang.Runtime.getRuntime().maxMemory() = 199819264 -Xmx256m : Exception occurred: java.lang.OutOfMemoryError (to be caught at: org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(), line=1,267 bci=498)"thread=DRDAConnThread_3", org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.<init>(), line=63 bci=12 63 buf = new byte[cbuf.length]; DRDAConnThread_3[1] where [1] org.apache.derby.iapi.services.io.DynamicByteArrayOutputStream.<init> (DynamicByteArrayOutputStream.java:63) [2] org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflow (BasePage.java:821) [3] org.apache.derby.impl.store.raw.data.BasePage.insert (BasePage.java:694) [4] org.apache.derby.impl.store.access.heap.HeapController.doInsert (HeapController.java:306) [5] org.apache.derby.impl.store.access.heap.HeapController.insert (HeapController.java:573) [6] org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow (RowChangerImpl.java:447) [7] org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore (InsertResultSet.java:995) [8] org.apache.derby.impl.sql.execute.InsertResultSet.open (InsertResultSet.java:522) [9] org.apache.derby.impl.sql.GenericPreparedStatement.execute (GenericPreparedStatement.java:357) [10] org.apache.derby.impl.jdbc.EmbedStatement.executeStatement (EmbedStatement.java:1,181) [11] org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement (EmbedPreparedStatement.java:1,512) [12] org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute (EmbedPreparedStatement.java:1,190) [13] org.apache.derby.impl.drda.DRDAStatement.execute (DRDAStatement.java:556) [14] org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT (DRDAConnThread.java:3,655) [15] org.apache.derby.impl.drda.DRDAConnThread.processCommands (DRDAConnThread.java:928) [16] org.apache.derby.impl.drda.DRDAConnThread.run (DRDAConnThread.java:254) DRDAConnThread_3[1] eval java.lang.Runtime.getRuntime().maxMemory() java.lang.Runtime.getRuntime().maxMemory() = 266403840 > Trial 1 for DERBY-550 > --------------------- > > Key: DERBY-1513 > URL: http://issues.apache.org/jira/browse/DERBY-1513 > Project: Derby > Issue Type: Sub-task > Reporter: Tomohito Nakayama > Assigned To: Tomohito Nakayama > Attachments: DERBY-1513.patch, DERBY-1513_2.patch, > DERBY-1513_3.patch, serverMemoryUsage.xls, serverMemoryUsage_3.xls > > > http://issues.apache.org/jira/browse/DERBY-550#action_12421280 > http://issues.apache.org/jira/browse/DERBY-550#action_12421282 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
