camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hector Veiga (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAMEL-11791) RabbitMQ Producer does not recover if exchange or queue is deleted manually
Date Sun, 24 Sep 2017 15:20:00 GMT

     [ https://issues.apache.org/jira/browse/CAMEL-11791?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Hector Veiga updated CAMEL-11791:
---------------------------------
    Summary: RabbitMQ Producer does not recover if exchange or queue is deleted manually 
(was: RabbitMQ Producer does not recover if exchange is deleted manually)

> 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)

Mime
View raw message