camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-4227) Seda component doesn't block on its blocking queue
Date Thu, 14 Jul 2011 06:05:59 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-4227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13065067#comment-13065067
] 

Claus Ibsen commented on CAMEL-4227:
------------------------------------

This is working as designed. The limit on the queue prevent clients from submitting new tasks,
as otherwise you could eat up all the memory.

The client gets an exception if the queue is full. This is by design.
The client should not block, as it may block forever, if there is no consumers on the queue.

Instead we may consider adding an option you can enable on the seda component to control if
its okay for the client to block if queue is full.

> Seda component doesn't block on its blocking queue
> --------------------------------------------------
>
>                 Key: CAMEL-4227
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4227
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.7.2
>            Reporter: Michael Allman
>             Fix For: 2.9.0
>
>
> While one can put an upper bound on the size of the blocking queue that the seda component
uses to queue messages, the seda component throws an exception when it reaches that limit
instead of blocking. My understanding of a blocking queue is that the upper bound lets you
put an upper bound on the queue and block when it becomes full. The fact that the seda component
throws an exception makes the upper bound useless in practice, unless there is supposed to
be some kind of easy workaround. We have not found one, and it looks like we will be rolling
our own async component to compensate. :(
> The basic issue is that SedaProducer calls BlockingQueue.add() instead of BlockingQueue.put().

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message