Thanks for the great hint. I am able to resolve the issues and getting a
significant gain in performance by doing this:
<!-- >bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean -->
<bean id="connectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
</property>
</bean>
Joe Fernandez wrote:
>
> 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-tp20310367p20312238.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.