You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Bradford Fisher <br...@bradfordfisher.com> on 2018/12/13 01:27:50 UTC

camel-websocket configure maxThreads

I am having trouble determining where or how to configure the
camel-websocket maxThreads settings.

I'm running Karaf 4.2.1 and have installed features camel-blueprint and
camel-websocket.

I'm attempting to create a new websocket endpoint with the following
blueprint:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route>
            <from uri="websocket://0.0.0.0:8080/echo" />
            <to uri="websocket://0.0.0.0:8080/echo" />
        </route>
    </camelContext>
</blueprint>


It seems that the initial value of (1 + 2 * cores === 3) on a single core
virtual machine is too low to start this single endpoint.

Does anyone know how to increase the maxThreads count?

Thanks in advance!

- Brad

Re: camel-websocket configure maxThreads

Posted by Bradford Fisher <br...@bradfordfisher.com>.
Will do. Thank you for your time!

On Thu, Dec 13, 2018, 6:14 AM Claus Ibsen <cl...@gmail.com> wrote:

> Hi
>
> Try to ask on Jetty to see if there is maybe some limitations there. I
> am not sure.
>
> On Thu, Dec 13, 2018 at 12:12 PM Bradford Fisher
> <br...@bradfordfisher.com> wrote:
> >
> > I considered the possibility that maxThreads may have been set too high
> and
> > tried setting it to the value 2. The same error was generated. This is
> also
> > the same error that was being generated before I figured out how to treat
> > the minimum and maximum thread values.
> >
> > On Thu, Dec 13, 2018, 6:02 AM Claus Ibsen <cl...@gmail.com> wrote:
> >
> > > Hi
> > >
> > > Does the error mean that you have a too high value for max? eg maybe 4
> > > is not possible with 1 core only.
> > >
> > > On Thu, Dec 13, 2018 at 10:26 AM Bradford Fisher
> > > <br...@bradfordfisher.com> wrote:
> > > >
> > > > Hey Claus,
> > > >
> > > > Thanks for responding so quickly! I did actually stumble upon the
> > > Component
> > > > configuration when reading through the Camel Spring documentation.
> > > >
> > > > I've verified that the xml Component configuration works when
> running in
> > > a
> > > > virtual machine (virtualbox-5.2.22 / centos-7) configured with more
> than
> > > 1
> > > > core. However, the Component configuration appears to be ignored when
> > > > running in the same virtual machine configured with exactly 1 core.
> I'm
> > > not
> > > > sure if this is a bug or if I'm still doing something incorrectly.
> > > >
> > > > For reference, this is the exact blueprint I'm using. I'll include
> the
> > > > exact error (seen on a machine with exactly 1 core) below.
> > > >
> > > > ############################################
> > > > # Blueprint
> > > > ############################################
> > > >
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > > >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> > > >         <route>
> > > >             <from uri="direct:echo" />
> > > >             <to uri="websocket:0.0.0.0:8081/echo" />
> > > >         </route>
> > > >     </camelContext>
> > > >     <bean id="WebsocketComponent"
> > > > class="org.apache.camel.component.websocket.WebsocketComponent">
> > > >         <property name="minThreads" value="1" />
> > > >         <property name="maxThreads" value="4" />
> > > >     </bean>
> > > > </blueprint>
> > > >
> > > > ############################################
> > > > # Error Log
> > > > ############################################
> > > >
> > > > org.eclipse.jetty.util.MultiException: Multiple exceptions
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:124)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.server.Server.doStart(Server.java:409) ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > > ~[?:?]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > > [?:?]
> > > >
> > > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > > >
> > > > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > > > threads: required=3 < max=3 for
> > > >
> > >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > > {s=0/1,p=0}]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.io
> > > .SelectorManager.doStart(SelectorManager.java:251)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > > ~[?:?]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > > [?:?]
> > > >
> > > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > > >
> > > > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > > > threads: required=4 < max=3 for
> > > >
> > >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > > {s=0/1,p=0}]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:278)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > > ~[?:?]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > > ~[68:org.apache.camel.camel-core:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at
> > > >
> > >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > > [47:org.apache.aries.blueprint.core:1.9.0]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > > [?:?]
> > > >
> > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > > [?:?]
> > > >
> > > > at
> > > >
> > >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > > [?:?]
> > > >
> > > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > > >
> > > > Caused by: java.lang.IllegalStateException: Insufficient configured
> > > > threads: required=3 < max=3 for
> > > >
> > >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > > {s=0/1,p=0}]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.io
> > > .SelectorManager.doStart(SelectorManager.java:251)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > > ~[?:?]
> > > >
> > > > at
> > > >
> > >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > ~[?:?]
> > > >
> > > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > > >
> > > > ... 31 more
> > > >
> > > >
> > > > On Thu, Dec 13, 2018, 2:45 AM Claus Ibsen <cl...@gmail.com>
> wrote:
> > > >
> > > > > Hi
> > > > >
> > > > > You can configure them on the component level, see the table in the
> > > docs
> > > > >
> > > > >
> > >
> https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc
> > > > >
> > > > > So you can define a <bean id="websocket"
> > > > > class="....WebSocketComponent"> where you setup these options
> > > > > On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
> > > > > <br...@bradfordfisher.com> wrote:
> > > > > >
> > > > > > I am having trouble determining where or how to configure the
> > > > > > camel-websocket maxThreads settings.
> > > > > >
> > > > > > I'm running Karaf 4.2.1 and have installed features
> camel-blueprint
> > > and
> > > > > > camel-websocket.
> > > > > >
> > > > > > I'm attempting to create a new websocket endpoint with the
> following
> > > > > > blueprint:
> > > > > >
> > > > > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > > > > >     <camelContext xmlns="
> http://camel.apache.org/schema/blueprint">
> > > > > >         <route>
> > > > > >             <from uri="websocket://0.0.0.0:8080/echo" />
> > > > > >             <to uri="websocket://0.0.0.0:8080/echo" />
> > > > > >         </route>
> > > > > >     </camelContext>
> > > > > > </blueprint>
> > > > > >
> > > > > >
> > > > > > It seems that the initial value of (1 + 2 * cores === 3) on a
> single
> > > core
> > > > > > virtual machine is too low to start this single endpoint.
> > > > > >
> > > > > > Does anyone know how to increase the maxThreads count?
> > > > > >
> > > > > > Thanks in advance!
> > > > > >
> > > > > > - Brad
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Claus Ibsen
> > > > > -----------------
> > > > > http://davsclaus.com @davsclaus
> > > > > Camel in Action 2: https://www.manning.com/ibsen2
> > > > >
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> > >
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: camel-websocket configure maxThreads

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Try to ask on Jetty to see if there is maybe some limitations there. I
am not sure.

On Thu, Dec 13, 2018 at 12:12 PM Bradford Fisher
<br...@bradfordfisher.com> wrote:
>
> I considered the possibility that maxThreads may have been set too high and
> tried setting it to the value 2. The same error was generated. This is also
> the same error that was being generated before I figured out how to treat
> the minimum and maximum thread values.
>
> On Thu, Dec 13, 2018, 6:02 AM Claus Ibsen <cl...@gmail.com> wrote:
>
> > Hi
> >
> > Does the error mean that you have a too high value for max? eg maybe 4
> > is not possible with 1 core only.
> >
> > On Thu, Dec 13, 2018 at 10:26 AM Bradford Fisher
> > <br...@bradfordfisher.com> wrote:
> > >
> > > Hey Claus,
> > >
> > > Thanks for responding so quickly! I did actually stumble upon the
> > Component
> > > configuration when reading through the Camel Spring documentation.
> > >
> > > I've verified that the xml Component configuration works when running in
> > a
> > > virtual machine (virtualbox-5.2.22 / centos-7) configured with more than
> > 1
> > > core. However, the Component configuration appears to be ignored when
> > > running in the same virtual machine configured with exactly 1 core. I'm
> > not
> > > sure if this is a bug or if I'm still doing something incorrectly.
> > >
> > > For reference, this is the exact blueprint I'm using. I'll include the
> > > exact error (seen on a machine with exactly 1 core) below.
> > >
> > > ############################################
> > > # Blueprint
> > > ############################################
> > >
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> > >         <route>
> > >             <from uri="direct:echo" />
> > >             <to uri="websocket:0.0.0.0:8081/echo" />
> > >         </route>
> > >     </camelContext>
> > >     <bean id="WebsocketComponent"
> > > class="org.apache.camel.component.websocket.WebsocketComponent">
> > >         <property name="minThreads" value="1" />
> > >         <property name="maxThreads" value="4" />
> > >     </bean>
> > > </blueprint>
> > >
> > > ############################################
> > > # Error Log
> > > ############################################
> > >
> > > org.eclipse.jetty.util.MultiException: Multiple exceptions
> > >
> > > at
> > >
> > org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:124)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.server.Server.doStart(Server.java:409) ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > ~[?:?]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > [?:?]
> > >
> > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > >
> > > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > > threads: required=3 < max=3 for
> > >
> > QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > {s=0/1,p=0}]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.io
> > .SelectorManager.doStart(SelectorManager.java:251)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > ~[?:?]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > [?:?]
> > >
> > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > >
> > > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > > threads: required=4 < max=3 for
> > >
> > QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > {s=0/1,p=0}]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:278)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > > ~[?:?]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > > ~[68:org.apache.camel.camel-core:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > > [66:org.apache.camel.camel-blueprint:2.23.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at
> > >
> > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > > [47:org.apache.aries.blueprint.core:1.9.0]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [?:?]
> > >
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > [?:?]
> > >
> > > at
> > >
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > [?:?]
> > >
> > > at java.lang.Thread.run(Thread.java:748) [?:?]
> > >
> > > Caused by: java.lang.IllegalStateException: Insufficient configured
> > > threads: required=3 < max=3 for
> > >
> > QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > > {s=0/1,p=0}]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.io
> > .SelectorManager.doStart(SelectorManager.java:251)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > > ~[?:?]
> > >
> > > at
> > >
> > org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > ~[?:?]
> > >
> > > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> > >
> > > ... 31 more
> > >
> > >
> > > On Thu, Dec 13, 2018, 2:45 AM Claus Ibsen <cl...@gmail.com> wrote:
> > >
> > > > Hi
> > > >
> > > > You can configure them on the component level, see the table in the
> > docs
> > > >
> > > >
> > https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc
> > > >
> > > > So you can define a <bean id="websocket"
> > > > class="....WebSocketComponent"> where you setup these options
> > > > On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
> > > > <br...@bradfordfisher.com> wrote:
> > > > >
> > > > > I am having trouble determining where or how to configure the
> > > > > camel-websocket maxThreads settings.
> > > > >
> > > > > I'm running Karaf 4.2.1 and have installed features camel-blueprint
> > and
> > > > > camel-websocket.
> > > > >
> > > > > I'm attempting to create a new websocket endpoint with the following
> > > > > blueprint:
> > > > >
> > > > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > > > >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> > > > >         <route>
> > > > >             <from uri="websocket://0.0.0.0:8080/echo" />
> > > > >             <to uri="websocket://0.0.0.0:8080/echo" />
> > > > >         </route>
> > > > >     </camelContext>
> > > > > </blueprint>
> > > > >
> > > > >
> > > > > It seems that the initial value of (1 + 2 * cores === 3) on a single
> > core
> > > > > virtual machine is too low to start this single endpoint.
> > > > >
> > > > > Does anyone know how to increase the maxThreads count?
> > > > >
> > > > > Thanks in advance!
> > > > >
> > > > > - Brad
> > > >
> > > >
> > > >
> > > > --
> > > > Claus Ibsen
> > > > -----------------
> > > > http://davsclaus.com @davsclaus
> > > > Camel in Action 2: https://www.manning.com/ibsen2
> > > >
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: camel-websocket configure maxThreads

Posted by Bradford Fisher <br...@bradfordfisher.com>.
I considered the possibility that maxThreads may have been set too high and
tried setting it to the value 2. The same error was generated. This is also
the same error that was being generated before I figured out how to treat
the minimum and maximum thread values.

On Thu, Dec 13, 2018, 6:02 AM Claus Ibsen <cl...@gmail.com> wrote:

> Hi
>
> Does the error mean that you have a too high value for max? eg maybe 4
> is not possible with 1 core only.
>
> On Thu, Dec 13, 2018 at 10:26 AM Bradford Fisher
> <br...@bradfordfisher.com> wrote:
> >
> > Hey Claus,
> >
> > Thanks for responding so quickly! I did actually stumble upon the
> Component
> > configuration when reading through the Camel Spring documentation.
> >
> > I've verified that the xml Component configuration works when running in
> a
> > virtual machine (virtualbox-5.2.22 / centos-7) configured with more than
> 1
> > core. However, the Component configuration appears to be ignored when
> > running in the same virtual machine configured with exactly 1 core. I'm
> not
> > sure if this is a bug or if I'm still doing something incorrectly.
> >
> > For reference, this is the exact blueprint I'm using. I'll include the
> > exact error (seen on a machine with exactly 1 core) below.
> >
> > ############################################
> > # Blueprint
> > ############################################
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> >         <route>
> >             <from uri="direct:echo" />
> >             <to uri="websocket:0.0.0.0:8081/echo" />
> >         </route>
> >     </camelContext>
> >     <bean id="WebsocketComponent"
> > class="org.apache.camel.component.websocket.WebsocketComponent">
> >         <property name="minThreads" value="1" />
> >         <property name="maxThreads" value="4" />
> >     </bean>
> > </blueprint>
> >
> > ############################################
> > # Error Log
> > ############################################
> >
> > org.eclipse.jetty.util.MultiException: Multiple exceptions
> >
> > at
> >
> org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:124)
> > ~[?:?]
> >
> > at org.eclipse.jetty.server.Server.doStart(Server.java:409) ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > ~[?:?]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > [66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > [?:?]
> >
> > at java.lang.Thread.run(Thread.java:748) [?:?]
> >
> > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > threads: required=3 < max=3 for
> >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > {s=0/1,p=0}]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > ~[?:?]
> >
> > at org.eclipse.jetty.io
> .SelectorManager.doStart(SelectorManager.java:251)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > ~[?:?]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > [66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > [?:?]
> >
> > at java.lang.Thread.run(Thread.java:748) [?:?]
> >
> > Suppressed: java.lang.IllegalStateException: Insufficient configured
> > threads: required=4 < max=3 for
> >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > {s=0/1,p=0}]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:278)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> > ~[?:?]
> >
> > at
> >
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> > ~[?:?]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> > ~[68:org.apache.camel.camel-core:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> > ~[66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> > [66:org.apache.camel.camel-blueprint:2.23.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at
> >
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> >
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > [?:?]
> >
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > [?:?]
> >
> > at java.lang.Thread.run(Thread.java:748) [?:?]
> >
> > Caused by: java.lang.IllegalStateException: Insufficient configured
> > threads: required=3 < max=3 for
> >
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> > {s=0/1,p=0}]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> > ~[?:?]
> >
> > at org.eclipse.jetty.io
> .SelectorManager.doStart(SelectorManager.java:251)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> > ~[?:?]
> >
> > at
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > ~[?:?]
> >
> > at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
> >
> > ... 31 more
> >
> >
> > On Thu, Dec 13, 2018, 2:45 AM Claus Ibsen <cl...@gmail.com> wrote:
> >
> > > Hi
> > >
> > > You can configure them on the component level, see the table in the
> docs
> > >
> > >
> https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc
> > >
> > > So you can define a <bean id="websocket"
> > > class="....WebSocketComponent"> where you setup these options
> > > On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
> > > <br...@bradfordfisher.com> wrote:
> > > >
> > > > I am having trouble determining where or how to configure the
> > > > camel-websocket maxThreads settings.
> > > >
> > > > I'm running Karaf 4.2.1 and have installed features camel-blueprint
> and
> > > > camel-websocket.
> > > >
> > > > I'm attempting to create a new websocket endpoint with the following
> > > > blueprint:
> > > >
> > > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > > >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> > > >         <route>
> > > >             <from uri="websocket://0.0.0.0:8080/echo" />
> > > >             <to uri="websocket://0.0.0.0:8080/echo" />
> > > >         </route>
> > > >     </camelContext>
> > > > </blueprint>
> > > >
> > > >
> > > > It seems that the initial value of (1 + 2 * cores === 3) on a single
> core
> > > > virtual machine is too low to start this single endpoint.
> > > >
> > > > Does anyone know how to increase the maxThreads count?
> > > >
> > > > Thanks in advance!
> > > >
> > > > - Brad
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> > >
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: camel-websocket configure maxThreads

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Does the error mean that you have a too high value for max? eg maybe 4
is not possible with 1 core only.

On Thu, Dec 13, 2018 at 10:26 AM Bradford Fisher
<br...@bradfordfisher.com> wrote:
>
> Hey Claus,
>
> Thanks for responding so quickly! I did actually stumble upon the Component
> configuration when reading through the Camel Spring documentation.
>
> I've verified that the xml Component configuration works when running in a
> virtual machine (virtualbox-5.2.22 / centos-7) configured with more than 1
> core. However, the Component configuration appears to be ignored when
> running in the same virtual machine configured with exactly 1 core. I'm not
> sure if this is a bug or if I'm still doing something incorrectly.
>
> For reference, this is the exact blueprint I'm using. I'll include the
> exact error (seen on a machine with exactly 1 core) below.
>
> ############################################
> # Blueprint
> ############################################
>
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
>         <route>
>             <from uri="direct:echo" />
>             <to uri="websocket:0.0.0.0:8081/echo" />
>         </route>
>     </camelContext>
>     <bean id="WebsocketComponent"
> class="org.apache.camel.component.websocket.WebsocketComponent">
>         <property name="minThreads" value="1" />
>         <property name="maxThreads" value="4" />
>     </bean>
> </blueprint>
>
> ############################################
> # Error Log
> ############################################
>
> org.eclipse.jetty.util.MultiException: Multiple exceptions
>
> at
> org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:124)
> ~[?:?]
>
> at org.eclipse.jetty.server.Server.doStart(Server.java:409) ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> ~[?:?]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> [66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:?]
>
> at java.lang.Thread.run(Thread.java:748) [?:?]
>
> Suppressed: java.lang.IllegalStateException: Insufficient configured
> threads: required=3 < max=3 for
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> {s=0/1,p=0}]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> ~[?:?]
>
> at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:251)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> ~[?:?]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> [66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:?]
>
> at java.lang.Thread.run(Thread.java:748) [?:?]
>
> Suppressed: java.lang.IllegalStateException: Insufficient configured
> threads: required=4 < max=3 for
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> {s=0/1,p=0}]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:278)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
> ~[?:?]
>
> at
> org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
> ~[?:?]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
> ~[68:org.apache.camel.camel-core:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
> ~[66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
> [66:org.apache.camel.camel-blueprint:2.23.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at
> org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
> [47:org.apache.aries.blueprint.core:1.9.0]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [?:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> [?:?]
>
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:?]
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:?]
>
> at java.lang.Thread.run(Thread.java:748) [?:?]
>
> Caused by: java.lang.IllegalStateException: Insufficient configured
> threads: required=3 < max=3 for
> QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
> {s=0/1,p=0}]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
> ~[?:?]
>
> at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:251)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
> ~[?:?]
>
> at
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
> ~[?:?]
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> ~[?:?]
>
> at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]
>
> ... 31 more
>
>
> On Thu, Dec 13, 2018, 2:45 AM Claus Ibsen <cl...@gmail.com> wrote:
>
> > Hi
> >
> > You can configure them on the component level, see the table in the docs
> >
> > https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc
> >
> > So you can define a <bean id="websocket"
> > class="....WebSocketComponent"> where you setup these options
> > On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
> > <br...@bradfordfisher.com> wrote:
> > >
> > > I am having trouble determining where or how to configure the
> > > camel-websocket maxThreads settings.
> > >
> > > I'm running Karaf 4.2.1 and have installed features camel-blueprint and
> > > camel-websocket.
> > >
> > > I'm attempting to create a new websocket endpoint with the following
> > > blueprint:
> > >
> > > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> > >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> > >         <route>
> > >             <from uri="websocket://0.0.0.0:8080/echo" />
> > >             <to uri="websocket://0.0.0.0:8080/echo" />
> > >         </route>
> > >     </camelContext>
> > > </blueprint>
> > >
> > >
> > > It seems that the initial value of (1 + 2 * cores === 3) on a single core
> > > virtual machine is too low to start this single endpoint.
> > >
> > > Does anyone know how to increase the maxThreads count?
> > >
> > > Thanks in advance!
> > >
> > > - Brad
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Re: camel-websocket configure maxThreads

Posted by Bradford Fisher <br...@bradfordfisher.com>.
Hey Claus,

Thanks for responding so quickly! I did actually stumble upon the Component
configuration when reading through the Camel Spring documentation.

I've verified that the xml Component configuration works when running in a
virtual machine (virtualbox-5.2.22 / centos-7) configured with more than 1
core. However, the Component configuration appears to be ignored when
running in the same virtual machine configured with exactly 1 core. I'm not
sure if this is a bug or if I'm still doing something incorrectly.

For reference, this is the exact blueprint I'm using. I'll include the
exact error (seen on a machine with exactly 1 core) below.

############################################
# Blueprint
############################################

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route>
            <from uri="direct:echo" />
            <to uri="websocket:0.0.0.0:8081/echo" />
        </route>
    </camelContext>
    <bean id="WebsocketComponent"
class="org.apache.camel.component.websocket.WebsocketComponent">
        <property name="minThreads" value="1" />
        <property name="maxThreads" value="4" />
    </bean>
</blueprint>

############################################
# Error Log
############################################

org.eclipse.jetty.util.MultiException: Multiple exceptions

at
org.eclipse.jetty.util.MultiException.ifExceptionThrow(MultiException.java:124)
~[?:?]

at org.eclipse.jetty.server.Server.doStart(Server.java:409) ~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
~[?:?]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
[47:org.apache.aries.blueprint.core:1.9.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
[47:org.apache.aries.blueprint.core:1.9.0]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]

Suppressed: java.lang.IllegalStateException: Insufficient configured
threads: required=3 < max=3 for
QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
{s=0/1,p=0}]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
~[?:?]

at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:251)
~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
~[?:?]

at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
~[?:?]

at
org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
~[?:?]

at
org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
~[?:?]

at
org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
~[?:?]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
[47:org.apache.aries.blueprint.core:1.9.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
[47:org.apache.aries.blueprint.core:1.9.0]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]

Suppressed: java.lang.IllegalStateException: Insufficient configured
threads: required=4 < max=3 for
QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
{s=0/1,p=0}]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
~[?:?]

at
org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:278)
~[?:?]

at
org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
~[?:?]

at
org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketComponent.connect(WebsocketComponent.java:202)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketEndpoint.connect(WebsocketEndpoint.java:123)
~[?:?]

at
org.apache.camel.component.websocket.WebsocketProducer.doStart(WebsocketProducer.java:84)
~[?:?]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3867)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3646)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3489)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3248)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3267)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3244)
~[68:org.apache.camel.camel-core:2.23.0]

at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3160)
~[68:org.apache.camel.camel-core:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283)
~[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177)
[66:org.apache.camel.camel-blueprint:2.23.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
[47:org.apache.aries.blueprint.core:1.9.0]

at
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
[47:org.apache.aries.blueprint.core:1.9.0]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
[?:?]

at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:?]

at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: java.lang.IllegalStateException: Insufficient configured
threads: required=3 < max=3 for
QueuedThreadPool[CamelJettyWebSocketServer]@2a618a47{STARTED,1<=1<=3,i=1,q=0}[ReservedThreadExecutor@485685c4
{s=0/1,p=0}]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.check(ThreadPoolBudget.java:149)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseTo(ThreadPoolBudget.java:130)
~[?:?]

at
org.eclipse.jetty.util.thread.ThreadPoolBudget.leaseFrom(ThreadPoolBudget.java:175)
~[?:?]

at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:251)
~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
~[?:?]

at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
~[?:?]

at
org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:279)
~[?:?]

at
org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
~[?:?]

at
org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
~[?:?]

at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
~[?:?]

at org.eclipse.jetty.server.Server.doStart(Server.java:398) ~[?:?]

... 31 more


On Thu, Dec 13, 2018, 2:45 AM Claus Ibsen <cl...@gmail.com> wrote:

> Hi
>
> You can configure them on the component level, see the table in the docs
>
> https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc
>
> So you can define a <bean id="websocket"
> class="....WebSocketComponent"> where you setup these options
> On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
> <br...@bradfordfisher.com> wrote:
> >
> > I am having trouble determining where or how to configure the
> > camel-websocket maxThreads settings.
> >
> > I'm running Karaf 4.2.1 and have installed features camel-blueprint and
> > camel-websocket.
> >
> > I'm attempting to create a new websocket endpoint with the following
> > blueprint:
> >
> > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
> >     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> >         <route>
> >             <from uri="websocket://0.0.0.0:8080/echo" />
> >             <to uri="websocket://0.0.0.0:8080/echo" />
> >         </route>
> >     </camelContext>
> > </blueprint>
> >
> >
> > It seems that the initial value of (1 + 2 * cores === 3) on a single core
> > virtual machine is too low to start this single endpoint.
> >
> > Does anyone know how to increase the maxThreads count?
> >
> > Thanks in advance!
> >
> > - Brad
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Re: camel-websocket configure maxThreads

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

You can configure them on the component level, see the table in the docs
https://github.com/apache/camel/blob/master/components/camel-websocket/src/main/docs/websocket-component.adoc

So you can define a <bean id="websocket"
class="....WebSocketComponent"> where you setup these options
On Thu, Dec 13, 2018 at 2:28 AM Bradford Fisher
<br...@bradfordfisher.com> wrote:
>
> I am having trouble determining where or how to configure the
> camel-websocket maxThreads settings.
>
> I'm running Karaf 4.2.1 and have installed features camel-blueprint and
> camel-websocket.
>
> I'm attempting to create a new websocket endpoint with the following
> blueprint:
>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
>     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
>         <route>
>             <from uri="websocket://0.0.0.0:8080/echo" />
>             <to uri="websocket://0.0.0.0:8080/echo" />
>         </route>
>     </camelContext>
> </blueprint>
>
>
> It seems that the initial value of (1 + 2 * cores === 3) on a single core
> virtual machine is too low to start this single endpoint.
>
> Does anyone know how to increase the maxThreads count?
>
> Thanks in advance!
>
> - Brad



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2