Somehow the system ends up using a port that hasn't had a chance to get cleaned up from the previous run. When you add a delay, the system has a chance to clean it up.
It looks like the sample MDP is using the JmsTemplate. So you may want to take a look at the JmsTemplate gotchas. http://activemq.apache.org/jmstemplate-gotchas.html If you're sending and receiving 1M messages, you're not going to want to open and close a heavyweight connection object for each and every operation. Joe http://www.ttmsolutions.com - get a free ActiveMQ user guide hugberry wrote: > > I am running a Spring Message Driven POJO example from > http://blog.springsource.com/2006/08/11/message-driven-pojos. The example > runs fine without problem until I change the client source code to send > and receive 1 million messages, after thousands of runs, I am getting a > bindException on the client. When I enable debug message on the broker, > the problem never shows up (Slowing it down seems to hide the issue). > The client, the broker, and the server are on the same Window XP machine, > and before the test I did confirm that none of the port that AMQ required > are used. > > The error after 4031 iterations: > > : > : > : > auto4027: Confirmed #4127 > auto4028: Confirmed #4128 > auto4029: Confirmed #4129 > auto4030: Not Confirmed > auto4031: Confirmed #4131 > Exception in thread "main" > org.springframework.jms.UncategorizedJmsException: Un > categorized exception occured during JMS processing; nested exception is > javax.j > ms.JMSException: Could not connect to broker URL: tcp://localhost:61616. > Reason: > java.net.BindException: Address already in use: connect; nested exception > is ja > va.net.BindException: Address already in use: connect > at > org.springframework.jms.support.JmsUtils.convertJmsAccessException(Jm > sUtils.java:292) > at > org.springframework.jms.support.JmsAccessor.convertJmsAccessException > (JmsAccessor.java:168) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474 > ) > at > org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:539) > at > org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.j > ava:617) > at > org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.j > ava:609) > at blog.mdp.RegistrationConsole.main(RegistrationConsole.java:32) > Caused by: javax.jms.JMSException: Could not connect to broker URL: > tcp://localh > ost:61616. Reason: java.net.BindException: Address already in use: connect > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo > rt.java:35) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnectio > n(ActiveMQConnectionFactory.java:278) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnectio > n(ActiveMQConnectionFactory.java:222) > at > org.apache.activemq.ActiveMQConnectionFactory.createConnection(Active > MQConnectionFactory.java:170) > at > org.springframework.jms.support.JmsAccessor.createConnection(JmsAcces > sor.java:184) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:461 > ) > ... 4 more > Caused by: java.net.BindException: Address already in use: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(Unknown Source) > at java.net.PlainSocketImpl.connectToAddress(Unknown Source) > at java.net.PlainSocketImpl.connect(Unknown Source) > at java.net.SocksSocketImpl.connect(Unknown Source) > at java.net.Socket.connect(Unknown Source) > at > org.apache.activemq.transport.tcp.TcpTransport.connect(TcpTransport.j > ava:414) > at > org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.j > ava:380) > at > org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:50) > > at > org.apache.activemq.transport.TransportFilter.start(TransportFilter.j > ava:57) > at > org.apache.activemq.transport.TransportFilter.start(TransportFilter.j > ava:57) > at > org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNe > gotiator.java:72) > at > org.apache.activemq.transport.TransportFilter.start(TransportFilter.j > ava:57) > at > org.apache.activemq.transport.TransportFilter.start(TransportFilter.j > ava:57) > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnectio > n(ActiveMQConnectionFactory.java:258) > ... 8 more > > I am kind of hoping to show ActiveMQ to my colleage is ready for > Production use. Anyone have an idea of troubleshooting this? > > Thanks. > > -- View this message in context: http://www.nabble.com/BindException-in-ActiveMQ-in-high-volumn-of-messages-tp20310367p20311220.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.
