[ 
https://issues.apache.org/jira/browse/AMQ-2981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dejan Bosanac reopened AMQ-2981:
--------------------------------


After a bit more investigation, it seems that this is regression of 
https://issues.apache.org/jira/browse/AMQ-2849

> Connecting to broker using discovery protocol fails
> ---------------------------------------------------
>
>                 Key: AMQ-2981
>                 URL: https://issues.apache.org/jira/browse/AMQ-2981
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 5.4.0, 5.4.1
>         Environment: embedded activemq in tomcat
> spring jms for connection pooling and connections
>            Reporter: R Pankajakshan
>            Assignee: Dejan Bosanac
>
> steps to reproduce
> 1. have a broker running on a port say '12345' and group say 'test' using 
> activemq-core version 5.4.0 or 5.4.1
> 2.  use url 
> discovery:(multicast://default?group=test)?reconnectDelay=1000&maxReconnectAttempts=30&useExponentialBackOff=false
>  
> to connect to the broker
> 3. the following exception occurs
> Caused by: javax.jms.JMSException: Invalid connect parameters: 
> {reconnectDelay=1000, maxReconnectAttempts=30, useExponentialBackOff=false}
>       at 
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
>       at 
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1298)
>       at 
> org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1382)
>       at 
> org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:309)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at 
> org.springframework.jms.connection.SingleConnectionFactory$SharedConnectionInvocationHandler.invoke(SingleConnectionFactory.java:550)
>       at $Proxy34.createSession(Unknown Source)
>       at 
> org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196)
>       at 
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:457)
>       ... 38 more
> Caused by: java.io.IOException: Invalid connect parameters: 
> {reconnectDelay=1000, maxReconnectAttempts=30, useExponentialBackOff=false}
>       at 
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:45)
>       at 
> org.apache.activemq.transport.failover.FailoverTransport.oneway(FailoverTransport.java:594)
>       at 
> org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:85)
>       at 
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
>       at 
> org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:81)
>       at 
> org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:86)
>       at 
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1276)
>       ... 48 more
> Caused by: java.lang.IllegalArgumentException: Invalid connect parameters: 
> {reconnectDelay=1000, maxReconnectAttempts=30, useExponentialBackOff=false}
>       at 
> org.apache.activemq.transport.TransportFactory.doCompositeConnect(TransportFactory.java:159)
>       at 
> org.apache.activemq.transport.TransportFactory.compositeConnect(TransportFactory.java:93)
>       at 
> org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:844)
>       at 
> org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:135)
>       at 
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>       at 
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       at java.lang.Thread.run(Thread.java:619)
> 4. downgrading to amq 5.3.2 solves the problem
> NOTE: a new functionality has been added to 5.4.0 
> ref : http://activemq.apache.org/discovery-transport-reference.html
> Applying parameters to discovered transports
> From 5.4, transport parameters in the URI will also be applied to discovered 
> transports. Therefore, transport parameters may also include parameters for 
> the discovered transport. For example, adding the connectionTimeout parameter 
> to the URI will apply the parameter to every discovered TCP transport, even 
> though this parameter is not a Discovery transport option.
> I think the above change has caused the problem

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to