You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by jandeclercq <ja...@alsic.be> on 2011/06/17 15:48:21 UTC

Informix as persistence adapter is not working

Hey, 


I'm using informix as persistence adapter. But it is not working.  80% of
the messages dissapear in the void.


My activemq.xml configuration:



 &lt;persistenceAdapter&gt;
      &lt;jdbcPersistenceAdapter
dataDirectory="/opt/hms/HMSBroker/data/jdbcDB"
dataSource="#informix-ds"/&gt;
&lt;/persistenceAdapter&gt;




&lt;bean id="informix-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"&gt;
    &lt;property name="driverClassName"
value="com.informix.jdbc.IfxDriver"/&gt;
    &lt;property name="url"
value="jdbc:informix-sqli://10.1.1.9:9088/activemq2:informixserver=HMSCDBTEST;user=informix;password=informix"/&gt;
    &lt;property name="username" value="informix"/&gt;
    &lt;property name="password" value="informix"/&gt;
    &lt;property name="maxActive" value="200"/&gt;
    &lt;property name="poolPreparedStatements" value="true"/&gt;
&lt;/bean&gt;


This is the error that appears in the activemq.log:




2011-06-17 11:45:01,715 | WARN  |
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | Error while closing
connection: Could not insert new row into the table. |
 java.sql.BatchUpdateException: Could not insert new row into the table.
	at
com.informix.jdbc.IfxPreparedStatement.executeBatch(IfxPreparedStatement.java:3641)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:103)
	at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:81)
	at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:129)
	at
org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:109)
	at
org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:285)
	at
org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:134)
	at org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:682)
	at org.apache.activemq.broker.region.Queue.send(Queue.java:653)
	at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:365)
	at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:523)
	at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
	at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
	at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:227)
	at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
	at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:458)
	at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
	at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
	at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
	at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
	at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
	at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
	at java.lang.Thread.run(Thread.java:736)
2011-06-17 11:45:01,716 | ERROR | hms.broker.BrokerMessageListener | Message
could not be send! |
 javax.jms.JMSException: Could not insert new row into the table.
	at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
	at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1295)
	at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1760)
	at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
	at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
	at
hms.broker.BrokerMessageListener.onMessage(BrokerMessageListener.java:491)
	at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230)
	at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
	at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
	at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
	at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
	at java.lang.Thread.run(Thread.java:736)
Caused by: 
java.io.IOException: Could not insert new row into the table.
	at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
	at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:138)
	at
org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:109)
	at
org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:285)
	at
org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:134)
	at org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:682)
	at org.apache.activemq.broker.region.Queue.send(Queue.java:653)
	at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:365)
	at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:523)
	at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
	at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
	at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:227)
	at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
	at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:458)
	at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
	at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
	at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
	at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
	... 5 more
Caused by: 
java.sql.BatchUpdateException: Could not insert new row into the table.
	at
com.informix.jdbc.IfxPreparedStatement.executeBatch(IfxPreparedStatement.java:3641)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
	at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:103)
	at
org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:81)
	at
org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:129)
	... 23 more


When I'm executing an insert in the tables via a transaction  manually, it
works.

Is there anybody who has an idea where to start looking for a solution?


Thanks in advance.



Jan Declercq

--
View this message in context: http://activemq.2283324.n4.nabble.com/Informix-as-persistence-adapter-is-not-working-tp3605446p3605446.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Informix as persistence adapter is not working

Posted by Dejan Bosanac <de...@nighttale.net>.
You shoudl start by looking at the log and seeing if Informix adapter is
properly recognized. If it is not, that could be a problem.



Regards
-- 
Dejan Bosanac - http://twitter.com/dejanb
-----------------
The experts in open source integration and messaging - http://fusesource.com
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Fri, Jun 17, 2011 at 3:48 PM, jandeclercq <ja...@alsic.be> wrote:

> Hey,
>
>
> I'm using informix as persistence adapter. But it is not working.  80% of
> the messages dissapear in the void.
>
>
> My activemq.xml configuration:
>
>
>
>  &lt;persistenceAdapter&gt;
>      &lt;jdbcPersistenceAdapter
> dataDirectory="/opt/hms/HMSBroker/data/jdbcDB"
> dataSource="#informix-ds"/&gt;
> &lt;/persistenceAdapter&gt;
>
>
>
>
> &lt;bean id="informix-ds" class="org.apache.commons.dbcp.BasicDataSource"
> destroy-method="close"&gt;
>    &lt;property name="driverClassName"
> value="com.informix.jdbc.IfxDriver"/&gt;
>    &lt;property name="url"
> value="jdbc:informix-sqli://
> 10.1.1.9:9088/activemq2:informixserver=HMSCDBTEST;user=informix;password=informix
> "/&gt;
>    &lt;property name="username" value="informix"/&gt;
>    &lt;property name="password" value="informix"/&gt;
>    &lt;property name="maxActive" value="200"/&gt;
>    &lt;property name="poolPreparedStatements" value="true"/&gt;
> &lt;/bean&gt;
>
>
> This is the error that appears in the activemq.log:
>
>
>
>
> 2011-06-17 11:45:01,715 | WARN  |
> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | Error while closing
> connection: Could not insert new row into the table. |
>  java.sql.BatchUpdateException: Could not insert new row into the table.
>        at
>
> com.informix.jdbc.IfxPreparedStatement.executeBatch(IfxPreparedStatement.java:3641)
>        at
>
> org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
>        at
>
> org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:103)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:81)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:129)
>        at
>
> org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:109)
>        at
>
> org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:285)
>        at
>
> org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:134)
>        at
> org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:682)
>        at org.apache.activemq.broker.region.Queue.send(Queue.java:653)
>        at
>
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:365)
>        at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:523)
>        at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>        at
>
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>        at
>
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:227)
>        at
>
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>        at
>
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:458)
>        at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>        at
>
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
>        at
>
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
>        at
>
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>        at
>
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
>        at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
>        at
>
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
>        at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>        at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
>        at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
>        at java.lang.Thread.run(Thread.java:736)
> 2011-06-17 11:45:01,716 | ERROR | hms.broker.BrokerMessageListener |
> Message
> could not be send! |
>  javax.jms.JMSException: Could not insert new row into the table.
>        at
>
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>        at
>
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1295)
>        at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1760)
>        at
>
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
>        at
>
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
>        at
> hms.broker.BrokerMessageListener.onMessage(BrokerMessageListener.java:491)
>        at
>
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230)
>        at
>
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
>        at
>
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
>        at
>
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
>        at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
>        at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
>        at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
>        at java.lang.Thread.run(Thread.java:736)
> Caused by:
> java.io.IOException: Could not insert new row into the table.
>        at
>
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:138)
>        at
>
> org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:109)
>        at
>
> org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:285)
>        at
>
> org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:134)
>        at
> org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:682)
>        at org.apache.activemq.broker.region.Queue.send(Queue.java:653)
>        at
>
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:365)
>        at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:523)
>        at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>        at
>
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>        at
>
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:227)
>        at
>
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>        at
>
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:458)
>        at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>        at
>
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:306)
>        at
>
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
>        at
>
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
>        at
>
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
>        at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
>        ... 5 more
> Caused by:
> java.sql.BatchUpdateException: Could not insert new row into the table.
>        at
>
> com.informix.jdbc.IfxPreparedStatement.executeBatch(IfxPreparedStatement.java:3641)
>        at
>
> org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
>        at
>
> org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:103)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.executeBatch(TransactionContext.java:81)
>        at
>
> org.apache.activemq.store.jdbc.TransactionContext.close(TransactionContext.java:129)
>        ... 23 more
>
>
> When I'm executing an insert in the tables via a transaction  manually, it
> works.
>
> Is there anybody who has an idea where to start looking for a solution?
>
>
> Thanks in advance.
>
>
>
> Jan Declercq
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Informix-as-persistence-adapter-is-not-working-tp3605446p3605446.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.