applies to: exchange server 2013
In Microsoft Exchange Server 2013, you can use the Queue Viewer in the Exchange Toolbox or the Exchange Management Shell to manage queues. For more information about how to use the queue management cmdlets in the exchange management shell, see use the exchange management shell to manage queues.
what do you need to know before you start?
-
estimated time to complete each procedure: 15 minutes
You must have permissions assigned before you can perform this procedure(s). to see what permissions you need, see the “queues” entry in the mail flow permissions topic.
For information about keyboard shortcuts that can be applied to the procedures in this topic, see the keyboard shortcuts in the exchange admin center.
see tails
use queue viewer in exchange toolbox to view queues
-
click start > all programs > microsoft exchange 2013 > exchange toolbox.
in the mail flow tools section, double-click queue viewer to open the tool in a new window.
In the queue viewer, click the queues tab. a list of all queues on the server you are connected to is displayed.
You can use the export list link in the action pane to export the list of queues. for more information, see export lists from the queue viewer.
use the shell to view queues
To see the queues, use the following syntax.
This example displays basic information about all non-empty queues on the Exchange 2013 mailbox server named mailbox01.
This example displays detailed information for all queues that contain more than 100 messages on the Mailbox server on which the command is run.
use the shell to view queue summary information on multiple exchange servers
The get-queuedigest cmdlet provides a high-level, aggregated view of the status of queues across all servers within a specific scope, for example, a dag, an active directory site, a list of servers, or the entire active directory forest. note that queues on a subscribed Edge Transport server in the perimeter network are not included in the results. also, get-queuedigest is available on an Edge Transport server, but the results are restricted to queues on the Edge Transport server.
To view summary information about queues on multiple exchange servers, run the following command:
This example displays summary information about the queues on all Exchange 2013 Mailbox servers in the Active Directory site named firstsite where the message count is greater than 100.
This example displays summary information about the queues on all Exchange 2013 mailbox servers in the database availability group (dag) named dag01 where the queue status has the value retry.
resume queues
Resuming a queue restarts outgoing activities in a queue that is in a suspended state. the queue must be in a suspended state for this action to have any effect. when you resume a queue, the status of the messages in the queue does not change. messages that have a status of suspended remain suspended and do not exit the queue.
use queue viewer in exchange toolbox to resume queues
-
click start > all programs > microsoft exchange 2013 > exchange toolbox.
in the mail flow tools section, double-click queue viewer to open the tool in a new window.
In the queue viewer, click the queues tab. a list of all queues on the server you are connected to is displayed.
click create filter and enter your filter expression as follows:
-
select status from the queue properties dropdown list.
select is equal to from the comparison operator dropdown list.
select suspended from the dropdown list of values.
click apply filter. all queues on the server that are currently suspended are displayed.
select one or more queues from the list, right-click, and then select resume.
use the shell to resume queues
To resume the queues, use the following syntax.
This example resumes all queues on the local server that are in a suspended state.
This example resumes the suspended delivery queue named contoso.com on the server named mailbox01.
how do you know this worked?
To verify that you have successfully resumed a queue, do the following:
-
Use the queue viewer or the get-queue cmdlet to find the queue you tried to resume.
verify that the status property of the queue does not have the value suspended.
retry queues
When a transport server is unable to connect to the next hop, the delivery queue is put into a retry state. when you retry a delivery queue using either the queue viewer or the shell, it forces an immediate connection attempt and overrides the next scheduled retry time. if the connection is unsuccessful, the retry interval timer is reset. the delivery queue must be in the retry state for this action to take effect.
use the queue viewer in the exchange toolbox to retry a queue
-
click start > all programs > microsoft exchange 2013 > exchange toolbox.
in the mail flow tools section, double-click queue viewer to open the tool in a new window.
In the queue viewer, click the queues tab. a list of all queues on the server you are connected to is displayed.
click create filter and enter your filter expression as follows:
-
select status from the queue properties dropdown list.
select is equal to from the comparison operator dropdown list.
select retry from the dropdown list of values.
click apply filter. all queues that currently have a retry status are displayed.
select one or more queues from the list. right-click and select retry queue. if the connection attempt is successful, the status of the queue changes to active. if a connection cannot be established, the queue remains in a retry state and the next retry time is updated.
use the shell to retry a queue
To retry queues, use the following syntax.
This example retries all queues on the local server with a status of retry.
This example retries the queue named contoso.com that is in the retry state on the server named mailbox01.
how do you know this worked?
To verify that you have successfully retried a queue, do the following:
-
Use the queue viewer or the get-queue cmdlet to find the queue you tried to retry.
verify that the queue’s lastretrytime property matches the time you tried to retry the queue.
resend messages in queues
resubmitting a queue is similar to retrying a queue, except messages are sent back to the submission queue for reprocessing by the categorizer. you can resend messages that have the following status:
-
delivery queues that have the status of retry. messages in queues cannot be in a suspended state.
messages in the unreachable queue that are not in a suspended state.
messages in the poison queue.
use the shell to forward messages
To resend messages, use the following syntax.
This example resends all messages located in any delivery queue with a status of retry to the server named mailbox01.
This example resends all messages located in the unreachable queue on server mailbox01.
resend messages in the poison queue
you send messages back to the poison queue when you resume the message. you can use the queue viewer or the shell to resend messages from the poison queue. Note that the poison queue is only visible in the queue viewer when there are messages in the poison queue.
use the queue viewer in the exchange toolbox to resend messages in the poison queue
-
click start > all programs > microsoft exchange 2013 > exchange toolbox.
in the mail flow tools section, double-click queue viewer to open the tool in a new window.
In the queue viewer, click the queues tab. a list of all queues on the server you are connected to is displayed.
click on the poison message queue. in the action pane, select view messages.
select one or more messages from the list, right-click and select resume.
use the shell to forward messages in the poison queue
To resubmit a message from the poison queue, perform the following steps.
-
Find the identity of the message by running the following command.
use the message identity from the previous step in the next command.
This example resumes a message from the poison message queue that has a message identity value of 222.
how do you know this worked?
To verify that you successfully resubmitted a message from the poison queue, do the following:
-
Use Queue Viewer or the get-queue cmdlet to view the poison queue where you tried to resend the message.
verify that the message is no longer in the poison queue. Note that an empty poison message queue does not appear in the queue viewer or in the get-queue cmdlet. therefore, if the message you resubmitted was the only message in the poison queue and the poison queue is no longer visible, that is also an indication of a successful resubmission of the message.
suspend queues
When you suspend a queue, you prevent messages from leaving the queue, but you don’t change the state of messages in the queue. messages that are in delivery via smtp-send will finish operations. you can suspend a queue to stop mail flow and then suspend one or more messages in the queue. when you resume the queue, messages that were suspended will not exit the queue.
You can suspend a queue that has an active status or try again. you can also suspend the unreachable queue and the submit queue.
If you suspend the unreachable queue, items will not be sent back to the categorizer when configuration updates are received by the transport server until the queue is resumed. if you suspend the send queue, the categorizer will not fetch messages until the queue is resumed.
use the queue viewer in the exchange toolbox to suspend a queue
-
click start > all programs > microsoft exchange 2013 > exchange toolbox.
in the mail flow tools section, double-click queue viewer to open the tool in a new window.
In the queue viewer, click the queues tab. a list of all queues on the server to which you are connected is displayed. you can create a filter to display only queues that meet specific criteria.
select one or more queues, right-click, and then select suspend.
use the shell to suspend a queue
To suspend a queue, use the following syntax.
This example suspends all queues on the local server that have a message count equal to or greater than 1000 and have a status of retry.
This example suspends the queue named contoso.com on the server named mailbox01.
how do you know this worked?
To verify that you have successfully suspended a queue, do the following:
-
Use the queue viewer or the get-queue cmdlet to find the queue you tried to suspend.
verify that the status property of the queue has the value suspended.
-
-
-
-
-
-
-
-
-
-
-
-
-