Hello,

I use a Netty endPoint to forward messages to a client. These messages come
from an another Netty endPoint.

After several forwarded messages, an error occurs on every forwarded
message:

DEBUG 2012-08-06 15:30:06,482 [New I/O  worker #27]
org.apache.camel.component.netty.handlers.ClientChannelHandler - Closing
channel as an exception was thrown from Netty
java.lang.IllegalStateException: Queue full
        at java.util.AbstractQueue.add(AbstractQueue.java:71)
        at 
java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:209)
        at
org.apache.camel.impl.DefaultServicePool.release(DefaultServicePool.java:96)
        at org.apache.camel.impl.ProducerCache$1.done(ProducerCache.java:304)
        at
org.apache.camel.processor.SendProcessor$2$1.done(SendProcessor.java:125)
        at
org.apache.camel.component.netty.handlers.ClientChannelHandler.messageReceived(ClientChannelHandler.java:162)
        at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
        at
org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:423)
        at
org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:538)
        at
org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437)
        at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at 
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
        at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
        at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
        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:662)
DEBUG 2012-08-06 15:30:06,482 [New I/O  worker #27]
org.apache.camel.processor.DefaultErrorHandler - Failed delivery for
(MessageId: ID-ERIS-50013-1344256595721-0-5651 on ExchangeId:
ID-ERIS-50013-1344256595721-0-5645). On delivery attempt: 0 caught:
java.lang.IllegalStateException: Queue full

It seems that this error occurs also here:
http://camel.465427.n5.nabble.com/Redelivery-failure-td5713347.html

Here is a snippet of the context:
<camel:camelContext id="celloIQContext"
xmlns="http://camel.apache.org/schema/spring";>
                <jmxAgent id="agent" createConnector="true"
mbeanObjectDomainName="com.marketip.drivexpert"/>
                
                <camel:route id="celloIQin" >
                        <camel:from
uri="netty:tcp://localhost:6520?sync=true&amp;encoders=#celloIQEncoder&amp;decoders=#celloIQDecoder"
/>
                        
                <camel:threads poolSize="10" >
                        <camel:to uri="vm:ackMessage" />
                </camel:threads>
                </camel:route>
                
                <camel:route id="ackFlow">
                        <camel:from uri="vm:ackMessage" />
                        <camel:transform>
                        <method ref="bytesToIcomingMessage" method="process"/>
                </camel:transform>
                <camel:process ref="ackReportComponent"/>
                        <camel:threads poolSize="10" >
                                <camel:to uri="vm:forward"/>
                        </camel:threads>
                </camel:route>
                
                <camel:route>
                        <camel:from uri="vm:forward"/>
                        <camel:to uri="bean:forwardComponent"/>
                        <camel:multicast>
                                <camel:choice>
                                        <camel:when>
                                                
<camel:simple>${property[POINTER_FORWARD]} == true</camel:simple>
                                                <camel:to
uri="netty:tcp://[address]:[port]?sync=false&amp;encoders=#celloIQForwardEncoder&amp;decoders=#celloIQDecoder"
/>
                                        </camel:when>
                                </camel:choice>
                                <camel:to uri="vm:saveMessage"/>
                        </camel:multicast>
                </camel:route>
                
                <camel:route id="saveFlow">
                        <camel:from uri="vm:saveMessage"/>
                        <camel:to uri="bean:saveMessageComponent"/>
                </camel:route>
                
        </camel:camelContext>

What is wrong in my Camel Context?
Is it a bug in Camel?

I have upgraded Camel from 2.9.2 to 2.10.0, the error remains.

Thank you for help.

Regards.

Suray Philippe




--
View this message in context: 
http://camel.465427.n5.nabble.com/Error-in-DefaultServicePool-on-Netty-Producer-Queue-is-full-tp5716882.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to