Mirth Connect发件人通道目标数据库编写器无法更新DB中的记录

时间:2013-02-18 08:54:30

标签: hl7 mirth

我对Mirth Connect发件人频道有一个奇怪的问题。

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

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

在Database Writer步骤中,我收到以下错误

[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)

2 个答案:

答案 0 :(得分:0)

“断开的管道”表示与服务器的连接出现问题。检查一下。

答案 1 :(得分:0)

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

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

那时,它与Windows Server(2003/2008 Server)中TCP / IP堆栈中的错误有关,当服务器启动时间过长时,就会发生此错误,它不再能够创建新的连接。我认为Windwows中的一个补丁已解决。较新的Windows Server版本也不会出现此错误。