RabbitMQ - Delete dynamic shovel using rabbitmqctl delete_shovel

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.

Only a dynamic shovel can be deleted using the rabbitmqctl clear_parameter command.


Before using the rabbitmqctl delete_shovel command, you will want to use the rabbitmqctl shovel_status command to ensure the shovel exists on the node. This is especially important in a clustered environment, where you have two or more nodes that make up your RabbitMQ system, as the shovel will only be running on one of the nodes in the cluster.

rabbitmqctl shovel_status | grep <the name of the shovel>


The rabbitmqctl command with the delete_shovel option can be used to delete a dynamic shovel.

rabbitmqctl delete_shovel shovel001


Optionally, the -p or --vhost option can be used to specify the virtual host.

rabbitmqctl delete_shovel --vhost vhost001 shovel001


If something like this is returned, use the rabbitmqctl list_parameters command to ensure the parameter exists.

Deleting shovel shovel001 in vhost vhost001
Parameter does not exist


Or like this.

rabbitmqctl eval "rabbit_shovel_status:remove({'vhost001','shovel001'})."


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.

Add a Comment

We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.

Please enter f2839 in the box below so that we can be sure you are a human.


Web design by yours truely - me, myself, and I   |   jeremy.canfield@freekb.net   |