You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by cauchy <fu...@yahoo.com.cn> on 2008/05/12 04:57:27 UTC

ORA-00020: maximum number of processes (150) exceeded

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.


Re: ORA-00020: maximum number of processes (150) exceeded

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
this might not be related to the pool, but the fact that statements and 
resultsets are not closed.

the error comes directly from Oracle,

Filip

Hiram Chirino wrote:
> 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 <fu...@yahoo.com.cn> 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.
>>
>>
>>     
>
>
>
>   


Re: ORA-00020: maximum number of processes (150) exceeded

Posted by Hiram Chirino <hi...@hiramchirino.com>.
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 <fu...@yahoo.com.cn> 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