A shovel is used to move a message from a queue or exchange to a different queue or exchage. The queues or exchanges can reside on the same RabbitMQ node or on different RabbitMQ nodes.
There are two types of shovels.
- Dynamic - Created using the rabbitmqctl set_parameter command, or using the RabbitMQ REST API, or using the RabbitMQ web browser console, or using Terraform (this article)
- Static - defined in advanced.config, node must be restarted to create/delete a static shovel
Only a dynamic shovel can be deleted using the rabbitmqctl clear_parameter command.
The rabbitmqctl command with the clear_parameter option can be used to delete a dynamic shovel.
rabbitmqctl clear_parameter --vhost vhost001 shovel shovel001
If something like this is returned, use the rabbitmqctl list_parameters command to ensure the parameter exists.
Error: Parameter does not exist
On the other hand, if the shovel exists, something like this should be returned.
Clearing runtime parameter "shovel001" for component "shovel" on vhost "vhost001" ...
If the shovel is still showing at Shovel Status in the RabbitMQ web browser console, you may need to restart the RabbitMQ service to get the shovel to no longer show at Shovel Status in the web browser console.