You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Willem Jiang <wi...@gmail.com> on 2015/09/14 12:31:12 UTC

Re: camel:netty udpConnectionlessSending option and "Too many open files"

How did you use the camel:netty component?
Camel always try to reuse the cached channel object if it is possible, can you share some detail of your camel route.

--  
Willem Jiang


Blog: http://willemjiang.blogspot.com (English)  
http://jnn.iteye.com (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem



On August 17, 2015 at 9:51:02 PM, SteveR (srichardson@vonage.com) wrote:
> I'm using Camel 2.15.2 and the *camel-netty* component and I have a Camel
> route that mirrors UDP datagrams to a remote server via *netty:udp*.
>  
> I saw that *camel-netty *supports the *udpConnectionlessSending *option, and
> I thought it would be a good idea as it will not result in failures when the
> remote server is not listening.
>  
> However, when I set *udpConnectionlessSendin=true* and then send lots of UDP
> packets into the route, my Linux box quickly exhausts file descriptors and I
> get the below java exception.
>  
> Any thoughts appreciated,
> Thanks, Steve
>  
>  
> *org.jboss.netty.channel.ChannelException: Failed to open a
> DatagramChannel.*
> at
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.openNonBlockingChannel(NioDatagramChannel.java:94)  
> ~[netty-3.9.6.Final.jar:?]
> at
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.(NioDatagramChannel.java:58)  
> ~[netty-3.9.6.Final.jar:?]
> at
> org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory.newChannel(NioDatagramChannelFactory.java:207)  
> ~[netty-3.9.6.Final.jar:?]
> at
> org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory.newChannel(NioDatagramChannelFactory.java:79)  
> ~[netty-3.9.6.Final.jar:?]
> at
> org.jboss.netty.bootstrap.ConnectionlessBootstrap.bind(ConnectionlessBootstrap.java:184)  
> ~[netty-3.9.6.Final.jar:?]
> at
> org.apache.camel.component.netty.NettyProducer.openConnection(NettyProducer.java:433)  
> ~[camel-netty-2.15.2.jar:2.15.2]
> at
> org.apache.camel.component.netty.NettyProducer$NettyProducerPoolableObjectFactory.makeObject(NettyProducer.java:543)  
> ~[camel-netty-2.15.2.jar:2.15.2]
> at
> org.apache.camel.component.netty.NettyProducer$NettyProducerPoolableObjectFactory.makeObject(NettyProducer.java:539)  
> ~[camel-netty-2.15.2.jar:2.15.2]
> at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)  
> ~[commons-pool-1.6.jar:1.6]
> at
> org.apache.camel.component.netty.NettyProducer.process(NettyProducer.java:232)  
> ~[camel-netty-2.15.2.jar:2.15.2]
> at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)  
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)  
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)  
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)  
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.processor.WireTapProcessor$1.call(WireTapProcessor.java:119)  
> [camel-core-2.15.2.jar:2.15.2]
> at
> org.apache.camel.processor.WireTapProcessor$1.call(WireTapProcessor.java:113)  
> [camel-core-2.15.2.jar:2.15.2]
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_75]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
> [?:1.7.0_75]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
> [?:1.7.0_75]
> at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]
> *Caused by: java.net.SocketException: Too many open files*
> at sun.nio.ch.Net.socket0(Native Method) ~[?:1.7.0_75]
> at sun.nio.ch.Net.socket(Net.java:423) ~[?:1.7.0_75]
> at sun.nio.ch.DatagramChannelImpl.(DatagramChannelImpl.java:115)
> ~[?:1.7.0_75]
> at
> sun.nio.ch.SelectorProviderImpl.openDatagramChannel(SelectorProviderImpl.java:42)  
> ~[?:1.7.0_75]
> at java.nio.channels.DatagramChannel.open(DatagramChannel.java:146)
> ~[?:1.7.0_75]
> at
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.openNonBlockingChannel(NioDatagramChannel.java:70)  
> ~[netty-3.9.6.Final.jar:?]
> ... 19 more
>  
>  
>  
> --
> View this message in context: http://camel.465427.n5.nabble.com/camel-netty-udpConnectionlessSending-option-and-Too-many-open-files-tp5770768.html  
> Sent from the Camel - Users mailing list archive at Nabble.com.
>  


Re: camel:netty udpConnectionlessSending option and "Too many open files"

Posted by Thomas Termin <th...@gmail.com>.
You should use camel-netty4 with camel version 2.15.2 or higher. We had the
same problem but it is solved with 2.15.2. We send really lots of udp
packets and the file handles are stable. Before it took les then 30sec to
get into this issue.

Thomas

On Mon, Sep 14, 2015 at 12:31 PM, Willem Jiang <wi...@gmail.com>
wrote:

> How did you use the camel:netty component?
> Camel always try to reuse the cached channel object if it is possible, can
> you share some detail of your camel route.
>
> --
> Willem Jiang
>
>
> Blog: http://willemjiang.blogspot.com (English)
> http://jnn.iteye.com (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
> On August 17, 2015 at 9:51:02 PM, SteveR (srichardson@vonage.com) wrote:
> > I'm using Camel 2.15.2 and the *camel-netty* component and I have a Camel
> > route that mirrors UDP datagrams to a remote server via *netty:udp*.
> >
> > I saw that *camel-netty *supports the *udpConnectionlessSending *option,
> and
> > I thought it would be a good idea as it will not result in failures when
> the
> > remote server is not listening.
> >
> > However, when I set *udpConnectionlessSendin=true* and then send lots of
> UDP
> > packets into the route, my Linux box quickly exhausts file descriptors
> and I
> > get the below java exception.
> >
> > Any thoughts appreciated,
> > Thanks, Steve
> >
> >
> > *org.jboss.netty.channel.ChannelException: Failed to open a
> > DatagramChannel.*
> > at
> >
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.openNonBlockingChannel(NioDatagramChannel.java:94)
> > ~[netty-3.9.6.Final.jar:?]
> > at
> >
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.(NioDatagramChannel.java:58)
> > ~[netty-3.9.6.Final.jar:?]
> > at
> >
> org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory.newChannel(NioDatagramChannelFactory.java:207)
> > ~[netty-3.9.6.Final.jar:?]
> > at
> >
> org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory.newChannel(NioDatagramChannelFactory.java:79)
> > ~[netty-3.9.6.Final.jar:?]
> > at
> >
> org.jboss.netty.bootstrap.ConnectionlessBootstrap.bind(ConnectionlessBootstrap.java:184)
> > ~[netty-3.9.6.Final.jar:?]
> > at
> >
> org.apache.camel.component.netty.NettyProducer.openConnection(NettyProducer.java:433)
> > ~[camel-netty-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.component.netty.NettyProducer$NettyProducerPoolableObjectFactory.makeObject(NettyProducer.java:543)
> > ~[camel-netty-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.component.netty.NettyProducer$NettyProducerPoolableObjectFactory.makeObject(NettyProducer.java:539)
> > ~[camel-netty-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
> > ~[commons-pool-1.6.jar:1.6]
> > at
> >
> org.apache.camel.component.netty.NettyProducer.process(NettyProducer.java:232)
> > ~[camel-netty-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
> > [camel-core-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
> > [camel-core-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
> > [camel-core-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
> > [camel-core-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.processor.WireTapProcessor$1.call(WireTapProcessor.java:119)
> > [camel-core-2.15.2.jar:2.15.2]
> > at
> >
> org.apache.camel.processor.WireTapProcessor$1.call(WireTapProcessor.java:113)
> > [camel-core-2.15.2.jar:2.15.2]
> > at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_75]
> > at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> > [?:1.7.0_75]
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > [?:1.7.0_75]
> > at java.lang.Thread.run(Thread.java:745) [?:1.7.0_75]
> > *Caused by: java.net.SocketException: Too many open files*
> > at sun.nio.ch.Net.socket0(Native Method) ~[?:1.7.0_75]
> > at sun.nio.ch.Net.socket(Net.java:423) ~[?:1.7.0_75]
> > at sun.nio.ch.DatagramChannelImpl.(DatagramChannelImpl.java:115)
> > ~[?:1.7.0_75]
> > at
> >
> sun.nio.ch.SelectorProviderImpl.openDatagramChannel(SelectorProviderImpl.java:42)
> > ~[?:1.7.0_75]
> > at java.nio.channels.DatagramChannel.open(DatagramChannel.java:146)
> > ~[?:1.7.0_75]
> > at
> >
> org.jboss.netty.channel.socket.nio.NioDatagramChannel.openNonBlockingChannel(NioDatagramChannel.java:70)
> > ~[netty-3.9.6.Final.jar:?]
> > ... 19 more
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/camel-netty-udpConnectionlessSending-option-and-Too-many-open-files-tp5770768.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>