[ 
https://issues.apache.org/activemq/browse/AMQ-2771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=60025#action_60025
 ] 

Gary Tully commented on AMQ-2771:
---------------------------------

on the setUseLocalHost, that can be set from the uri via a parameter, it will 
be set via introspection/reflection 
{code}tcp://hostname:54663?useLocalHost=true{code}

> Side effect from AMQ-2094, server listens on host name address, client 
> connects to localhost with the same URI
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2771
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2771
>             Project: ActiveMQ
>          Issue Type: Wish
>    Affects Versions: 5.3.0, 5.3.1, 5.3.2
>            Reporter: Przemek Bruski
>         Attachments: BrokerServiceResolveHostTest.java
>
>
> TcpTransport.java contains the following code:
> {code}
>     protected String resolveHostName(String host) throws UnknownHostException 
> {
>         String localName = InetAddress.getLocalHost().getHostName();
>         if (localName != null && isUseLocalHost()) {
>             if (localName.equals(host)) {
>                 return "localhost";
>             }
>         }
>         return host;
>     }
> {code}
> TcpTransportServer.java contains the following code:
> {code}
>         InetAddress addr = InetAddress.getByName(host);
>         try {
>             this.serverSocket = 
> serverSocketFactory.createServerSocket(bind.getPort(), backlog, addr);
> {code}
> /etc/hosts looks like this:
> {code}
> 127.0.0.1       localhost.localdomain   localhost
> someip       myhostname.mydomain myhostname
> {code}
> Now, if I start server with uri: myhostname.mydomain, the server will listen 
> on someip but the client started on the same host with the same uri will try 
> connect to localhost (and fail).
> I know that useLocalHost can be used to avoid it, but silently connecting to 
> localhost is counterintuitive and does not sound like a valid default 
> behaviour (according to documentation, using localhost instead of the host 
> name is a workaround, the workaround is now effectively default behaviour and 
> breaks valid setups that used to work with 5.2).
> This worked fine on 5.2, since the server bound to all interfaces - but 
> fixing this was obviously the right thing to do.
> Questions:
> 1. Can the default behaviour be changed to one that would work on majority of 
> systems?
> 2. Is the workaround really needed? Maybe it's the local network settings 
> that should be corrected?
> 3. The debug messages are misleading and probably should be changed:
> [ActiveMQ Task] [FailoverTransport:604] urlList 
> connectionList:[tcp://hostname:54663?wireFormat.maxInactivityDuration=300000]
> [ActiveMQ Task] [FailoverTransport:723] Attempting connect to: 
> tcp://hostname:54663?wireFormat.maxInactivityDuration=300000
> [ActiveMQ Task] [FailoverTransport:764] Connect fail to: 
> tcp://hostname:54663?wireFormat.maxInactivityDuration=300000, reason: 
> java.net.ConnectException: Connection refused
> In fact, it was the connection to localhost:54663 that was refused.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to