You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by sapunce <n....@gmail.com> on 2010/02/05 14:01:18 UTC

BindException while parallel send/receive msgs on ActiveMQ 5.3

Hello, 

I've got several BindExceptions few seconds after I start a test with 20
parallel users. Every user send/receive 20 messages and creates connection,
session, sender/receiver for every message.

java.lang.RuntimeException: javax.jms.JMSException: Could not connect to
broker URL: tcp://localhost:61616. Reason: java.net.BindException: Address
already in use: connect
	at
org.my.tests.jms.performace.SimpleServlet.sendMessages(SimpleServlet.java:154)
	at
org.my.tests.jms.performace.SimpleServlet.testQueue(SimpleServlet.java:125)
	at org.my.tests.jms.performace.SimpleServlet.doGet(SimpleServlet.java:59)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)
Caused by: javax.jms.JMSException: Could not connect to broker URL:
tcp://localhost:61616. Reason: java.net.BindException: Address already in
use: connect
	at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
	at
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:283)
	at
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:227)
	at
org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:175)
	at
org.my.tests.jms.performace.SimpleServlet.sendMessages(SimpleServlet.java:142)
	... 17 more
Caused by: java.net.BindException: Address already in use: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:519)
	at
org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.java:435)
	at
org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:401)
	at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
	at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
	at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
	at
org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:72)
	at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
	at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
	... 20 more
	at
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:263)


Any ideas?

Regards, 
Nace
-- 
View this message in context: http://old.nabble.com/BindException-while-parallel-send-receive-msgs-on-ActiveMQ-5.3-tp27467442p27467442.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.


Re: BindException while parallel send/receive msgs on ActiveMQ 5.3

Posted by sapunce <n....@gmail.com>.
Hello Hiram,

Thank you for the fast reply.
Yes, pooling is one solution of the problem. 
But is there any known limitation of ActiveMQ for the number of open
connections?

If the problem is a number of open connections limitation, maybe the
exception message 
should be more descriptive... (this is only my opinion :) )

Is there a way to check whether this is a problem of too many open
connections or something else?

Regards, 
Nace


Hiram Chirino wrote:
> 
> try pooling your connections.  JMS performs best when you use long
> lived connections.
> -- 
> Regards,
> Hiram
> 
> Blog: http://hiramchirino.com
> 
> Open Source SOA
> http://fusesource.com/
> 
> 

-- 
View this message in context: http://old.nabble.com/BindException-while-parallel-send-receive-msgs-on-ActiveMQ-5.3-tp27467442p27472581.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.


Re: BindException while parallel send/receive msgs on ActiveMQ 5.3

Posted by Hiram Chirino <hi...@hiramchirino.com>.
try pooling your connections.  JMS performs best when you use long
lived connections.

On Fri, Feb 5, 2010 at 8:01 AM, sapunce <n....@gmail.com> wrote:
>
> Hello,
>
> I've got several BindExceptions few seconds after I start a test with 20
> parallel users. Every user send/receive 20 messages and creates connection,
> session, sender/receiver for every message.
>
> java.lang.RuntimeException: javax.jms.JMSException: Could not connect to
> broker URL: tcp://localhost:61616. Reason: java.net.BindException: Address
> already in use: connect
>        at
> org.my.tests.jms.performace.SimpleServlet.sendMessages(SimpleServlet.java:154)
>        at
> org.my.tests.jms.performace.SimpleServlet.testQueue(SimpleServlet.java:125)
>        at org.my.tests.jms.performace.SimpleServlet.doGet(SimpleServlet.java:59)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>        at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.jms.JMSException: Could not connect to broker URL:
> tcp://localhost:61616. Reason: java.net.BindException: Address already in
> use: connect
>        at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
>        at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:283)
>        at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:227)
>        at
> org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:175)
>        at
> org.my.tests.jms.performace.SimpleServlet.sendMessages(SimpleServlet.java:142)
>        ... 17 more
> Caused by: java.net.BindException: Address already in use: connect
>        at java.net.PlainSocketImpl.socketConnect(Native Method)
>        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
>        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
>        at java.net.Socket.connect(Socket.java:519)
>        at
> org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.java:435)
>        at
> org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:401)
>        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
>        at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
>        at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
>        at
> org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:72)
>        at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
>        at
> org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57)
>        ... 20 more
>        at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:263)
>
>
> Any ideas?
>
> Regards,
> Nace
> --
> View this message in context: http://old.nabble.com/BindException-while-parallel-send-receive-msgs-on-ActiveMQ-5.3-tp27467442p27467442.html
> Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
>
>



-- 
Regards,
Hiram

Blog: http://hiramchirino.com

Open Source SOA
http://fusesource.com/