【问题标题】:Mirth Connect Sender Channel Destination Database writer unable to update the record in DBMirth Connect Sender Channel Destination Database writer 无法更新数据库中的记录
【发布时间】:2013-02-18 08:54:30
【问题描述】:

我对 Mirth Connect Sender Channel 有一个奇怪的问题。

一切正常,并在测试环境中进行了测试,当我在现场部署发送方通道时,出现了奇怪的问题。

数据在 Source Transformer 中成功处理并发送到目的地,LLP Sender 成功地将消息发送到接收者。

在数据库编写器步骤中,我收到以下错误

[2013-02-18 09:02:29,981]  ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95): Caught exception in Exception Strategy for: d3b08b4e-baf1-4462-b2cc-ad36acafdcde: java.sql.SQLException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: Broken pipe

STACKTRACE:

java.net.SocketException: Broken pipe

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2744)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)

at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)

at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)

at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)

at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)

at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:596)

at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:132)

at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doSend(JdbcMessageDispatcher.java:160)

at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)

at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)

at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)

at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)

at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:61)

at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)

at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)

at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)

at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)

at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)

at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)

at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)

at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)

at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)

at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)

at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)

at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:229)

at com.mirth.connect.connectors.jdbc.JdbcMessageReceiver.processMessage(JdbcMessageReceiver.java:179)

at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.doInTransaction(TransactedPollingMessageReceiver.java:159)

at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:72)

at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.run(TransactedPollingMessageReceiver.java:149)

at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)

at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)

at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)

at java.lang.Thread.run(Thread.java:662)


** END NESTED EXCEPTION **



Last packet sent to the server was 1 ms ago. Query: UPDATE hl7worklist SET status = ? WHERE id = ?;
 Parameters: [2.0, 12596]
    java.sql.SQLException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.SocketExceptionMESSAGE: Broken pipeSTACKTRACE:java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2744)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1612)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:596)
    at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:132)
    at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doSend(JdbcMessageDispatcher.java:160)
    at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)
    at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)
    at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:61)
    at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)
    at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)
    at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)
    at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)
    at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)
    at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)
    at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)
    at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)
    at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)
    at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:229)
    at com.mirth.connect.connectors.jdbc.JdbcMessageReceiver.processMessage(JdbcMessageReceiver.java:179)
    at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.doInTransaction(TransactedPollingMessageReceiver.java:159)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:72)
    at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.run(TransactedPollingMessageReceiver.java:149)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:662)** END NESTED EXCEPTION **Last packet sent to the server was 1 ms ago. Query: UPDATE hl7worklist SET status = ? WHERE id = ?; Parameters: [2.0, 12596]
    at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:542)
    at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:599)
    at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:132)
    at com.mirth.connect.connectors.jdbc.JdbcMessageDispatcher.doSend(JdbcMessageDispatcher.java:160)
    at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:164)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:191)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:130)
    at org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:85)
    at org.mule.routing.outbound.FilteringMulticastingRouter.route(FilteringMulticastingRouter.java:61)
    at org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:78)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:48)
    at org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:82)
    at org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:247)
    at org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:209)
    at org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:277)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.java:201)
    at org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:176)
    at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:143)
    at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:487)
    at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:266)
    at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:229)
    at com.mirth.connect.connectors.jdbc.JdbcMessageReceiver.processMessage(JdbcMessageReceiver.java:179)
    at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.doInTransaction(TransactedPollingMessageReceiver.java:159)
    at org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:72)
    at org.mule.providers.TransactedPollingMessageReceiver$MessageProcessorWorker.run(TransactedPollingMessageReceiver.java:149)
    at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
    at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:662)

【问题讨论】:

  • @swaroop... 您能否提供更多详细信息,例如您使用的是哪个数据库,它们是否具有足够的权限以及数据库驱动程序是否安装在服务器中,如果是,那么开发中的版本是否相同和生产环境。
  • 和相关的代码 sn-p 将有助于弄清楚这里到底发生了什么并帮助你。

标签: hl7 mirth


【解决方案1】:

“Broken pipe”表示与服务器的连接出现问题。检查一下。

【讨论】:

    【解决方案2】:

    “通讯链接失败...”是一种很一般的消息。

    我遇到此错误的次数与数据库服务器运行时间过长(+500 天或其他时间......)有关。只需重新启动 Windows Server 即可解决问题。

    当时它与 Windows Server (2003/2008 Server) 中的 TCP/IP 堆栈中的错误有关,当服务器运行时间过长时,它无法再创建新连接。我认为 a 已在 Windwows 的补丁中解决。较新的 Windows Server 版本也不会出现此错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多