| Author |
Message |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/11/2009 13:53:06
|
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
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/11/2009 17:57:05
|
mlohbihler
![[Avatar]](/forum/images/avatar/eccbc87e4b5ce2fe28308fd9f2a7baf3.png)
Joined: 01/03/2007 22:48:52
Messages: 899
Online
|
What version of Mango are you using?
|
Best regards,
Matthew Lohbihler |
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/11/2009 18:01:36
|
mlohbihler
![[Avatar]](/forum/images/avatar/eccbc87e4b5ce2fe28308fd9f2a7baf3.png)
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 |
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/11/2009 21:40:07
|
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.]
|
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 04/11/2009 11:17:12
|
mlohbihler
![[Avatar]](/forum/images/avatar/eccbc87e4b5ce2fe28308fd9f2a7baf3.png)
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 |
|
|
 |
|
|
|
|