com.mirth.connect.donkey.server.data.DonkeyDaoException: Channel ID 93c88a07-b6a9-4bb5-8a9b-59cbc006d922 does not exist

Mirth Project | Nick Rupley | 3 months ago
  1. 0

    Forum thread: http://www.mirthcorp.com/community/forums/showthread.php?t=9537 \\ \\ {quote}We have numerous inbound channels that are MLLP listeners sending to multiple channel-reader type destinations. Everything is queued and none of it is synchronized. Frequently, this configuration produces a deadlock while updating the message statistics for the channel and destinations: \\ \\ {code} [2013-11-03 18:47:36,366] ERROR (com.mirth.connect.connectors.vm.VmDispatcher:510): Error processing queued message 215-3 (SENT) for channel 8c89cb69-b26d-450e-a9fc-d09207d9b6eb (Destination 3). This error is expected if the message was manually removed from the queue. com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLException: Transaction (Process ID 63) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.addChannelStatistics(JdbcDao.java:369) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.commit(JdbcDao.java:1581) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.executeTasks(BufferedDao.java:131) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:74) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:61) at com.mirth.connect.donkey.server.channel.DestinationConnector.run(DestinationConnector.java:498) at java.lang.Thread.run(Unknown Source)Caused by: java.sql.SQLException: Transaction (Process ID 63) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2894) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2334) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:643) at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:614) at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:573) at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:707) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.addChannelStatistics(JdbcDao.java:346) ... 6 more{code} Turning the synchronization (wait for previous channel...) on makes this issue go away, but makes our processing sequential -- which we would like to avoid. I've attached the offending configuration, and I can get it to reliably trigger using a set of about 500 messages pumped at it. I've started to look at the way the code for the channels queues up the events for processing based on the Deadlock Graph included in the ZIP file -- but that is as far as I have gotten thus far. Just wanted to see if anyone else had seen this and if anybody was out ahead of me on the analysis. Oh -- the messages do get delivered, it is just the stat updates that are failing. +*Environment:*+ * Windows Server 2008 R2 * Mirth Connect Server 3.0.0.6931 * Built on September 30, 2013 * Server ID: 2f1516e3-8ed6-443e-914f-c670e8fde5cf * Java version: 1.7.0_45 (64-bit) * SQL Server 2008 R2 & SQL Server 2012 Cordially, Jonathan Lent {quote}

    Mirth Project | 3 years ago | Nick Rupley
    com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLException: Transaction (Process ID 63) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
  2. 0

    I had a JavaScript Reader channel (pruning enabled) that was basically just blasting a bunch of messages. At the same time, I ran the data pruner. When I did that, both the pruner and channel processing seemed to stop for a good 15-20 seconds, after which I got this: {code}[2013-06-27 18:48:45,546] ERROR (com.mirth.connect.donkey.server.channel.Channel:961): Error processing message. com.mirth.connect.donkey.server.channel.ChannelException: com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLException: Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:920) at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:130) at com.mirth.connect.connectors.js.JavaScriptReceiver.poll(JavaScriptReceiver.java:100) at com.mirth.connect.donkey.server.channel.PollConnector$PollConnectorTask.run(PollConnector.java:111) at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source)Caused by: com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLException: Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertContent(JdbcDao.java:233) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertMessageContent(JdbcDao.java:161) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.executeTasks(BufferedDao.java:98) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:74) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:61) at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:907) ... 5 moreCaused by: java.sql.SQLException: Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2894) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2334) at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:643) at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:614) at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:573) at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:707) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertContent(JdbcDao.java:230) ... 10 more{code}

    Mirth Project | 3 years ago | Nick Rupley
    com.mirth.connect.donkey.server.data.DonkeyDaoException: java.sql.SQLException: Transaction (Process ID 56) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
  3. Speed up your debug routine!

    Automated exception search integrated into your IDE

  4. 0

    Even with the 'Remove Illegal XML characters' replacement in the pre-processor, Message fails with the following error if it contains ascii 0: I tested the same message against version 2.2.3 and it processed fine. [2013-10-10 21:50:48,457] ERROR (com.mirth.connect.donkey.server.channel.Channel:970): Error processing message. com.mirth.connect.donkey.server.channel.ChannelException: com.mirth.connect.donkey.server.data.DonkeyDaoException: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:929) at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:177) at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:154) at com.mirth.connect.connectors.tcp.TcpReceiver$TcpReader.call(TcpReceiver.java:524) at com.mirth.connect.connectors.tcp.TcpReceiver$TcpReader.call(TcpReceiver.java:391) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)Caused by: com.mirth.connect.donkey.server.data.DonkeyDaoException: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertContent(JdbcDao.java:244) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertMessageContent(JdbcDao.java:172) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.executeTasks(BufferedDao.java:98) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:74) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:61) at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:903) ... 9 moreCaused by: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:332) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.insertContent(JdbcDao.java:241) ... 14 more

    Mirth Project | 3 years ago | Simon Easton
    com.mirth.connect.donkey.server.data.DonkeyDaoException: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00
  5. 0

    If you create a channel that uses MESSAGE_ID or METADATA_ID as one of its custom metadata columns, it will actually let you deploy the channel the first time. However the second time you deploy it, it will error: {code}[2014-08-18 08:38:13,150] ERROR (com.mirth.connect.server.controllers.DonkeyEngineController:191): Error deploying channel 1d8f6781-e1ce-4ec9-abb3-f022fe51f0da. com.mirth.connect.donkey.server.DeployException: Failed to deploy channel. at com.mirth.connect.donkey.server.channel.Channel.deploy(Channel.java:420) at com.mirth.connect.donkey.server.Donkey.deployChannel(Donkey.java:154) at com.mirth.connect.server.controllers.DonkeyEngineController.deployChannel(DonkeyEngineController.java:244) at com.mirth.connect.server.controllers.DonkeyEngineController.deployChannels(DonkeyEngineController.java:189) at com.mirth.connect.server.controllers.DonkeyEngineController.redeployAllChannels(DonkeyEngineController.java:328) at com.mirth.connect.server.servlets.EngineServlet.doPost(EngineServlet.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:447) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:363) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483) at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:931) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:992) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:745)Caused by: java.util.concurrent.ExecutionException: com.mirth.connect.donkey.server.data.DonkeyDaoException: Failed to add meta-data column at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.mirth.connect.donkey.server.channel.Channel.deploy(Channel.java:395) ... 30 moreCaused by: com.mirth.connect.donkey.server.data.DonkeyDaoException: Failed to add meta-data column at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.addMetaDataColumn(JdbcDao.java:1479) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.executeTasks(BufferedDao.java:122) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:74) at com.mirth.connect.donkey.server.data.buffered.BufferedDao.commit(BufferedDao.java:56) at com.mirth.connect.donkey.server.channel.Channel$DeployTask.updateMetaDataColumns(Channel.java:1824) at com.mirth.connect.donkey.server.channel.Channel$DeployTask.call(Channel.java:1731) at com.mirth.connect.donkey.server.channel.Channel$DeployTask.call(Channel.java:1706) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ... 1 moreCaused by: org.postgresql.util.PSQLException: ERROR: column "MESSAGE_ID" of relation "d_mcm1" already exists at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:372) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:300) at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228) at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228) at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.addMetaDataColumn(JdbcDao.java:1473) ... 10 more{code} The UI shouldn't even allow users to type in those reserved columns.

    Mirth Project | 2 years ago | Nick Rupley
    com.mirth.connect.donkey.server.data.DonkeyDaoException: Failed to add meta-data column

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. com.mirth.connect.donkey.server.data.DonkeyDaoException

      Channel ID 93c88a07-b6a9-4bb5-8a9b-59cbc006d922 does not exist

      at com.mirth.connect.donkey.server.data.jdbc.JdbcDao.getLocalChannelId()
    2. com.mirth.connect
      DonkeyStatisticsUpdater.run
      1. com.mirth.connect.donkey.server.data.jdbc.JdbcDao.getLocalChannelId(JdbcDao.java:2721)
      2. com.mirth.connect.donkey.server.data.jdbc.JdbcDao.prepareStatement(JdbcDao.java:2613)
      3. com.mirth.connect.donkey.server.data.jdbc.JdbcDao.updateStatistics(JdbcDao.java:379)
      4. com.mirth.connect.donkey.server.data.jdbc.JdbcDao.addChannelStatistics(JdbcDao.java:354)
      5. com.mirth.connect.donkey.server.data.DonkeyStatisticsUpdater.commit(DonkeyStatisticsUpdater.java:87)
      6. com.mirth.connect.donkey.server.data.DonkeyStatisticsUpdater.run(DonkeyStatisticsUpdater.java:52)
      6 frames