0

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

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

数据在 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)
4

2 回答 2

0

“通信链接故障...”是一种非常普遍的消息类型。

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

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

于 2019-03-24T07:59:33.817 回答
0

“断管”是指与服务器的连接出现问题。检查那个。

于 2017-10-29T16:50:24.240 回答