Hi all, I am testing the ActiveMQ version 4.1.1 with persistence store configured for Oracle 9.2.0.6. The test is a simple loop for sending 10.000 messages to one queue. I didn't use journal. The messages are stored directly to Oracle database.
Below the message error is the configuration used. I am getting this error: Exceção de E/S: The Network Adapter could not establish the connection at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:46) at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1181) at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1551) at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:465) at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356) at br.com.ebiz.sender.Sender.send(Sender.java:59) at br.com.ebiz.sender.Sender.main(Sender.java:26) Caused by: java.io.IOException: Exceção de E/S: The Network Adapter could not establish the connection at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:43) at org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:62) at org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doAddMessage(DefaultJDBCAdapter.java:165) at org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:69) at org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:224) at org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:117) at org.apache.activemq.broker.region.Queue.sendMessage(Queue.java:333) at org.apache.activemq.broker.region.Queue.send(Queue.java:326) at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292) at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:382) at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193) at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126) at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98) at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136) at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:498) at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185) at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) at java.lang.Thread.run(Thread.java:595) Caused by: java.sql.SQLException: Exceção de E/S: The Network Adapter could not establish the connection at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334) at oracle.jdbc.ttc7.TTC7Protocol.handleIOException(TTC7Protocol.java:3668) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:353) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:371) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:551) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:351) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:169) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:105) at org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:55) ... 22 more Configuration: The adapter parameter i put later, but didn´t make effect. <persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="./activemq-data" dataSource="#meu-oracle-ds" adapter="#oracle-adapter"/> </persistenceAdapter> <transportConnectors> <transportConnector name="tcp" uri="tcp://localhost:61616"/> </transportConnectors> <bean id="oracle-adapter" class="org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter"> <property name="batchStatments" value="true"/> </bean> <bean id="meu-oracle-ds" class="oracle.jdbc.pool.OracleDataSource" destroy-method="close"> <property name="URL" value="jdbc:oracle:thin:@IP:1521:SID"/> <property name="user" value="USER****"/> <property name="password" value="******"/> </bean> I tried with DBCP too. But got the same error <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@222222:1521:xxxx"/> <property name="username" value="****"/> <property name="password" value="****"/> <property name="poolPreparedStatements" value="true"/> </bean> the code: Context jndiContext = ContextHelperFactory.createContextHelper().getMQContext(); ConnectionFactory connectionFactory = (ConnectionFactory)jndiContext.lookup("MyQueueConnectionFactory"); Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = (Destination)jndiContext.lookup("INBOX"); MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(DeliveryMode.PERSISTENT); for (int i=0; i<qtdMessages; i++) { TextMessage jmsMessage = session.createTextMessage(); jmsMessage.setText("xxxx " + i); producer.send(jmsMessage); if (i%100 == 0) { System.out.print("."); } } producer.close(); session.close(); connection.close(); I changed the mq broker to other version (5.0-20071025.034820-35), but with no success. I read a message in this list about this error; but no reply with solution. (thread: Re: Oracle XE) (date: Wed, 05 Jul 2006 13:53:25 GMT).