Audit Table not created?

I created an auditing profile, with the default table name (AUDIT_EVENTS). Auto Create is checked. When I view the log for that audit profile, I get an AUDIT_EVENTS relation does not exist error. When is the table created? Or does this error indicate a different problem?

[quote]

WARN 9:50:20 AM AuditLogViewer Error running audit log query

org.postgresql.util.PSQLException: ERROR: relation “AUDIT_EVENTS” does not exist
Position: 157
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at com.inductiveautomation.ignition.gateway.datasource.SRConnectionWrapper$SRPreparedStatement.executeQuery(SRConnectionWrapper.java:833)
at com.inductiveautomation.ignition.gateway.datasource.query.DBQuery.execute(DBQuery.java:123)
at com.inductiveautomation.ignition.gateway.audit.DatasourceAuditProfile.query(DatasourceAuditProfile.java:275)
at com.inductiveautomation.ignition.gateway.web.pages.config.AuditLogViewer$AuditLogModel.load(AuditLogViewer.java:130)
at com.inductiveautomation.ignition.gateway.web.pages.config.AuditLogViewer$AuditLogModel.load(AuditLogViewer.java:123)
at org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:121)
at org.apache.wicket.Component.getDefaultModelObject(Component.java:1615)
at org.apache.wicket.markup.html.list.ListView.getViewSize(ListView.java:219)
at org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:473)
at org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:116)
at org.apache.wicket.Component.internalBeforeRender(Component.java:922)
at org.apache.wicket.Component.beforeRender(Component.java:990)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1680)
at org.apache.wicket.Component.onBeforeRender(Component.java:3830)
at org.apache.wicket.Component.internalBeforeRender(Component.java:922)
at org.apache.wicket.Component.beforeRender(Component.java:990)
at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1680)
at org.apache.wicket.Component.onBeforeRender(Component.java:3830)
at org.apache.wicket.Page.onBeforeRender(Page.java:802)
at com.inductiveautomation.ignition.gateway.web.pages.BasePage.onBeforeRender(BasePage.java:150)
at com.inductiveautomation.ignition.gateway.web.pages.AuthenticatedPage.onBeforeRender(AuthenticatedPage.java:96)
at org.apache.wicket.Component.internalBeforeRender(Component.java:922)
at org.apache.wicket.Component.beforeRender(Component.java:990)
at org.apache.wicket.Component.internalPrepareForRender(Component.java:2204)
at org.apache.wicket.Page.internalPrepareForRender(Page.java:247)
at org.apache.wicket.Component.render(Component.java:2289)
at org.apache.wicket.Page.renderPage(Page.java:1021)
at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:116)
at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:244)
at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:814)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:97)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:253)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
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:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)[/quote]

Does the user you are connecting to the database with have “create tables” permissions?

yes, that user does. To double check, I just re-granted it all privileges on that database. When I look at the DB log, I see lots of select statements to grab the audit_events table rows, but I do not see any create table statements?

There is also no indication in the ignition console that any attempt to create the table was made or failed

Solution used by me:

[quote]Hello Sergey,

The reason you are seeing this issue is due to the table name for AUDIT_EVENTS was not created with quotes due to this problem it will default to a lower case without quotes (audit_events). This will cause issues when ignition is trying to perform a insert to that table since it will be using quotes in the query. The best way to resolve this problem would be to change the table name to the correct format, which would look like this ->"AUDIT_EVENTS". This should resolve the errors you are seeing in the logs.

Sincerely,

James Hunt[/quote]

Thank you very much Sergey. It looks like the table was being created with “audit_events” all lowercase (using postgresql). Its working now.