Yes, my application logic can use it to cycle through all these IPs. Mina takes an instance of InetSocketAddress class representing one IP address. I will have to implement multiple connection attempts by creating InetSocketAddress for each of these IP.
I am not sure if MINA should handle this internally. On Wed, Dec 19, 2012 at 12:24 PM, Jean-Yves Linet <jy.li...@gmail.com>wrote: > Sorry I made a mistake. DNS protocol resolve domain name with several IP. > In java a call to InetAddress.getAllByName( "www.google.com" ) send you > back all the IP address : > www.google.com/173.194.34.18 > www.google.com/173.194.34.16 > www.google.com/173.194.34.19 > www.google.com/173.194.34.17 > www.google.com/173.194.34.20 > You can't use this method with Mina ? > > > 2012/12/19 Suhas Sutar <suhassu...@gmail.com> > > > In my simple test, I have below code: > > SocketAddress socketAddress = new InetSocketAddress(hostAddressString, > > hostPortNumber); > > > > Java documentation mentions that this class performs DNS lookups and > > maintains the DNS cache. I turned the cache off using Java system > > property "networkaddress.cache.ttl=0". > > > > When this line is executed, Java does a DNS lookup and DNS returns two > > IPs. Please see attached network capture. > > > > The InetSocketAddress class provides only one method to get the IP > > address back and to work with MINA, an instance of this class is > provided. > > > > Now the fact that one IP went down is not reflected in DNS so even though > > you force DNS lookup, it will return two IPs. The InetSocketAddress. > > getAddress() returns one of these IPs and there is no guarantee that it > > would not give me the IP which went down. > > > > Thanks > > Suhas > > > > > > > > On Wed, Dec 19, 2012 at 11:03 AM, Jean-Yves Linet <jy.li...@gmail.com > >wrote: > > > >> Well I don't know how it could be possible for Java to do a DNS lookup > and > >> receive more than one IP. Is this kind of request included in DNS > protocol > >> ?? If not it is not a Java limitation, it is just not possible to do. > >> In your case you could insert two domain name in your client app or you > >> could add your own load balancing protocol. > >> BTW did you try to lookup your DNS server with a non java application > and > >> see what you get ? > >> > >> > >> > >> > >> 2012/12/19 Suhas Sutar <suhassu...@gmail.com> > >> > >> > After little more testing, I have concluded that it is not MINA issue. > >> To > >> > open a connection to target server, I use below code with MINA: > >> > > >> > ====================================== > >> > ExecutorService ioExecutor = Executors.newCachedThreadPool(); > >> > IoConnector ioConnector = new SocketConnector(Runtime.getRuntime() > >> > .availableProcessors() > >> > + 1, ioExecutor); > >> > SocketAddress socketAddress = new InetSocketAddress(hostAddressString, > >> > hostPortNumber); > >> > ConnectFuture future = ioConnector.connect(socketAddress); > >> > ====================================== > >> > > >> > The InetSocketAddress class internally does a DNS lookup and > maintains a > >> > cache of the IP addresses. But it seems that there is no way to > retrieve > >> > all the IP addresses associated with a host name. The > >> > method InetSocketAddress.getAddress() returns only one IP address and > >> even > >> > though one of the IPs is unavailable, it would not cycle through the > >> next > >> > one. I even turned off the DNS caching using Java system property > >> > "networkaddress.cache.ttl=0". > >> > > >> > Again, it is not caching issue in my opinion. Even though I want to > >> handle > >> > it in the application code, the Java APIs does not provide me a way to > >> know > >> > that there are multiple IP addresses for a given host. > >> > > >> > I am not sure how application developers are handling this situation. > >> > > >> > > >> > > >> > On Wed, Dec 19, 2012 at 6:14 AM, Emmanuel Lécharny < > elecha...@gmail.com > >> > >wrote: > >> > > >> > > Le 12/19/12 11:15 AM, Jean-Yves Linet a écrit : > >> > > > Hi, > >> > > > Well your problem can have multiple explanations : > >> > > > Do you remove the down host IP from the DNS list ? Otherwise DNS > >> server > >> > > > will continue to use it. > >> > > > DNS resolution can be cached somewhere. (see networkaddress.cache > in > >> > Java > >> > > > properties) > >> > > > I doubt that this could be a MINA issue. > >> > > I was about to do the exact same answer. > >> > > > >> > > > >> > > > >> > > -- > >> > > Regards, > >> > > Cordialement, > >> > > Emmanuel Lécharny > >> > > www.iktek.com > >> > > > >> > > > >> > > >> > > > > >