[Logo] Mango M2M Community
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
out of memory error (windows)  XML
Forum Index -> Mango installation
Author Message
kuau

Initiate

Joined: 02/11/2009 13:13:19
Messages: 2
Offline

I've got out of memory errors because I was using the default windows JVM settings.
Now I have set the initial JVM size to 128 MB and the maximum to 256.
tomcat now shows as using 217MB of memory instead of 128MB. I also increased the size of my page file from 700 MB to 1.5 GB.
The computer is a lowly 1.5 GHZ celeron with 512 MB RAM.

I've had this error two nights in a row, the data purge seems to trigger it.

Code:
 NFO  2009-11-03 03:05:00,029 (com.serotonin.mango.rt.maint.DataPurge.executeImpl:64) - Data purge started 
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 Modbus4J: Open connection failed, trying again.
 Modbus4J: Keep-alive connection may have been reset. Attempting to re-open.
 ERROR 2009-11-03 03:09:20,303 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:09:26,993 (org.quartz.core.JobRunShell.run:211) - Job ScheduledMetaPoint.com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT31 threw an unhandled Exception:  
 java.lang.OutOfMemoryError: Java heap space
 	at java.nio.HeapByteBuffer.<init>(Unknown Source)
 	at java.nio.ByteBuffer.allocate(Unknown Source)
 	at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
 	at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
 	at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
 	at java.io.InputStreamReader.<init>(Unknown Source)
 	at sun.misc.Service.parse(Unknown Source)
 	at sun.misc.Service.access$100(Unknown Source)
 	at sun.misc.Service$LazyIterator.hasNext(Unknown Source)
 	at javax.script.ScriptEngineManager.initEngines(Unknown Source)
 	at javax.script.ScriptEngineManager.access$000(Unknown Source)
 	at javax.script.ScriptEngineManager$1.run(Unknown Source)
 	at java.security.AccessController.doPrivileged(Native Method)
 	at javax.script.ScriptEngineManager.init(Unknown Source)
 	at javax.script.ScriptEngineManager.<init>(Unknown Source)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:126)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:74)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.execute(MetaPointLocatorRT.java:235)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.access$100(MetaPointLocatorRT.java:48)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT$ExecutionDelayTimeout.scheduleTimeout(MetaPointLocatorRT.java:210)
 	at com.serotonin.mango.util.TimeoutJob.execute(TimeoutJob.java:48)
 	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
 	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
 ERROR 2009-11-03 03:09:45,720 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:09:43,747 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:09:28,806 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 	at java.io.BufferedReader.<init>(Unknown Source)
 	at java.io.BufferedReader.<init>(Unknown Source)
 	at sun.misc.Service.parse(Unknown Source)
 	at sun.misc.Service.access$100(Unknown Source)
 	at sun.misc.Service$LazyIterator.hasNext(Unknown Source)
 	at javax.script.ScriptEngineManager.initEngines(Unknown Source)
 	at javax.script.ScriptEngineManager.access$000(Unknown Source)
 	at javax.script.ScriptEngineManager$1.run(Unknown Source)
 	at java.security.AccessController.doPrivileged(Native Method)
 	at javax.script.ScriptEngineManager.init(Unknown Source)
 	at javax.script.ScriptEngineManager.<init>(Unknown Source)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:126)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:74)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.execute(MetaPointLocatorRT.java:235)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.pointUpdated(MetaPointLocatorRT.java:140)
 	at com.serotonin.mango.rt.dataImage.DataPointEventMulticaster.pointUpdated(DataPointEventMulticaster.java:103)
 	at com.serotonin.mango.rt.dataImage.DataPointRT$EventNotifyWorkItem.execute(DataPointRT.java:442)
 	at com.serotonin.mango.rt.maint.BackgroundProcessing$1.run(BackgroundProcessing.java:51)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 	at java.lang.Thread.run(Unknown Source)
 ERROR 2009-11-03 03:09:53,171 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:09:53,171 (org.quartz.core.JobRunShell.run:211) - Job ScheduledMetaPoint.com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT132 threw an unhandled Exception:  
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:09:50,287 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:10:15,893 (org.quartz.core.ErrorLogger.schedulerError:2185) - Job (ScheduledMetaPoint.com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT132 threw an exception. 
 org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.OutOfMemoryError: Java heap space]
 	at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
 	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
 Caused by: java.lang.OutOfMemoryError: Java heap space
 ERROR 2009-11-03 03:10:15,923 (org.quartz.core.ErrorLogger.schedulerError:2185) - Job (ScheduledMetaPoint.com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT31 threw an exception. 
 org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.OutOfMemoryError: Java heap space]
 	at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
 	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
 Caused by: java.lang.OutOfMemoryError: Java heap space
 	at java.nio.HeapByteBuffer.<init>(Unknown Source)
 	at java.nio.ByteBuffer.allocate(Unknown Source)
 	at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
 	at sun.nio.cs.StreamDecoder.<init>(Unknown Source)
 	at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source)
 	at java.io.InputStreamReader.<init>(Unknown Source)
 	at sun.misc.Service.parse(Unknown Source)
 	at sun.misc.Service.access$100(Unknown Source)
 	at sun.misc.Service$LazyIterator.hasNext(Unknown Source)
 	at javax.script.ScriptEngineManager.initEngines(Unknown Source)
 	at javax.script.ScriptEngineManager.access$000(Unknown Source)
 	at javax.script.ScriptEngineManager$1.run(Unknown Source)
 	at java.security.AccessController.doPrivileged(Native Method)
 	at javax.script.ScriptEngineManager.init(Unknown Source)
 	at javax.script.ScriptEngineManager.<init>(Unknown Source)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:126)
 	at com.serotonin.mango.rt.dataSource.meta.ScriptExecutor.execute(ScriptExecutor.java:74)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.execute(MetaPointLocatorRT.java:235)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT.access$100(MetaPointLocatorRT.java:48)
 	at com.serotonin.mango.rt.dataSource.meta.MetaPointLocatorRT$ExecutionDelayTimeout.scheduleTimeout(MetaPointLocatorRT.java:210)
 	at com.serotonin.mango.util.TimeoutJob.execute(TimeoutJob.java:48)
 	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
 	... 1 more
 ERROR 2009-11-03 03:10:18,087 (com.serotonin.mango.rt.maint.BackgroundProcessing$1.run:54) - Error in work item 
 java.lang.RuntimeException: Error saving point value: dataType=1, dvalue=0.0
 	at com.serotonin.mango.db.dao.PointValueDao.savePointValue(PointValueDao.java:234)
 	at com.serotonin.mango.db.dao.PointValueDao.savePointValueImpl(PointValueDao.java:154)
 	at com.serotonin.mango.db.dao.PointValueDao.access$000(PointValueDao.java:56)
 	at com.serotonin.mango.db.dao.PointValueDao$PointValueSaveWorker.execute(PointValueDao.java:108)
 	at com.serotonin.mango.rt.maint.BackgroundProcessing$1.run(BackgroundProcessing.java:51)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 	at java.lang.Thread.run(Unknown Source)
 Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [select pv.dataType, pv.pointValue, pva.textPointValueShort, pva.textPointValueLong, pv.ts, pva.sourceType,   pva.sourceId from pointValues pv   left join pointValueAnnotations pva on pv.id = pva.pointValueId where pv.dataPointId=? and pv.ts=?]; SQL state [XJ001]; error code [0]; Java exception: ': java.lang.IllegalMonitorStateException'.; nested exception is java.sql.SQLException: Java exception: ': java.lang.IllegalMonitorStateException'.
 	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:124)
 	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:606)
 	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:640)
 	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:669)
 	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:677)
 	at com.serotonin.db.spring.ExtendedJdbcTemplate.query(ExtendedJdbcTemplate.java:146)
 	at com.serotonin.db.DaoUtils.query(DaoUtils.java:202)
 	at com.serotonin.mango.db.dao.PointValueDao.pointValuesQuery(PointValueDao.java:358)
 	at com.serotonin.mango.db.dao.PointValueDao.pointValueQuery(PointValueDao.java:351)
 	at com.serotonin.mango.db.dao.PointValueDao.getPointValueAt(PointValueDao.java:346)
 	at com.serotonin.mango.db.dao.PointValueDao.savePointValueImpl(PointValueDao.java:244)
 	at com.serotonin.mango.db.dao.PointValueDao.savePointValue(PointValueDao.java:226)
 	... 7 more
 Caused by: java.sql.SQLException: Java exception: ': java.lang.IllegalMonitorStateException'.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown Source)
 	at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:647)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:590)
 	... 17 more
 Caused by: java.sql.SQLException: Java exception: ': java.lang.IllegalMonitorStateException'.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
 	... 29 more
 Caused by: java.lang.IllegalMonitorStateException
 	at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(Unknown Source)
 	at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(Unknown Source)
 	at java.util.concurrent.locks.ReentrantLock.unlock(Unknown Source)
 	at org.apache.derby.impl.services.locks.ConcurrentLockSet$Entry.unlock(Unknown Source)
 	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
 	at org.apache.derby.impl.services.locks.ConcurrentLockSet.zeroDurationLockObject(Unknown Source)
 	at org.apache.derby.impl.services.locks.AbstractPool.zeroDurationlockObject(Unknown Source)
 	at org.apache.derby.impl.store.raw.xact.RowLocking2nohold.lockRecordForRead(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeScan.fetchNextGroup(Unknown Source)
 	at org.apache.derby.impl.sql.execute.BulkTableScanResultSet.reloadArray(Unknown Source)
 	at org.apache.derby.impl.sql.execute.BulkTableScanResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.JoinResultSet.openCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
 	... 22 more
 
mlohbihler


[Avatar]

Joined: 01/03/2007 22:48:52
Messages: 899
Online

What version of Mango are you using?

Best regards,
Matthew Lohbihler
mlohbihler


[Avatar]

Joined: 01/03/2007 22:48:52
Messages: 899
Online

Also, check the system settings page. If your database is pretty big you'll likely get better performance using MySQL rather than Derby.

Best regards,
Matthew Lohbihler
kuau

Initiate

Joined: 02/11/2009 13:13:19
Messages: 2
Offline

version 1.7. I'll consider switching to mysql.

I have one instance on a dual core machine (ubuntu 8.04) with 2gb ram and the database size is 2gb (derby). no trouble there.

As for the windows instance that is having trouble, I found a couple of points that change every 15s as they are used as a 'watchdog' which were not set to be purged. I have set them to purge now after 2 days. ~11k pointvalues per day. I ran the purges manually and didn't get an out of memory error so I think they might work tonight as well.

Is there a practical limit to how many pointvalues mango can deal with? I think I'll be generating ~525k pointvalues per year that I'd like to hold on to.

I did get some errors in the log while purging:
Code:
 ERROR 2009-11-03 14:08:58,855 (com.serotonin.web.dwr.ExceptionDetectionFilter.doFilter:29) - DWR invocation exception 
 org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [delete from pointValues where dataPointId=? and ts<?]; A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.; nested exception is java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.translate(SQLExceptionSubclassTranslator.java:52)
 	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:237)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:606)
 	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:791)
 	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:849)
 	at com.serotonin.db.spring.ExtendedJdbcTemplate.update(ExtendedJdbcTemplate.java:117)
 	at com.serotonin.mango.db.dao.PointValueDao.deletePointValues(PointValueDao.java:544)
 	at com.serotonin.mango.db.dao.PointValueDao.deletePointValuesBefore(PointValueDao.java:518)
 	at com.serotonin.mango.rt.RuntimeManager.purgeDataPointValues(RuntimeManager.java:452)
 	at com.serotonin.mango.rt.RuntimeManager.purgeDataPointValues(RuntimeManager.java:442)
 	at com.serotonin.mango.web.dwr.DataPointEditDwr.purgeNow(DataPointEditDwr.java:122)
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 	at java.lang.reflect.Method.invoke(Unknown Source)
 	at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedInAjaxFilter.java:39)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.java:54)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.web.dwr.ExceptionDetectionFilter.doFilter(ExceptionDetectionFilter.java:23)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
 	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
 	at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
 	at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
 	at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 	at java.lang.Thread.run(Unknown Source)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
 	at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:797)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:590)
 	... 39 more
 Caused by: java.sql.SQLException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
 	... 50 more
 Caused by: ERROR 40001: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
 	at org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown Source)
 	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
 	at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
 	at org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown Source)
 	at org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(Unknown Source)
 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
 	... 44 more
 WARN  2009-11-03 14:08:59,065 (org.directwebremoting.util.CommonsLoggingOutput.warn:67) - Method execution failed:  
 org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [delete from pointValues where dataPointId=? and ts<?]; A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.; nested exception is java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.translate(SQLExceptionSubclassTranslator.java:52)
 	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:237)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:606)
 	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:791)
 	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:849)
 	at com.serotonin.db.spring.ExtendedJdbcTemplate.update(ExtendedJdbcTemplate.java:117)
 	at com.serotonin.mango.db.dao.PointValueDao.deletePointValues(PointValueDao.java:544)
 	at com.serotonin.mango.db.dao.PointValueDao.deletePointValuesBefore(PointValueDao.java:518)
 	at com.serotonin.mango.rt.RuntimeManager.purgeDataPointValues(RuntimeManager.java:452)
 	at com.serotonin.mango.rt.RuntimeManager.purgeDataPointValues(RuntimeManager.java:442)
 	at com.serotonin.mango.web.dwr.DataPointEditDwr.purgeNow(DataPointEditDwr.java:122)
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 	at java.lang.reflect.Method.invoke(Unknown Source)
 	at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.mango.web.dwr.util.LoggedInAjaxFilter.doFilter(LoggedInAjaxFilter.java:39)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.web.dwr.LocalizationFilter.doFilter(LocalizationFilter.java:54)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at com.serotonin.web.dwr.ExceptionDetectionFilter.doFilter(ExceptionDetectionFilter.java:23)
 	at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
 	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
 	at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
 	at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
 	at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
 	at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
 	at java.lang.Thread.run(Unknown Source)
 Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown Source)
 	at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:797)
 	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:590)
 	... 39 more
 Caused by: java.sql.SQLException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
 	... 50 more
 Caused by: ERROR 40001: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.
 	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
 	at org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown Source)
 	at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
 	at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
 	at org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(Unknown Source)
 	at org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown Source)
 	at org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.collectAffectedRows(Unknown Source)
 	at org.apache.derby.impl.sql.execute.DeleteCascadeResultSet.open(Unknown Source)
 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
 	... 44 more
 WARN  2009-11-03 14:08:59,135 (org.directwebremoting.util.CommonsLoggingOutput.warn:59) - --Erroring: batchId[6] message[org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [delete from pointValues where dataPointId=? and ts<?]; A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.; nested exception is java.sql.SQLTransactionRollbackException: A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
 Lock : ROW, POINTVALUES, (34767,50)
   Waiting XID : {58086398, X} , APP, delete from pointValues where dataPointId=? and ts<?
   Granted XID : {58086372, X} 
 Lock : TABLE, POINTVALUEANNOTATIONS, Tablelock
   Waiting XID : {58086372, IX} , APP, insert into pointValueAnnotations (pointValueId, textPointValueShort, textPointValueLong, sourceType, sourceId) values (?,?,?,?,?)
   Granted XID : {58086398, X} 
 . The selected victim is XID : 58086398.] 
mlohbihler


[Avatar]

Joined: 01/03/2007 22:48:52
Messages: 899
Online

I recommend switching to MySQL. The errors that you are seeing there have to do with long running delete operations. The delete will hold a lock on the table, meaning that async operations will sit and wait. If the wait is too long, the error occurs. In a system like Mango there's not much that can be done about this. (Believe me, i've looked into it.) MySQL provides better performance and the possibility of running on a separate host.

The bottom line is: if you see a lot of these errors, scale back your data collection, lower your data retention periods, or get a faster database server.

Best regards,
Matthew Lohbihler
 
Forum Index -> Mango installation
Go to:   
Powered by JForum 2.1.7 © JForum Team