Corrupt H2 Database
-
Good Afternoon All,
I am receiving this error on one of our client systems in the field:
File corrupted while reading record: "[360329] stream data key:16680 pos:11 remaining:0". Possible solution: use the recovery tool [90030-181] 90030/90030 (Help)
Based on a quick search it looks like there are varying degrees of success in recovering the database file.
Has anyone had any experience in recovering a Mango H2 database?
Thanks!
-
Hi Brad_GMI,
Has anyone had any experience in recovering a Mango H2 database?
Yeah, I've done it a couple of times or more...
Here's the thread I typically link people to: https://forum.infiniteautomation.com/topic/2748/how-to-restore-a-database-backup
Which has the easy way (works if the backup was created from the same version of Mango, in the third post) and the command line way (works even with backups that are from a version prior to the current version, but must be done when Mango is off and you may need to adjust the path to the H2 jar file from the second post as the version has changed).
I would expect restoring a database backup will solve the issue. If you're using the NoSQL module, the only thing that would be lost is any events or modifications that you made to the configuration since the backup was created: the data will have still been recorded into the NoSQL database.
-
I've attempted several recoveries from the available backups. They are all producing these errors once the restore process completes:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id]; nested exception is org.h2.jdbc.JdbcSQLException: Table "EVENTDETECTORS" not found; SQL statement: SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id [42102-181] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at com.serotonin.m2m2.web.filter.WebContextFilter.doFilter(WebContextFilter.java:43) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at com.serotonin.m2m2.web.filter.LoggedInFilter.doFilter(LoggedInFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at com.serotonin.m2m2.web.filter.UrlSecurityFilter.doFilter(UrlSecurityFilter.java:206) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at com.serotonin.web.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:37) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83) at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:364) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:87) at com.serotonin.m2m2.web.filter.MangoShallowEtagHeaderFilter.doFilterInternal(MangoShallowEtagHeaderFilter.java:47) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at com.serotonin.m2m2.web.mvc.spring.security.CsrfHeaderFilter.doFilterInternal(CsrfHeaderFilter.java:41) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id]; nested exception is org.h2.jdbc.JdbcSQLException: Table "EVENTDETECTORS" not found; SQL statement: SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id [42102-181] at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:680) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:712) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:722) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:772) at com.serotonin.db.DaoUtils.query(DaoUtils.java:308) at com.serotonin.m2m2.db.dao.EventDetectorDao.getWithSourceId(EventDetectorDao.java:177) at com.serotonin.m2m2.db.dao.DataPointDao.setEventDetectors(DataPointDao.java:460) at com.serotonin.m2m2.db.dao.DataPointDao.setRelationalData(DataPointDao.java:288) at com.serotonin.m2m2.db.dao.DataPointDao.getDataPoint(DataPointDao.java:167) at com.serotonin.m2m2.db.dao.DataPointDao.getDataPoint(DataPointDao.java:159) at com.serotonin.m2m2.web.mvc.controller.DataPointDetailsController.handleRequest(DataPointDetailsController.java:78) at com.serotonin.m2m2.web.mvc.UrlHandlerController.handleRequest(UrlHandlerController.java:36) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ... 74 more Caused by: org.h2.jdbc.JdbcSQLException: Table "EVENTDETECTORS" not found; SQL statement: SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id [42102-181] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:179) at org.h2.message.DbException.get(DbException.java:155) at org.h2.command.Parser.readTableOrView(Parser.java:5227) at org.h2.command.Parser.readTableFilter(Parser.java:1221) at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1860) at org.h2.command.Parser.parseSelectSimple(Parser.java:1969) at org.h2.command.Parser.parseSelectSub(Parser.java:1854) at org.h2.command.Parser.parseSelectUnion(Parser.java:1675) at org.h2.command.Parser.parseSelect(Parser.java:1663) at org.h2.command.Parser.parsePrepared(Parser.java:433) at org.h2.command.Parser.parse(Parser.java:305) at org.h2.command.Parser.parse(Parser.java:277) at org.h2.command.Parser.prepareCommand(Parser.java:242) at org.h2.engine.Session.prepareLocal(Session.java:446) at org.h2.engine.Session.prepareCommand(Session.java:388) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1189) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:72) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:277) at org.springframework.jdbc.core.JdbcTemplate$SimplePreparedStatementCreator.createPreparedStatement(JdbcTemplate.java:1516) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:623) ... 90 more REQUEST URL http://localhost:8080/exception/error.jsp REQUEST PARAMETERS REQUEST HEADERS Cookie=MANGO8080=1oorhho5d8upo1gbk0m2mlbznz; XSRF-TOKEN=f1840133-71be-4aaf-9ff9-e5cc0422867d Accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests=1 User-Agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0 Referer=http://localhost:8080/modules.shtm Connection=keep-alive Host=localhost:8080 Accept-Language=en-US,en;q=0.5 Accept-Encoding=gzip, deflate REQUEST ATTRIBUTES javax.servlet.forward.context_path= org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER=org.springframework.web.context.request.async.WebAsyncManager@5252d6dd javax.servlet.error.status_code=500 javax.servlet.forward.servlet_path=/data_point_details.shtm org.springframework.web.servlet.DispatcherServlet.CONTEXT=WebApplicationContext for namespace 'springDispatcher-servlet': startup date [Mon Feb 18 15:00:34 EST 2019]; parent: Root WebApplicationContext javax.servlet.jsp.jstl.fmt.localizationContext.request=org.springframework.web.servlet.support.JstlUtils$SpringLocalizationContext@1bc9424c org.springframework.web.servlet.HandlerMapping.introspectTypeLevelMapping=false org.eclipse.jetty.server.error_page=/exception/error.jsp __spring_security_session_mgmt_filter_applied=true urlSecurity=true org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER=org.springframework.web.servlet.i18n.SessionLocaleResolver@6a6a2a03 org.springframework.web.servlet.HandlerMapping.bestMatchingPattern=/data_point_details.shtm org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP=FlashMap [attributes={}, targetRequestPath=null, targetRequestParams={}] javax.servlet.error.exception_type=class org.springframework.web.util.NestedServletException org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER=org.springframework.web.servlet.support.SessionFlashMapManager@3b093a20 lang=en javax.servlet.forward.request_uri=/data_point_details.shtm availableLanguages=[] javax.servlet.http.HttpServletResponse=org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterResponse@3893bdbb __spring_security_filterSecurityInterceptor_filterApplied=true _csrf=org.springframework.security.web.csrf.DefaultCsrfToken@d43e349 javax.servlet.error.servlet_name=springDispatcher javax.servlet.error.message=org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id]; nested exception is org.h2.jdbc.JdbcSQLException: Table "EVENTDETECTORS" not found; SQL statement: SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id [42102-181] org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE=WebApplicationContext for namespace 'springDispatcher-servlet': startup date [Mon Feb 18 15:00:34 EST 2019]; parent: Root WebApplicationContext instanceDescription=My Mango Automation NEW_ID=-1 org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping=/data_point_details.shtm org.springframework.security.web.csrf.CsrfToken=org.springframework.security.web.csrf.DefaultCsrfToken@d43e349 javax.servlet.error.request_uri=/data_point_details.shtm org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER=org.springframework.web.servlet.theme.FixedThemeResolver@3642fad0 javax.servlet.jsp.jstl.fmt.locale.request=en_US javax.servlet.error.exception=org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id]; nested exception is org.h2.jdbc.JdbcSQLException: Table "EVENTDETECTORS" not found; SQL statement: SELECT edt.id,edt.xid,edt.sourceTypeName,edt.typeName,edt.data,edt.dataPointId FROM eventDetectors AS edt WHERE edt.dataPointId=? ORDER BY id [42102-181] SESSION ATTRIBUTES org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN=org.springframework.security.web.csrf.DefaultCsrfToken@d43e349 sessionUser=User [id=1, username=admin, password={BCRYPT}$2a$10$geXLtQkG69172R6A5oHyGO4uv4UrMwPNVg0/XiNvsttNfgDK9m0wC, email=admin@yourMangoDomain.com, phone=, disabled=false, homeUrl=null, lastLogin=0, receiveAlarmEmails=-3, receiveOwnAuditEvents=false, timezone=null, permissions=superadmin] LONG_POLL_DATA_TIMEOUT=1550520355793 SPRING_SECURITY_CONTEXT=org.springframework.security.core.context.SecurityContextImpl@eefb1197: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@eefb1197: Principal: User [id=1, username=admin, password={BCRYPT}$2a$10$geXLtQkG69172R6A5oHyGO4uv4UrMwPNVg0/XiNvsttNfgDK9m0wC, email=admin@yourMangoDomain.com, phone=, disabled=false, homeUrl=null, lastLogin=0, receiveAlarmEmails=-3, receiveOwnAuditEvents=false, timezone=null, permissions=superadmin]; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: ROLE_superadmin, ROLE_ADMIN LONG_POLL_DATA=[com.serotonin.m2m2.web.dwr.longPoll.LongPollData@360ca62, com.serotonin.m2m2.web.dwr.longPoll.LongPollData@8d8250d, com.serotonin.m2m2.web.dwr.longPoll.LongPollData@4c78eef5, com.serotonin.m2m2.web.dwr.longPoll.LongPollData@1df20e14] CONTEXT ATTRIBUTES org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern=.*\.jar$ DwrContainer=org.directwebremoting.impl.DefaultContainer@11ab28ec LocalDeviceDwr=com.serotonin.ma.bacnet.device.LocalDeviceDwr@309ec473 constants.EventType.EventTypeNames.AUDIT=AUDIT constants.SystemEventType.TYPE_USER_LOGIN=USER_LOGIN constants.Permissions.DataPointAccessTypes.READ=1 org.directwebremoting.ContainerList=[org.directwebremoting.impl.DefaultContainer@11ab28ec] constants.DataTypes.BINARY=1 constants.UserComment.TYPE_EVENT=1 constants.SystemEventType.TYPE_SYSTEM_STARTUP=SYSTEM_STARTUP constants.SystemEventType.TYPE_REJECTED_WORK_ITEM=REJECTED_WORK_ITEM constants.AuditEventType.TYPE_EVENT_DETECTOR=EVENT_DETECTOR javax.servlet.ServletConfig=org.eclipse.jetty.servlet.ServletHolder$Config@3482d47c javax.servlet.http.HttpServlet=org.directwebremoting.servlet.DwrServlet@31342b54 org.eclipse.jetty.tmpdirConfigured=true constants.EventType.EventTypeNames.DATA_POINT=DATA_POINT clientSideMessages={common.alarmLevel.lifeSafety=com.serotonin.m2m2.i18n.TranslatableMessage@1c71626, common.disabled=com.serotonin.m2m2.i18n.TranslatableMessage@be9bfeff, header.mute=com.serotonin.m2m2.i18n.TranslatableMessage@43df3cba, header.unmute=com.serotonin.m2m2.i18n.TranslatableMessage@d635aa93, common.alarmLevel.critical=com.serotonin.m2m2.i18n.TranslatableMessage@2b076d7, js.help.related=com.serotonin.m2m2.i18n.TranslatableMessage@3dce6ae3, js.help.lastUpdated=com.serotonin.m2m2.i18n.TranslatableMessage@729293fd, js.email.addAddress=com.serotonin.m2m2.i18n.TranslatableMessage@cbb9a38a, js.help.error=com.serotonin.m2m2.i18n.TranslatableMessage@f876c0, js.email.addUser=com.serotonin.m2m2.i18n.TranslatableMessage@49cc77b5, js.email.addMailingList=com.serotonin.m2m2.i18n.TranslatableMessage@6fa4a69f, js.email.noRecipForEmail=com.serotonin.m2m2.i18n.TranslatableMessage@4b694592, common.access.set=com.serotonin.m2m2.i18n.TranslatableMessage@a3e5309b, common.access.read=com.serotonin.m2m2.i18n.TranslatableMessage@d8bff83d, common.loading=com.serotonin.m2m2.i18n.TranslatableMessage@cf5f0419, common.sendTestEmail=com.serotonin.m2m2.i18n.TranslatableMessage@8fd89c9f, common.disabledToggle=com.serotonin.m2m2.i18n.TranslatableMessage@d7f89333, common.alarmLevel.none=com.serotonin.m2m2.i18n.TranslatableMessage@223c1a70, common.administrator=com.serotonin.m2m2.i18n.TranslatableMessage@a467f3ea, common.enabledToggle=com.serotonin.m2m2.i18n.TranslatableMessage@ea5c2f12, common.alarmLevel.urgent=com.serotonin.m2m2.i18n.TranslatableMessage@8fa9c879, common.minimize=com.serotonin.m2m2.i18n.TranslatableMessage@5d740b21, js.email.noRecipients=com.serotonin.m2m2.i18n.TranslatableMessage@d78563d2, common.user=com.serotonin.m2m2.i18n.TranslatableMessage@8a9479ce, events.silence=com.serotonin.m2m2.i18n.TranslatableMessage@8376c0ac, js.email.testSent=com.serotonin.m2m2.i18n.TranslatableMessage@f59d9881, common.alarmLevel.ignore=com.serotonin.m2m2.i18n.TranslatableMessage@7a97f30a, common.maximize=com.serotonin.m2m2.i18n.TranslatableMessage@c752a74f, common.alarmLevel.doNotLog=com.serotonin.m2m2.i18n.TranslatableMessage@9d8a4f14, events.unsilence=com.serotonin.m2m2.i18n.TranslatableMessage@29ad6533, common.alarmLevel.info=com.serotonin.m2m2.i18n.TranslatableMessage@2239cfe6} constants.SystemEventType.TYPE_SET_POINT_HANDLER_FAILURE=SET_POINT_HANDLER_FAILURE MangoApiSystemSettingsDwr=com.infiniteautomation.mangoApi.web.MangoApiSystemSettingsDwr@799089d6 constants.DataTypes.ALPHANUMERIC=4 constants.Permissions.DataPointAccessTypes.ADMIN=4 constants.Permissions.DataPointAccessTypes.SET=2 constants.AuditEventType.TYPE_DATA_SOURCE=DATA_SOURCE constants.SystemEventType.TYPE_EMAIL_SEND_FAILURE=EMAIL_SEND_FAILURE constants.SystemEventType.TYPE_UPGRADE_CHECK=UPGRADE_CHECK constants.Permissions.DataPointAccessTypes.NONE=0 org.directwebremoting.impl.ServerContext=org.directwebremoting.impl.DefaultServerContext@3f6b67cb constants.EventType.EventTypeNames.PUBLISHER=PUBLISHER org.eclipse.jetty.containerInitializers=[ContainerInitializer{org.eclipse.jetty.apache.jsp.JettyJasperInitializer,interested=[],applicable=[],annotated=[]}] org.eclipse.jetty.server.Executor=qtp1324514662{STARTED,10<=10<=200,i=6,q=0} constants.EventType.EventTypeNames.DATA_SOURCE=DATA_SOURCE constants.SystemEventType.TYPE_LICENSE_CHECK=LICENSE_CHECK org.springframework.web.context.WebApplicationContext.ROOT=Root WebApplicationContext: startup date [Mon Feb 18 15:00:31 EST 2019]; root of context hierarchy org.springframework.web.context.support.ServletContextScope=org.springframework.web.context.support.ServletContextScope@1de8756e constants.SystemEventType.TYPE_SYSTEM_SHUTDOWN=SYSTEM_SHUTDOWN SystemSettingsDwr=com.serotonin.m2m2.web.dwr.SystemSettingsDwr@d16830c mangoMessageKeys=[Ljava.lang.String;@38290674 org.directwebremoting.WebContextFactory$WebContextBuilder=org.directwebremoting.impl.DefaultWebContextBuilder@140411b3 org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@4a994558 javax.servlet.context.tempdir=C:\EnsureSmart\work constants.DataTypes.MULTISTATE=2 org.apache.tomcat.InstanceManager=org.apache.tomcat.SimpleInstanceManager@732ea1e4 org.apache.catalina.jsp_classpath=C:\EnsureSmart\web\modules\sqlConsole\classes;C:\EnsureSmart\web\modules\sqlConsole\lib\m2m2-sqlConsole-1.6.0.jar;C:\EnsureSmart\web\modules\sstGraphics\classes;C:\EnsureSmart\web\modules\sstGraphics\lib\m2m2-sstGraphics-1.2.0.jar;C:\EnsureSmart\web\modules\TCPIP\classes;C:\EnsureSmart\web\modules\TCPIP\lib\m2m2-TCPIP-1.2.0.jar;C:\EnsureSmart\web\modules\dataPointDetailsView\classes;C:\EnsureSmart\web\modules\dataPointDetailsView\lib\m2m2-dataPointDetailsView-1.1.0.jar;C:\EnsureSmart\web\modules\jsonFileImport\classes;C:\EnsureSmart\web\modules\jsonFileImport\lib\m2m2-jsonFileImport-1.2.2.jar;C:\EnsureSmart\web\modules\mbus\classes;C:\EnsureSmart\web\modules\mbus\lib\commons-beanutils-1.8.3.jar;C:\EnsureSmart\web\modules\mbus\lib\commons-collections-3.2.2.jar;C:\EnsureSmart\web\modules\mbus\lib\commons-lang-2.5.jar;C:\EnsureSmart\web\modules\mbus\lib\commons-logging-1.1.1.jar;C:\EnsureSmart\web\modules\mbus\lib\ezmorph-1.0.6.jar;C:\EnsureSmart\web\modules\mbus\lib\json-lib-2.4-jdk15.jar;C:\EnsureSmart\web\modules\mbus\lib\m2m2-mbus-1.2.0.jar;C:\EnsureSmart\web\modules\mbus\lib\mbus4j-core-1.0.0.jar;C:\EnsureSmart\web\modules\mbus\lib\mbus4j-master-1.0.0.jar;C:\EnsureSmart\web\modules\mbus\lib\spsw-java-0.0.7.jar;C:\EnsureSmart\web\modules\twilio\classes;C:\EnsureSmart\web\modules\twilio\lib\m2m2-twilio-1.2.0.jar;C:\EnsureSmart\web\modules\twilio\lib\twilio-java-sdk-3.4.1-jar-with-dependencies.jar;C:\EnsureSmart\web\modules\pop3\classes;C:\EnsureSmart\web\modules\pop3\lib\m2m2-pop3-1.6.0.jar;C:\EnsureSmart\web\modules\vmstat\classes;C:\EnsureSmart\web\modules\vmstat\lib\m2m2-vmstat-1.6.0.jar;C:\EnsureSmart\web\modules\egauge\classes;C:\EnsureSmart\web\modules\egauge\lib\m2m2-egauge-1.2.0.jar;C:\EnsureSmart\web\modules\scripting\classes;C:\EnsureSmart\web\modules\scripting\lib\m2m2-scripting-1.2.0.jar;C:\EnsureSmart\web\modules\opcda\classes;C:\EnsureSmart\web\modules\opcda\lib\j-interop-2.0.10.jar;C:\EnsureSmart\web\modules\opcda\lib\j-interopdeps-2.01.jar;C:\EnsureSmart\web\modules\opcda\lib\jcifs-1.2.19.jar;C:\EnsureSmart\web\modules\opcda\lib\m2m2-opcda-1.7.0.jar;C:\EnsureSmart\web\modules\opcda\lib\org.openscada.opc.dcom_0.7.0.201203290910.jar;C:\EnsureSmart\web\modules\opcda\lib\org.openscada.opc.lib_0.9.0.201203290910.jar;C:\EnsureSmart\web\modules\opcda\lib\org.openscada.utils_0.17.0.201203290908.jar;C:\EnsureSmart\web\modules\loggingConsole\classes;C:\EnsureSmart\web\modules\loggingConsole\lib\m2m2-loggingConsole-1.2.0.jar;C:\EnsureSmart\web\modules\asciiFile\classes;C:\EnsureSmart\web\modules\asciiFile\lib\m2m2-asciiFile-1.3.0.jar;C:\EnsureSmart\web\modules\dashboards\classes;C:\EnsureSmart\web\modules\dashboards\lib\m2m2-dashboards-3.3.1.jar;C:\EnsureSmart\web\modules\dataImport\classes;C:\EnsureSmart\web\modules\dataImport\lib\m2m2-dataImport-1.5.0.jar;C:\EnsureSmart\web\modules\serial\classes;C:\EnsureSmart\web\modules\serial\lib\m2m2-serial-1.3.0.jar;C:\EnsureSmart\web\modules\onewire\classes;C:\EnsureSmart\web\modules\onewire\lib\m2m2-onewire-1.6.0.jar;C:\EnsureSmart\web\modules\onewire\lib\OneWireAPI.jar;C:\EnsureSmart\web\modules\onewire\lib\RXTXcomm.jar;C:\EnsureSmart\web\modules\ssh\classes;C:\EnsureSmart\web\modules\ssh\lib\jsch-0.1.51.jar;C:\EnsureSmart\web\modules\ssh\lib\m2m2-ssh-1.2.0.jar;C:\EnsureSmart\web\modules\sstGlobalScripts\classes;C:\EnsureSmart\web\modules\sstGlobalScripts\lib\m2m2-sstGlobalScripts-1.6.0.jar;C:\EnsureSmart\web\modules\BACnet\classes;C:\EnsureSmart\web\modules\BACnet\lib\bacnet4j-3.2.4.jar;C:\EnsureSmart\web\modules\BACnet\lib\m2m2-BACnet-2.3.0.jar;C:\EnsureSmart\web\modules\mangoApi\classes;C:\EnsureSmart\web\modules\mangoApi\lib\apache-log4j-extras-1.2.17.jar;C:\EnsureSmart\web\modules\mangoApi\lib\m2m2-mangoApi-1.2.1.jar;C:\EnsureSmart\web\modules\modbus\classes;C:\EnsureSmart\web\modules\modbus\lib\m2m2-modbus-1.8.0.jar;C:\EnsureSmart\web\modules\modbus\lib\modbus4j-3.0.3.jar;C:\EnsureSmart\web\modules\excelReports\classes;C:\EnsureSmart\web\modules\excelReports\lib\m2m2-excelReports-1.1.2.jar;C:\EnsureSmart\web\modules\dglux\classes;C:\EnsureSmart\web\modules\dglux\lib\gentlyWEB-utils-1.1.jar;C:\EnsureSmart\web\modules\dglux\lib\JoSQL-2.2.jar;C:\EnsureSmart\web\modules\dglux\lib\m2m2-dglux-1.4.0.jar;C:\EnsureSmart\web\modules\virtualDS\classes;C:\EnsureSmart\web\modules\virtualDS\lib\m2m2-virtualDS-1.6.1.jar;C:\EnsureSmart\web\modules\scheduledEvents\classes;C:\EnsureSmart\web\modules\scheduledEvents\lib\m2m2-scheduledEvents-1.6.0.jar;C:\EnsureSmart\web\modules\jspViews\classes;C:\EnsureSmart\web\modules\jspViews\lib\m2m2-jspViews-2.2.0.jar;C:\EnsureSmart\web\modules\log4jDS\classes;C:\EnsureSmart\web\modules\log4jDS\lib\m2m2-log4jDS-1.2.0.jar;C:\EnsureSmart\web\modules\snmp\classes;C:\EnsureSmart\web\modules\snmp\lib\m2m2-snmp-1.6.0.jar;C:\EnsureSmart\web\modules\snmp\lib\SNMP4J.jar;C:\EnsureSmart\web\modules\pointLinks\classes;C:\EnsureSmart\web\modules\pointLinks\lib\m2m2-pointLinks-1.6.0.jar;C:\EnsureSmart\web\modules\sqlds\classes;C:\EnsureSmart\web\modules\sqlds\lib\m2m2-sqlds-1.7.0.jar;C:\EnsureSmart\web\modules\controlcore\classes;C:\EnsureSmart\web\modules\controlcore\lib\m2m2-controlcore-1.2.0.jar;C:\EnsureSmart\web\modules\meta\classes;C:\EnsureSmart\web\modules\meta\lib\m2m2-meta-2.3.0.jar;C:\EnsureSmart\web\modules\dnp3\classes;C:\EnsureSmart\web\modules\dnp3\lib\dnp34j.jar;C:\EnsureSmart\web\modules\dnp3\lib\m2m2-dnp3-1.7.0.jar;C:\EnsureSmart\web\modules\maintenanceEvents\classes;C:\EnsureSmart\web\modules\maintenanceEvents\lib\m2m2-maintenanceEvents-1.6.0.jar;C:\EnsureSmart\web\modules\graphicalViews\classes;C:\EnsureSmart\web\modules\graphicalViews\lib\m2m2-graphicalViews-1.7.0.jar;C:\EnsureSmart\web\modules\persistent\classes;C:\EnsureSmart\web\modules\persistent\lib\m2m2-persistent-1.7.2.jar;C:\EnsureSmart\web\modules\templateConfig\classes;C:\EnsureSmart\web\modules\templateConfig\lib\m2m2-templateConfig-1.1.0.jar;C:\EnsureSmart\web\modules\internal\classes;C:\EnsureSmart\web\modules\internal\lib\m2m2-internal-1.6.2.jar;C:\EnsureSmart\web\modules\http\classes;C:\EnsureSmart\web\modules\http\lib\m2m2-http-1.6.2.jar;C:\EnsureSmart\web\modules\log4JReset\classes;C:\EnsureSmart\web\modules\log4JReset\lib\m2m2-log4JReset-1.2.0.jar;C:\EnsureSmart\web\modules\reports\classes;C:\EnsureSmart\web\modules\reports\lib\m2m2-reports-2.3.2.jar;C:\EnsureSmart\web\modules\dataFile\classes;C:\EnsureSmart\web\modules\dataFile\lib\jaxb-api.jar;C:\EnsureSmart\web\modules\dataFile\lib\jaxb-core.jar;C:\EnsureSmart\web\modules\dataFile\lib\jaxb-impl.jar;C:\EnsureSmart\web\modules\dataFile\lib\jaxb-jxc.jar;C:\EnsureSmart\web\modules\dataFile\lib\jaxb-xjc.jar;C:\EnsureSmart\web\modules\dataFile\lib\m2m2-dataFile-1.2.0.jar;C:\EnsureSmart\web\modules\watchlists\classes;C:\EnsureSmart\web\modules\watchlists\lib\m2m2-watchlists-1.8.0.jar constants.UserComment.TYPE_POINT=2 org.directwebremoting.Container=org.directwebremoting.impl.DefaultContainer@11ab28ec constants.DataTypes.IMAGE=5 org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@286acdad org.springframework.web.servlet.FrameworkServlet.CONTEXT.springDispatcher=WebApplicationContext for namespace 'springDispatcher-servlet': startup date [Mon Feb 18 15:00:34 EST 2019]; parent: Root WebApplicationContext constants.Permissions.DataPointAccessTypes.DATA_SOURCE=3 constants.EventType.EventTypeNames.SYSTEM=SYSTEM constants.SystemEventType.TYPE_PROCESS_FAILURE=PROCESS_FAILURE constants.AuditEventType.TYPE_DATA_POINT=DATA_POINT constants.SystemEventType.TYPE_MAX_ALARM_LEVEL_CHANGED=MAX_ALARM_LEVEL_CHANGED constants.DataTypes.NUMERIC=3 constants.Common.NEW_ID=-1 MiscDwr=com.serotonin.m2m2.web.dwr.MiscDwr@1c57d89a constants.AuditEventType.TYPE_EVENT_HANDLER=EVENT_HANDLER
-
Are you restoring a backup from a previous version of Mango into a newer version? That's what it looks like. To do that, you would have to follow the instructions for doing the restore on the command line, so that Mango can follow its normal upgrade procedure during startup. The "eventDetectors" table which is missing was created in Upgrade12, which was released long ago.
You'll want to move your existing mah2.h2.db file before doing the command line restore, for safe keeping.