Valdis Andersons
2018-10-04 16:15:22 UTC
Hi All,
Would anyone know how to configure the timeout values for the below connection pool or the connection pool itself? Been having some issues lately in a test environment with this and the timeout check seems to happen every few milliseconds producing huge amounts of log files.
We're suspecting it's a network issue that's causing this as there is nothing much between the REST endpoint on the buffer queue and only if there is some decent load on the endpoint (10req/sec or so):
rest(restEndpoint).post(postEndpoint)
.type(FeedbackRequest.class)
.route()
.process(this::process)
.startupOrder(Integer.MAX_VALUE - 2)
.marshal().json(JsonLibrary.Jackson, String.class)
.to(feedbackEndpoint)
.endRest();
where process() just sets a persistence header for RabbitMQ to flush the message to disk:
exchange.getIn().setHeader("rabbitmq.DELIVERY_MODE", 2);
2018-10-04 17:01:43,275 [https-jsse-nio-8443-exec-65] ERROR o.a.c.p.DefaultErrorHandler ID-VM1-1538665977944-0-101281 - Failed delivery for (MessageId: ID-VM1-1538665977944-0-101280 on ExchangeId: ID-VM1-1538665977944-0-101281). Exhausted after delivery attempt: 1 caught: java.util.NoSuchElementException: Timeout waiting for idle object
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[route24 ] [route24 ] [restlet:///cch/feedback?restletMethods=POST ] [ 3798]
[route24 ] [process22 ] [***@0x37c71429 ] [ 0]
[route24 ] [marshal1 ] [marshal[***@c940d2] ] [ 0]
[route24 ] [route24 ] [rabbitmq://vm1:5671/feedbackBufferExchange?connectionFactory=rabbitConnec] [ 3782]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1174)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.execute(RabbitMQProducer.java:73)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.basicPublish(RabbitMQProducer.java:285)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.processInOnly(RabbitMQProducer.java:272)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.process(RabbitMQProducer.java:195)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
at org.apache.camel.component.restlet.RestletConsumer$1.handle(RestletConsumer.java:68)
at org.apache.camel.component.restlet.MethodBasedRouter.handle(MethodBasedRouter.java:58)
Thanks,
Valdis
Would anyone know how to configure the timeout values for the below connection pool or the connection pool itself? Been having some issues lately in a test environment with this and the timeout check seems to happen every few milliseconds producing huge amounts of log files.
We're suspecting it's a network issue that's causing this as there is nothing much between the REST endpoint on the buffer queue and only if there is some decent load on the endpoint (10req/sec or so):
rest(restEndpoint).post(postEndpoint)
.type(FeedbackRequest.class)
.route()
.process(this::process)
.startupOrder(Integer.MAX_VALUE - 2)
.marshal().json(JsonLibrary.Jackson, String.class)
.to(feedbackEndpoint)
.endRest();
where process() just sets a persistence header for RabbitMQ to flush the message to disk:
exchange.getIn().setHeader("rabbitmq.DELIVERY_MODE", 2);
2018-10-04 17:01:43,275 [https-jsse-nio-8443-exec-65] ERROR o.a.c.p.DefaultErrorHandler ID-VM1-1538665977944-0-101281 - Failed delivery for (MessageId: ID-VM1-1538665977944-0-101280 on ExchangeId: ID-VM1-1538665977944-0-101281). Exhausted after delivery attempt: 1 caught: java.util.NoSuchElementException: Timeout waiting for idle object
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[route24 ] [route24 ] [restlet:///cch/feedback?restletMethods=POST ] [ 3798]
[route24 ] [process22 ] [***@0x37c71429 ] [ 0]
[route24 ] [marshal1 ] [marshal[***@c940d2] ] [ 0]
[route24 ] [route24 ] [rabbitmq://vm1:5671/feedbackBufferExchange?connectionFactory=rabbitConnec] [ 3782]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1174)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.execute(RabbitMQProducer.java:73)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.basicPublish(RabbitMQProducer.java:285)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.processInOnly(RabbitMQProducer.java:272)
at org.apache.camel.component.rabbitmq.RabbitMQProducer.process(RabbitMQProducer.java:195)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
at org.apache.camel.component.restlet.RestletConsumer$1.handle(RestletConsumer.java:68)
at org.apache.camel.component.restlet.MethodBasedRouter.handle(MethodBasedRouter.java:58)
Thanks,
Valdis