title: Mirth Connect Sender Channel Destination Database writer unable to update the record in DB
body: <p>I have a strange problem with Mirth Connect Sender Channel.</p>
  
  <p>Everything is working fine and tested in testing environment and when I deployed the sender channel in live strange problem arises. </p>
  
  <p>Data is processed successfully in Source Transformer and it is sent to destination and LLP Sender sent the message successfully to the receiver. </p>
  
  <p>At Database Writer step, I am getting the below error </p>
  
  <pre><code>[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)
  </code></pre>