Yes, it is:

https://github.com/apache/camel/blob/camel-2.22.x/camel-core/src/main/docs/seda-component.adoc

--
Andrea Cosentino 
----------------------------------
Apache Camel PMC Chair
Apache Karaf Committer
Apache Servicemix PMC Member
Email: [email protected]
Twitter: @oscerd2
Github: oscerd






On Tuesday, September 11, 2018, 9:55:35 AM GMT+2, Dennis Holunder 
<[email protected]> wrote: 





Looks like there is new option offerTimeout which causes to ignore
blockWhenFull:

SedaProducer.java

log.trace("Adding Exchange to queue: {}", target);
if (blockWhenFull && offerTimeout == 0) {
    try {
        queue.put(target);
    } catch (InterruptedException e) {
        // ignore
        log.debug("Put interrupted, are we stopping? {}", isStopping()
|| isStopped());
    }
} else if (blockWhenFull && offerTimeout > 0) {
    try {
        offerTime = queue.offer(target, offerTimeout, TimeUnit.MILLISECONDS);
        if (!offerTime) {
            throw new IllegalStateException("Fails to insert element
into queue, "
                    + "after timeout of"  + offerTimeout + "milliseconds");
        }
    } catch (InterruptedException e) {
        // ignore
        log.debug("Offer interrupted, are we stopping? {}",
isStopping() || isStopped());
    }
} else {
    queue.add(target);
}

So if offerTimeout < 0  blockWhenFull is ignored. offerTimeout is not
documented?
Am Di., 11. Sep. 2018 um 09:15 Uhr schrieb Claus Ibsen-2 [via Camel]
<[email protected]>:
>
> Hi
>
> Can you double check your endpoint configurations as it sounds like
> that producer do not have blockWhenFull=true enabled.
>
> And what version of Camel do you use?
> On Tue, Sep 11, 2018 at 8:55 AM Dennis Holunder <[hidden email]> wrote:

>
> >
> > Hi,
> >
> > I have multiple seda queues in my route, all with blockWennFull=true
> > and limited size. In logs I can find the IllegalStateException:
> >
> > 08:33:04 [Camel (camel-1) thread #56 - seda://worker] ERROR deadletter
> > Exchange[ExchangePattern: InOnly, BodyType: com.Model,
> > CaughtExceptionType: java.lang.IllegalStateException,
> > CaughtExceptionMessage: Queue full, StackTrace:
> > java.lang.IllegalStateException: Queue full
> > at java.util.AbstractQueue.add(AbstractQueue.java:98)
> > at 
> > org.apache.camel.component.seda.SedaProducer.addToQueue(SedaProducer.java:261)
> > at 
> > org.apache.camel.component.seda.SedaProducer.process(SedaProducer.java:166)
> >
> > I'd expect that if queue is full nothing happens and all threads would
> > be just waiting. So why the exception is logged? Does seda component
> > internally ignore it or do I have to handle it in some way in my
> > route?
> >
> > Dan
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion 
> below:
> http://camel.465427.n5.nabble.com/seda-logs-Queue-full-Exception-tp5823076p5823078.html
> To unsubscribe from Camel, click here.
> NAML

Reply via email to