Hi, I am using iBatis to automatically store some info into the database when a message is received by Activemq. My routing is shown as follows:
<route> <from uri="activemq:topic:AgentLogin"/> <process ref="eventProcessor"/> <to uri="ibatis:agentPark"/> <to uri="ibatis:agentLogin"/> <to uri="bean:agentMatcher"/> </route> The the data is received, I am getting com.mysql.jdbc.exceptions.jdbc4.CommunicationsException, but then Activemq would store preceed with storing the data into the database. I have no clue why it is happening. I also checked my SqlMapConfig.xml and the path to mysql db is correct. Here is the log: DEBUG ActiveMQMessageConsumer - ID:localhost.localdomain-38968-1231601378803-2:0:1:1 received message: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:localhost.localdomain-38968-1231601378803-2:0:1:1, destination = topic://AgentLogin, message = ActiveMQTextMessage {commandId = 4, responseRequired = false, messageId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, originalDestination = null, originalTransactionId = null, producerId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1, destination = topic://AgentLogin, transactionId = null, expiration = 0, timestamp = 1231602146556, arrival = 0, brokerInTime = 1231602146556, brokerOutTime = 1231602146556, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@4b1bcd, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = null}, redeliveryCounter = 0} DEBUG EndpointMessageListener - Endpoint[activemq:topic:AgentLogin] consumer receiving JMS message: ActiveMQTextMessage {commandId = 4, responseRequired = false, messageId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, originalDestination = null, originalTransactionId = null, producerId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1, destination = topic://AgentLogin, transactionId = null, expiration = 0, timestamp = 1231602146556, arrival = 0, brokerInTime = 1231602146556, brokerOutTime = 1231602146556, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.byteseque...@4b1bcd, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = null} INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> process(ref: eventProcessor) , Pattern:InOnly , Headers:{JMSXGroupID=null, JMSCorrelationID=null, JMSType=null, JMSExpiration=0, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSRedelivered=false, JMSDeliveryMode=1, JMSPriority=0, JMSReplyTo=null, JMSTimestamp=1231602146556, JMSDestination=topic://AgentLogin} , BodyType:String , Body:<document><event><event-name>CUSTOM</event-name><action-name>consumer_start</action-name><uuid>fa29ddaf-c4c6-4b7b-b075-747bbea48d55</uuid><host>192.168.1.101</host><time>2009-01-10 23:32:58</time><caller-id>1000</caller-id><dest>0</dest><inbound></inbound><other-leg-uuid></other-leg-uuid><agent-sip-id>1000</agent-sip-id></event></document> payload = <document><event><event-name>CUSTOM</event-name><action-name>consumer_start</action-name><uuid>fa29ddaf-c4c6-4b7b-b075-747bbea48d55</uuid><host>192.168.1.101</host><time>2009-01-10 23:32:58</time><caller-id>1000</caller-id><dest>0</dest><inbound></inbound><other-leg-uuid></other-leg-uuid><agent-sip-id>1000</agent-sip-id></event></document> inboundid = 0 INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> to(ibatis:agentPark) , Pattern:InOnly , Headers:{JMSXGroupID=null, JMSCorrelationID=null, JMSType=null, JMSExpiration=0, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSRedelivered=false, JMSDeliveryMode=1, JMSPriority=0, JMSReplyTo=null, JMSTimestamp=1231602146556, JMSDestination=topic://AgentLogin} , BodyType:com.yht.activemq.ibatis.Event , Body:com.yht.activemq.ibatis.ev...@1eee3fb DEBUG SimpleDataSource - Checked out connection 8023092 from pool. DEBUG Connection - {conn-100019} Connection DEBUG Connection - {conn-100019} Preparing Statement: insert into agent_park_status ( agent_id, uuid, host, time) Select agent_id, ?,?, ? from agent where sip_user = ? ERROR Connection - Error calling Connection.prepareStatement: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error: ** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MESSAGE: Communications link failure Last packet sent to the server was 1 ms ago. STACKTRACE: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 1 ms ago. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2985) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2871) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3414) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) at com.mysql.jdbc.ConnectionImpl.rollbackNoChecks(ConnectionImpl.java:4706) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4591) at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:629) at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:222) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at org.apache.camel.component.ibatis.IBatisProducer.process(IBatisProducer.java:52) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:61) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:887) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:822) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2431) at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2882) ... 44 more ** END NESTED EXCEPTION ** at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1098) at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4076) at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4042) at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) at $Proxy27.prepareStatement(Unknown Source) at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:53) at $Proxy27.prepareStatement(Unknown Source) at com.ibatis.sqlmap.engine.execution.SqlExecutor.prepareStatement(SqlExecutor.java:497) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:75) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at org.apache.camel.component.ibatis.IBatisProducer.process(IBatisProducer.java:52) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:61) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:887) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:822) at java.lang.Thread.run(Thread.java:619) ERROR Connection - Error calling Connection.rollback: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3018) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4564) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) at $Proxy27.rollback(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:68) at $Proxy27.rollback(Unknown Source) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72) at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:87) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:734) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:153) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:835) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:410) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at org.apache.camel.component.ibatis.IBatisProducer.process(IBatisProducer.java:52) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:61) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:887) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:822) at java.lang.Thread.run(Thread.java:619) DEBUG SimpleDataSource - A bad connection (8023092) attempted to return to the pool, discarding connection. INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> to(ibatis:agentPark) , Pattern:InOnly , Headers:{JMSXGroupID=null, JMSCorrelationID=null, JMSType=null, JMSExpiration=0, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSRedelivered=false, JMSDeliveryMode=1, JMSPriority=0, JMSReplyTo=null, JMSTimestamp=1231602146556, JMSDestination=topic://AgentLogin} , BodyType:com.yht.activemq.ibatis.Event , Body:com.yht.activemq.ibatis.ev...@1eee3fb com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3018) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4564) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) at $Proxy27.rollback(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:68) at $Proxy27.rollback(Unknown Source) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72) at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:87) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:734) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:153) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:835) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:410) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at org.apache.camel.component.ibatis.IBatisProducer.process(IBatisProducer.java:52) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:61) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:887) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:822) at java.lang.Thread.run(Thread.java:619) ERROR DeadLetterChannel - Failed delivery for exchangeId: ID-localhost.localdomain/40083-1231601383004/0-4. On delivery attempt: 0 caught: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3018) at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4564) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke(SimpleDataSource.java:958) at $Proxy27.rollback(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.ibatis.common.jdbc.logging.ConnectionLogProxy.invoke(ConnectionLogProxy.java:68) at $Proxy27.rollback(Unknown Source) at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.rollback(JdbcTransaction.java:72) at com.ibatis.sqlmap.engine.transaction.TransactionManager.end(TransactionManager.java:87) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(SqlMapExecutorDelegate.java:734) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMapSessionImpl.java:176) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapClientImpl.java:153) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransaction(SqlMapExecutorDelegate.java:835) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:410) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at org.apache.camel.component.ibatis.IBatisProducer.process(IBatisProducer.java:52) at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:61) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172) at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93) at org.apache.camel.processor.Pipeline.process(Pipeline.java:115) at org.apache.camel.processor.Pipeline.process(Pipeline.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:50) at org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:79) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:84) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:72) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:887) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:822) at java.lang.Thread.run(Thread.java:619) DEBUG DefaultExceptionPolicyStrategy - Finding best suited exception policy for thrown exception com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException DEBUG DefaultExceptionPolicyStrategy - No candidate found to be used as exception policy DEBUG RedeliveryPolicy - Sleeping for: 1000 millis until attempting redelivery INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> to(ibatis:agentPark) , Pattern:InOnly , Properties:{CamelCauseException=com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.} , Headers:{JMSCorrelationID=null, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSExpiration=0, org.apache.camel.RedeliveryCounter=1, JMSDeliveryMode=1, JMSPriority=0, JMSTimestamp=1231602146556, JMSReplyTo=null, JMSDestination=topic://AgentLogin, JMSXGroupID=null, JMSType=null, JMSRedelivered=false, org.apache.camel.Redelivered=true} , BodyType:com.yht.activemq.ibatis.Event , Body:com.yht.activemq.ibatis.ev...@1eee3fb DEBUG SimpleDataSource - Created connection 3927400. DEBUG Connection - {conn-100020} Connection DEBUG Connection - {conn-100020} Preparing Statement: insert into agent_park_status ( agent_id, uuid, host, time) Select agent_id, ?,?, ? from agent where sip_user = ? DEBUG PreparedStatement - {pstm-100021} Executing Statement: insert into agent_park_status ( agent_id, uuid, host, time) Select agent_id, ?,?, ? from agent where sip_user = ? DEBUG PreparedStatement - {pstm-100021} Parameters: [fa29ddaf-c4c6-4b7b-b075-747bbea48d55, 192.168.1.101, 2009-01-10 23:32:58, 1000] DEBUG PreparedStatement - {pstm-100021} Types: [java.lang.String, java.lang.String, java.lang.String, java.lang.String] DEBUG SimpleDataSource - Returned connection 3927400 to pool. INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> to(ibatis:agentLogin) , Pattern:InOnly , Properties:{CamelCauseException=com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.} , Headers:{JMSCorrelationID=null, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSExpiration=0, org.apache.camel.RedeliveryCounter=1, JMSDeliveryMode=1, JMSPriority=0, JMSTimestamp=1231602146556, JMSReplyTo=null, JMSDestination=topic://AgentLogin, JMSXGroupID=null, JMSType=null, JMSRedelivered=false, org.apache.camel.Redelivered=true} , BodyType:com.yht.activemq.ibatis.Event , Body:com.yht.activemq.ibatis.ev...@1eee3fb DEBUG SimpleDataSource - Checked out connection 3927400 from pool. DEBUG Connection - {conn-100022} Connection DEBUG Connection - {conn-100022} Preparing Statement: insert into agent_log ( agent_id,login_time, channel_uuid) select agent_id , ?,? from agent where sip_user = ? DEBUG PreparedStatement - {pstm-100023} Executing Statement: insert into agent_log ( agent_id,login_time, channel_uuid) select agent_id , ?,? from agent where sip_user = ? DEBUG PreparedStatement - {pstm-100023} Parameters: [2009-01-10 23:32:58, fa29ddaf-c4c6-4b7b-b075-747bbea48d55, 1000] DEBUG PreparedStatement - {pstm-100023} Types: [java.lang.String, java.lang.String, java.lang.String] DEBUG SimpleDataSource - Returned connection 3927400 to pool. INFO TraceInterceptor - ID-localhost.localdomain/40083-1231601383004/2-4 -> to(bean:agentMatcher) , Pattern:InOnly , Properties:{CamelCauseException=com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.} , Headers:{JMSCorrelationID=null, JMSMessageID=ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, JMSExpiration=0, org.apache.camel.RedeliveryCounter=1, JMSDeliveryMode=1, JMSPriority=0, JMSTimestamp=1231602146556, JMSReplyTo=null, JMSDestination=topic://AgentLogin, JMSXGroupID=null, JMSType=null, JMSRedelivered=false, org.apache.camel.Redelivered=true} , BodyType:com.yht.activemq.ibatis.Event , Body:com.yht.activemq.ibatis.ev...@1eee3fb init connection time=1231602147623 get property driver name=com.mysql.jdbc.Driver conn string =jdbc:mysql:// 192.168.1.105/app?useUnicode=true&characterEncoding=gb2312&useServerPrepStmts=false after get connection close connection time=1231602147634 DEBUG EndpointMessageListener - Cannot send reply message as there is no replyDestination for: JmsMessage: ActiveMQTextMessage {commandId = 4, responseRequired = false, messageId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1:2, originalDestination = null, originalTransactionId = null, producerId = ID:localhost.localdomain-38968-1231601378803-9:4:-1:1, destination = topic://AgentLogin, transactionId = null, expiration = 0, timestamp = 1231602146556, arrival = 0, brokerInTime = 1231602146556, brokerOutTime = 1231602146556, correlationId = null, replyTo = null, persistent = false, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 0, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = <document><event><event-name>CUSTOM</event-name><action-name>consumer_start</action-name><uuid>fa29ddaf-c4c6-4b7b-b075-747bbea48d55</uuid><host>192.168.1.101</host><time>2009-01-10 23:32:58</time><caller-id>1000</caller-id><dest>0</dest><inbound></inbound><other-leg-uuid></other-leg-uuid><agent-sip-id>1000</agent-sip-id></event></document> } Thanks in advance for all your help. Woody