Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-22 Thread Frank Ertl
Hi Preben, a real snip would be really useful indeed. Still I'm not shure how this is going to work, taking into account that the last backoffintervall will be 12 hours. Regards, Frank -- View this message in context: http://camel.465427.n5.nabble.com/How-to-avoid-blocking-threads-in-JmsCo

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-21 Thread Preben.Asmussen
Hi Frank We are using AQ too so i know some of the challenges. In some case we use a mix of broker redelivery and camel exception handler with backoff. I can't remember it from my the top of my head but here is some sudocode -> from("oracleaq:myqueue?concurrentConsumers=20") transacted onexcep

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-21 Thread Frank Ertl
Hi Preben, yeah, redelivery is no problem creating the queue, exponential backoff is... You can have a workaroung using propagation but this leads to logic distribution as I mentioned in my answer to Claus above. Unfortunately the exponential backoff is definitely required. Perhaps we should move

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-21 Thread Frank Ertl
Hi Claus, thanks for the info, even if that's not what I hoped for In fact it's not so easy to do this things with OracleAQ, furthermore it leeds to distributing logic between application and database which should be avoided IMHO. By the way I already configured asyncConsumer=true My JmsCompone

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-21 Thread Preben.Asmussen
Hi As Claus said you should favor using broker redelivery when using jms. You can do that on OracleAQ when creating the queue/topic with a specifik redelivery delay. Backoff is not supported afair. But look at the Oracle docs. There is a catch though. Message ordering is not guaranteed during re

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-20 Thread Claus Ibsen
Hi Oh to not block on the jms consumer you need to configure it to asyncConsumer=true. Then when the error handler does schedule a async redelivery, the consumer thread is not blocked, and can work on the next message. But again long lasting transactions and redeliveries is likely better if the b

Re: How to avoid blocking threads in JmsComponent with Oracle AQ

2015-03-20 Thread Claus Ibsen
Hi You should favor using the brokers redelivery settings instead of Camel. Then you dont have blocked threads, or long running transactions. Using Camel is better for short term redeliveries. OracleAQ from such a big player must surely have some way of configuring redelivery. Apache ActiveMQ do