Is it possible to delete a message from outgoing queues? I don't see any option for deleting. How to delete these messages? I am new to msmq. I am trying to send messages from my computer to some other computer. All my messages are sitting in outgoing queue with the status "LOCKED". Not sure why is it locked and I want to delete all these messages in OUTGOING QUEUE.
The various possible status values are described in Internal Private Queues and Outgoing Queues.
Emptying an outgoing queue is discussed in this question: How to Purge an MSMQ Outgoing Queue.
I haven't been keeping up to date with MSMQ but I suspect removing individual messages from an outgoing queue is not possible. Outgoing queues are part of MSMQ's internal infrastructure and shouldn't be manipulated by non-MSMQ code.
Related
I am sending messages to rabbitmq queue using mqtt protocol. I want to consume the messages using AMQP protocol. Instead of consuming the messages one by one. I want to consume the messages in batches and process them together. Is it possible with with RabbitMQ AMQP?
To read a group of messages in the queue together instead of reading one by one.
Instead of leaving Rabbit push messages to my consumers, the consumer connects to a queue and fetches a batch of N message.
I have to acknowledge all the unacknowledged message and make the count zero. If the message is in ready so the using the purge requester (DELETE http://localhost:8767/api/queues/vhost/name/contents) I am able to purge and remove the messages but if it is in unacked then this purge is not working or count still showing in the unacked section.
Kindly suggest how to use the REST API of RabbitMQ to ACK all the messages in the queue and make the count as zero.
you can ack them or purge queue in rabbitmq management
Using Active MQ 5.15.4 and following the doc from http://activemq.apache.org/virtual-destinations.html, when sending to a VirtualTopic, the messages get sent to all connected queues, but they never get dequeued from the virtual topic where they were sent.
Do we need to manually clean the virtual topic?
What is the reason of having the messages kept in the topic? Is it that they can be re-sent later on? But when a new queue gets linked to the virtual topic, all existing enqueued messages are not sent to it.
Have not tested this, but are the messages in the connected queues respecting the persistence flag for the message sent in the virtual topic?
If there is no consumer on the Virtual Topic itself then the only messages retained are the one's placed on the subscription queues for the Virtual Topic consumers. For example if you send to VirtualTopic.FOO and there are no subscriptions on that Topic or the named Virtual Topic consumer queues such as Consumer.A.VirtualTopic.FOO then the message would be completely discarded. If there was some consumer on the consumer queue at some point then messages sent to the Topic are then forwarded to the Queue but the Topic itself retains nothing.
If there are consumers on the Virtual Topic itself they would get messages sent to them or held for them up to the configured pending message limit etc etc.
The Consumer Queues will respect the persistent value specified by the MessageProducer that sent them.
I'm using RabbitMQ and need a message to be queued and consumed by multiple servers, but only one of the servers could confirm this message and only it would remove this message from the queue, even if other servers have consumed the message, but do not have removed it from the queue. I wonder how RabbitMQ can do this scenario ?
With simple Pub/Sub in NServiceBus, I know that if my subscriber app is not running, then the published messages will just accumulate in the queue until they can be processed. But where do they accumulate if the entire machine is down? Since the message can't even be delivered to my subscriber queue, is there some queue where they sit on the publisher? I would like to be able to see what messages are waiting on the publisher when the subscriber machine is down.
Is there any way to see them?
Msmq, the default transport for NServiceBus, uses the store and forward pattern to deliver messages. That means that when you send a message to another machine it's first "stored" on the machine that sends the message and then "forwarded" to the recipient machine. This means that outgoing messages to unreachable machines will be stored on the sending machine until they can be delivered. Msmq uses the terminology of "outgoing queues" for temporary storage of messages that are being delivered. If the receiving machine is down the message will sit in the "outgoing queue" until it can be delivered. If you look at the "Message Queuing" MMC plugin you will find a folder called "Outgoing Queues", this is where your published messages will show up if the subscriber is down.
IMO, the best resource for info on Msmq is John Breakwells blog:
http://blogs.msdn.com/b/johnbreakwell/archive/tags/msmq/
More info on NServiceBus combined with Msmq:
http://docs.particular.net/nservicebus/msmq/
Hope this helps!