Hi Bengt,

The sjms does not include yet a unit test for concurrentConsumers. I
suspect that here the different consumers are not using a different thread
but the same created for the first JMS session.

Regards,



On Mon, Mar 17, 2014 at 8:39 AM, Bengt Rodehav <be...@rodehav.com> wrote:

> I've now tried just using consumerCount on the endpoint without using
> threads(). However, it doesn't make it multithreaded. Only one thread is
> started for the route.
>
> Any other ideas? Has someone used sjms with a multithreaded consumer?
>
> /Bengt
>
>
> 2014-03-14 17:42 GMT+01:00 Bengt Rodehav <be...@rodehav.com>:
>
> > Ok - thanks. I have tried it but only together with threads(). I didn't
> > realize that it might create threads on its own.
> >
> > /Bengt
> > Den 14 mar 2014 17:26 skrev "Claus Ibsen" <claus.ib...@gmail.com>:
> >
> > Hi
> >>
> >> I think you should use the consumerCount option on the endpoint instead
> >>
> >> On Fri, Mar 14, 2014 at 5:10 PM, Bengt Rodehav <be...@rodehav.com>
> wrote:
> >> > I'm using Camel 2.12.3 and the sjms component for communicating with
> >> > Weblogic JMS.
> >> >
> >> > Everything works fine when I use a single thread. However, to increase
> >> > throughput I want multiple threads to read messages from the queue.
> >> >
> >> > I've done this by using the "threads()" method:
> >> >
> >> >   from(sjms:...).threads(10)....
> >> >
> >> > However I get an exception as follows:
> >> >
> >> > java.lang.Exception: Unable to complete sending the message: Only one
> >> > thread may use a JMS Session at a time.:Only one thread may use a JMS
> >> > Session at a time.
> >> > at
> >> >
> >>
> org.apache.camel.component.sjms.producer.InOnlyProducer.sendMessage(InOnlyProducer.java:135)[129:org.apache.camel.camel-sjms:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.component.sjms.SjmsProducer.process(SjmsProducer.java:180)[129:org.apache.camel.camel-sjms:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:574)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:507)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:216)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Splitter.process(Splitter.java:98)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:111)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline.access$100(Pipeline.java:43)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.Pipeline$1.done(Pipeline.java:136)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:83)[106:org.apache.camel.camel-core:2.12.3]
> >> > at
> >> >
> >>
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_32]
> >> > at
> >> >
> >>
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_32]
> >> > at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_32]
> >> > at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_32]
> >> > at
> >> >
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_32]
> >> > at java.lang.Thread.run(Thread.java:662)[:1.6.0_32]
> >> >
> >> > What exactly does this mean and how can I consume messages via sjms
> >> using
> >> > multiple threads?
> >> >
> >> > /Bengt
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> Email: cib...@redhat.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> Make your Camel applications look hawt, try: http://hawt.io
> >>
> >
>



-- 
Charles Moulliard
Apache Committer / Architect @RedHat
Twitter : @cmoulliard | Blog :  http://cmoulliard.github.io

Reply via email to