It looks like you're failing to get an HTTP connection in one of your
routes.  Four of the six endpoints you listed use HTTP; have you been able
to figure out which of them is the one you're failing on, and whether
there's anything unusual about hitting that endpoint?  When this fails, are
you processing lots of messages in parallel, where each would be trying to
get an HTTP connection?  If so and if you have substantially more messages
to process, you'd run out of HTTP connections and the other threads would
need to wait for one to become available, which might not happen if there
were enough simultaneous requests or if the HTTP request was very slow...

On Fri, Sep 26, 2014 at 12:56 PM, ahsanali <smartwork...@gmail.com> wrote:

> technology version I have used:
> <pre>
> 1. jdk 1.6
> 2. spring 3
> 3. activemq-core 5.4.1
> 4. camel-core 2.5.0
> </pre>
> I have used below configuration in application context for activemq pool
> and
> jms configuration
>
>
>
> > <bean id="pooledConnectionFactory"
> > class="org.apache.activemq.pool.PooledConnectionFactory"
> > init-method="start" destroy-method="stop">
>                    <property name="maxConnections" value="30" />
>                    <property name="connectionFactory"
> ref="jmsConnectionFactory" />
>                 </bean>
>
>                 <bean id="jmsConfig"
> class="org.apache.camel.component.jms.JmsConfiguration">
>                    <property name="connectionFactory"
> ref="pooledConnectionFactory"/>
>                    <property name="concurrentConsumers" value="10"/>
>                 </bean>
> <pre>
> As per my analysis I found that issue is with activemq routing but we are
> not getting exactly root cause and solution.
> Any suggestion is appreciated,I am new to activeMQ.
> Also please note I have defined routing url in config() method of my
> custome
> class.
> <pre>
> like
>
>     private final JaxbDataFormat jaxb = new
> JaxbDataFormat("com.example.prototrans.message.model.promptserver");
>
>
> from(endpointSmppSub).
>                         to("smppMoRequestProcessor").
>                         to(QUEUE_MO_REQUESTS);
>
>                 from(QUEUE_MO_REQUESTS).
>                         to("promptServerMoRequestProcessor").
>                         to(endpointPromptServerSub).
>                         unmarshal(jaxb).
>                         to("promptServerMoResponseProcessor").
>                         to("smppMoResponseProcessor").
>                         to(endpointSmppSub);
>
>                 from(endpointUssdPushSubEN).
>                 unmarshal(jaxb).to("smsPushProcessor");
>
>
>                 from(endpointSmppPos).
>                         to("smppMoRequestProcessor").
>                         to(QUEUE_8_MO_REQUESTS);
>                         from(QUEUE_8_MO_REQUESTS).
>                         to("promptServerMoRequestProcessor").
>                         to(endpointPromptServerPos).
>                         unmarshal(jaxb).
>                         to("promptServerMoResponseProcessor").
>                         to("smppMoResponseProcessor")
>                         .to(endpointSmppPos);
>                                 from(endpointUssdPushMerEN).
>                 unmarshal(jaxb).to("smsPushProcessor");
>
>
> I am getting below Exception:
>
>     org.apache.commons.httpclient.ConnectionPoolTimeoutException: Timeout
> waiting for connection
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497)
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
>         at
>
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
>         at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>         at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>         at
>
> org.apache.camel.component.http.HttpProducer.executeMethod(HttpProducer.java:180)
>         at
> org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:94)
>         at
>
> org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
>
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:104)
>         at
>
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:272)
>         at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:98)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
>
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
>
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
>         at
>
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
>         at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
>         at
>
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>         at
>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>         at
>
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
>         at
>
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
>         at
>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:91)
>         at
>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
>         at
>
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
>         at
>
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
>         at
>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
>         at
>
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
>         at
>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1056)
>         at
>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1048)
>         at
>
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
>         at java.lang.Thread.run(Thread.java:662)
>
>
>
>
> > also I found same here but not relevant to my issue
> [org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for
> connection from pool [duplicate]][1]
>
>
> [httpclient exception “org.apache.http.conn.ConnectionPoolTimeoutException:
> Timeout waiting for connection”][2]
>
>
>   [1]:
>
> http://stackoverflow.com/questions/16019612/org-apache-http-conn-connectionpooltimeoutexception-timeout-waiting-for-connect
>   [2]:
>
> http://stackoverflow.com/questions/11875015/httpclient-exception-org-apache-http-conn-connectionpooltimeoutexception-timeo
>
>
>
> routes.endpointSmppSub=smpp://
> docmm@196.201.51.133:5640?password=docmm&serviceType=USSD&sourceAddrTon=0&sourceAddrNpi=0&enquireLinkTimer=10000&transactionTimer=5000&sourceAddr=564&systemType=USSD
>
> routes.endpointPromptServerSub=
> http://example.ussd:9080/ussd_prompt_server/XmlProtocolController
>
> routes.endpointUssdPushSubEN=jetty:
> http://example.ussd:8089/ussd_protocol_server/outboundsmppMessageAdapter
>
>
> routes.endpointSmppPos=smpp://
> docmm2@196.201.51.133:5680?password=docmm2&serviceType=USSD&sourceAddrTon=0&sourceAddrNpi=0&enquireLinkTimer=10000&transactionTimer=5000&sourceAddr=568&systemType=USSD
>
> routes.endpointPromptServerPos=
> http://example.ussd:9080/pos_ussd_prompt_server/XmlProtocolController
>
> routes.endpointUssdPushMerEN=jetty:
> http://example.ussd:8089/pos_ussd_protocol_server/outboundsmppMessageAdapter
>
>
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/org-apache-commons-httpclient-ConnectionPoolTimeoutException-Timeout-waiting-for-connection-tp4685923.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Reply via email to