Alarm Journal not working on only one Vision Client

Hi All,

Strange issue on a well oiled system that had no recent changes. Two computers, redundant Gateways and each PC have a vision client running. There was no recent changes to the system but since the start of the week, one vision client can’t connected to a MySQL DB Alarm Journal. The DB is on that same PC and the other client and Designer will show the Alarm journal just fine.

I did check the Client Diag and had fault on that Alarm Journal but can’t really know what to do after.

Computer was restarted by the customer and no change. It is on an operating ship so defficult to get time where I can shut down things.

Fault in the Diag…sorry for the formating..

It does say Faulted but eveything looks fine in the Gateway.

Message: Error fetching alarms.
Time: mer. oct. 8 3:56:04p.m.
Severity: WARN
Logger: Vision.Components.AlarmJournalTable
Stack Trace: java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.gateway.datasource.FaultedDatabaseConnectionException: The database connection 'Historique_Alarmes' is FAULTED. See Gateway Status for details.
    at java.base/java.util.concurrent.FutureTask.report(Unknown Source)
    at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
    at java.desktop/javax.swing.SwingWorker.get(Unknown Source)
    at com.inductiveautomation.factorypmi.application.components.AlarmJournalTable$QueryAlarmJournal.done(AlarmJournalTable.java:1313)
    at java.desktop/javax.swing.SwingWorker$5.run(Unknown Source)
    at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
    at java.desktop/sun.swing.AccumulativeRunnable.run(Unknown Source)
    at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
    at java.desktop/javax.swing.Timer.fireActionPerformed(Unknown Source)
    at java.desktop/javax.swing.Timer$DoPostEvent.run(Unknown Source)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Unknown Source)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.gateway.datasource.FaultedDatabaseConnectionException: The database connection 'Historique_Alarmes' is FAULTED. See Gateway Status for details.
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:360)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:334)
    at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invokeWithTimeout(GatewayInterface.java:979)
    at com.inductiveautomation.factorypmi.application.components.AlarmJournalTable$QueryAlarmJournal.doInBackground(AlarmJournalTable.java:1294)
    at com.inductiveautomation.factorypmi.application.components.AlarmJournalTable$QueryAlarmJournal.doInBackground(AlarmJournalTable.java:1168)
    at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayResponse$GatewayThrowable: com.inductiveautomation.ignition.gateway.datasource.FaultedDatabaseConnectionException: The database connection 'Historique_Alarmes' is FAULTED. See Gateway Status for details.
    at com.inductiveautomation.ignition.gateway.alarming.AlarmManagerImpl.queryJournal(AlarmManagerImpl.java:618)
    at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.Alarming.queryJournal(Alarming.java:63)
    at jdk.internal.reflect.GeneratedMethodAccessor149.invoke(null)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(null)
    at java.lang.reflect.Method.invoke(null)
    at com.inductiveautomation.ignition.gateway.servlets.gateway.AbstractGatewayFunction.invoke(AbstractGatewayFunction.java:228)
    at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:435)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
    at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
    at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
    at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
    at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
    at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
    at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
    at org.eclipse.jetty.server.Server.handle(Server.java:563)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
    at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
    at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
    at java.lang.Thread.run(null)

Check this DB connection status in the Gateway?

I can’t access the system right now but later today I can share screenshots. DB Connection is all good. Even the remote Vision client has access to the DB. The only one not connecting is the client on the actual PC where the DB is and it stopped working suddenly.

The particular error message you posted is unambiguously identifying that the gateway had an issue making a database connection. It might be a transitive error - by default, Ignition makes eight connections to the database at a time in a "pool", and (somehow) only one of those might be failing and this one particular client drew the short straw and got assigned that connection (repeatedly?).

My parentheses may suggest that this is implausible/inexplicable, though stranger things have happened. Putting my support hat on... you're positive the gateway you're looking at that shows everything is hunky-dory is the same gateway this particular client is connected to?

Are there any errors in the gateway's logs about the database connection being faulted?