You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/09/25 18:52:02 UTC
[jira] [Commented] (CAMEL-11791) RabbitMQ Producer does not recover
if exchange or queue is deleted manually
[ https://issues.apache.org/jira/browse/CAMEL-11791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16179546#comment-16179546 ]
ASF GitHub Bot commented on CAMEL-11791:
----------------------------------------
GitHub user hveiga opened a pull request:
https://github.com/apache/camel/pull/1957
CAMEL-11791: Enhanced reconnection for rabbitmq consumer and producer…
… (including queue/exchange deletion)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/hveiga/camel master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/1957.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1957
----
commit 79dadaa8ec98c3ab23dbb5b17bae3ade816bbf52
Author: Veiga Ortiz, Héctor <he...@here.com>
Date: 2017-09-25T18:47:18Z
CAMEL-11791: Enhanced reconnection for rabbitmq consumer and producer (including queue/exchange deletion)
----
> RabbitMQ Producer does not recover if exchange or queue is deleted manually
> ---------------------------------------------------------------------------
>
> Key: CAMEL-11791
> URL: https://issues.apache.org/jira/browse/CAMEL-11791
> Project: Camel
> Issue Type: Bug
> Components: camel-rabbitmq
> Affects Versions: 2.19.2
> Reporter: Hector Veiga
>
> While trying different recovering scenarios with camel-rabbitmq we tried to delete the exchange where the producer was sending RabbitMQ messages to.
> We observed that the exchange was never recreated again as well as no new channel were created in the channel pool. Every time a channel was used to send a non-existent exchange, the channel was closed and we got a log saying "Got a closed channel from the pool". Once it ran out of channels in the pool, we keep getting the same exception when a new message tries to be sent to the exchange:
> {noformat}
> Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
> at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1174) ~[commons-pool-1.6.jar:1.6]
> {noformat}
> We are using a InOnly producer and the options we are using are:
> {noformat}
> rabbitmq://somehose:someport/some_exchange?username=SomeApp&password=SomeApp&skipQueueDeclare=true&exchangeType=headers&automaticRecoveryEnabled=true&topologyRecoveryEnabled=true
> {noformat}
> It seems the code never catches a Exception thrown by channel.basicPublish(...) in RabbitMQMessagePublisher. Maybe we could catch if the issue is that the exchange got deleted and run the exchange declaration again?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)