swaroop
swaroop

Reputation: 147

Mirth Connect Sender Channel Destination Database writer unable to update the record in DB

I have a strange problem with Mirth Connect Sender Channel.

Everything is working fine and tested in testing environment and when I deployed the sender channel in live strange problem arises.

Data is processed successfully in Source Transformer and it is sent to destination and LLP Sender sent the message successfully to the receiver.

At Database Writer step, I am getting the below error

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

Upvotes: 0

Views: 1896

Answers (2)

Addy Klos
Addy Klos

Reputation: 1

"Communications link failure..." is quite a general type of message.

The times that I encountered this error had to do with the fact the database server had been running for too long (+500 days or something...). Simply rebooting the Windows Server solved the problem.

At that time it was related to a bug in the TCP/IP stack in Windows Server (2003/2008 Server), which occurs when a server has been up for too long, it cannot create new connections anymore. I think a has been solved in a patch in Windwows. The newer Windows Server editions won't have this bug either.

Upvotes: 0

Pablo Pazos
Pablo Pazos

Reputation: 3226

"Broken pipe" means problems with the connection to the server. Check that.

Upvotes: 0

Related Questions