could you try using the C3P0 [1] connection pooling instead of the
default commons logging pooling.  Some folks have reported better luck
using it.

Just add the c3p0 jar to the lib dir and add spring bean similar to
the following (this a mysql example)

  <bean id="mysql-ds"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost/activemq"/>
    <property name="user" value="user"/>
    <property name="password" value="password"/>
    <property name="minPoolSize" value="6"/>
    <property name="maxPoolSize" value="18"/>
    <property name="acquireIncrement" value="3"/>
    <property name="idleConnectionTestPeriod" value="60"/>
  </bean>

[1] http://sourceforge.net/projects/c3p0


On Sun, May 11, 2008 at 10:57 PM, cauchy <[EMAIL PROTECTED]> wrote:
>
> Hi everybody!
> I used Oracle 9 as persistence storage with out journal.After ran the
> ProducerAndConsumerTool.java in exmple pakage of ActiveMQ 5.0 for a while
> ,the Exception occured:
> Caught: javax.jms.JMSException: ORA-00020: maximum number of processes (150)
> exceeded
>
> javax.jms.JMSException: ORA-00020: maximum number of processes (150)
> exceeded
>
>        at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>        at
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1178)
>        at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1640)
>        at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:226)
>        at
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:240)
>        at test3.ProducerTool.sendLoop(ProducerTool.java:143)
>        at test3.ProducerTool.run(ProducerTool.java:108)
>        at test3.ProducerAndConsumerTool.main(ProducerAndConsumerTool.java:52)
> Caused by: java.io.IOException: ORA-00020: maximum number of processes (150)
> exceeded
>
>        at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
>        at
> org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:61)
>        at
> org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doAddMessage(DefaultJDBCAdapter.java:172)
>        at
> org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:69)
>        at
> org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:229)
>        at
> org.apache.activemq.store.memory.MemoryTransactionStore$2.addMessage(MemoryTransactionStore.java:129)
>        at 
> org.apache.activemq.broker.region.Topic.doMessageSend(Topic.java:400)
>        at org.apache.activemq.broker.region.Topic.send(Topic.java:371)
>        at
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:328)
>        at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:402)
>        at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
>        at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>        at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
>        at
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>        at
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:434)
>        at
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:623)
>        at
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:281)
>        at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:178)
>        at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>        at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
>        at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:138)
>        at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>        at
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:185)
>        at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:172)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.sql.SQLException: ORA-00020: maximum number of processes
> (150) exceeded
>
>        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>        at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
>        at oracle.jdbc.ttc7.O3log.receive1st(O3log.java:408)
>        at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:260)
>        at 
> oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:365)
>        at
> oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:547)
>        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:347)
>        at
> org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
>        at
> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
>        at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
>        at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
>        at
> org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:544)
>        at
> org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:54)
>        ... 23 more
>
> So what's this prolem and how to fix it?
>
> --
> View this message in context: 
> http://www.nabble.com/ORA-00020%3A-maximum-number-of-processes-%28150%29-exceeded-tp17180724s2354p17180724.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>



-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Open Source SOA
http://open.iona.com

Reply via email to