Hi,
comment inline... Le 17/01/2017 à 21:21, Antonio Rodriges a écrit : > Hi, > > I have a very specific question. I am not sure whether this question > is Mina-related or more Azure-related but it has to do with the > networking. > > I hope to get an advice where to dig into. > > I have used this Mina application quite long, now I am trying to > migrate it into the cloud. > I deploy Linux virtual machines in Azure (each has public IP but does > this really matter?). > They connect (using Mina) to a machine outside Azure that also has its > own public IP. Usual thing: > > SocketConnector connector = new NioSocketConnector(numberOfConnectors); > ConnectFuture connectFuture = connector.connect(new > InetSocketAddress(remoteHost, remotePort)); > connectFuture.awaitUninterruptibly(connectTimeout); > > That Mina machine outside the Azure also runs Mina. Let's call it > server machine. > It accepts connections like this: > > NioSocketAcceptor acceptor = new NioSocketAcceptor(acceptor_threads); > org.apache.mina.core.buffer.IoBuffer.setUseDirectBuffer(false); > acceptor.getSessionConfig().setTcpNoDelay(true); > acceptor.setReuseAddress(true); > acceptor.getSessionConfig().setSendBufferSize(buffer_size); > acceptor.getSessionConfig().setMinReadBufferSize(64000); > acceptor.getSessionConfig().setReceiveBufferSize(buffer_size); > acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, iddle_time); > acceptor.getFilterChain().addLast("codec", new > ProtocolCodecFilter(CodecFactory.getInstance())); > acceptor.setDefaultLocalAddress(new InetSocketAddress(port)); > > When Azure applications connect to server machine, server saves > IoSession session > to asynchronously push messages back in future like this: > session.write(message); > > > This worked inside a local network (without Azure), but in current > deployment server sends message > > 2017-01-17/15:45:19.823/GMT-00:00 [nioEventLoopGroup-3-3] [...] DEBUG > Sending message to /13.94.143.139:41790 > > and an Azure machine does not receive anything. Moreover, after a > while I get this exception on server machine: > > 2017-01-17/16:01:11.419/GMT-00:00 [NioProcessor-4] [...] ERROR > Exception in IOHandlerConnection timed out > java.io.IOException: Connection timed out > at sun.nio.ch.FileDispatcherImpl.read0(Native Method) > at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) > at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) > at sun.nio.ch.IOUtil.read(IOUtil.java:197) > at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) > at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280) > at > org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68) > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > > 2017-01-17/16:01:11.424/GMT-00:00 [NioProcessor-3] [...] DEBUG sessionClosed > > I wonder what reasons may prevent traveling messages from server to > client machines? (the first message from clients to server did come) > I hope that above information may contain a clue. It's clearly a rooting issue. MINA is certainly not the cause of your issue. -- Emmanuel Lecharny Symas.com directory.apache.org