Export (0) Print
Expand All

BrokeredMessage.ViaPartitionKey Property

Gets or sets a partition key value when a transaction is to be used to send messages via a transfer queue.

Namespace:  Microsoft.ServiceBus.Messaging
Assembly:  Microsoft.ServiceBus (in Microsoft.ServiceBus.dll)

'Declaration
Public Property ViaPartitionKey As String
	Get
	Set
'Usage
Dim instance As BrokeredMessage
Dim value As String

value = instance.ViaPartitionKey

instance.ViaPartitionKey = value

Property Value

Type: System.String
The partition key value when a transaction is to be used to send messages via a transfer queue.

Service Bus supports sending messages to a partitioned queue or topic via a partitioned transfer queue. In this case, the regular partition key (SessionId, PartitionKey, or MessageId) of the message is used for the destination queue or topic. If the transfer queue is partitioned and the ViaPartitionKey property is set, then the ViaPartitionKey value is used as a partition key for the transfer queue. If the ViaPartitionKey property is not set, then Service Bus uses an internal algorithm to assign messages to the fragments of the transfer queue.

If a transaction is used to send messages via a transfer queue, the ViaPartitionKey property must be set on these messages. If a single transaction is used to send multiple messages via a same transfer queue, the ViaPartitionKey property of all messages must be set to the same value.

MessageSender viaMessageSender = messagingfactory.CreateMessageSender(transferDestinationEntityPath: targetQueue.Path, viaEntityPath: transferQueue.Path);
CommittableTransaction committableTransaction = new CommittableTransaction();
using (TransactionScope ts = new TransactionScope(committableTransaction))
{
    BrokeredMessage msg = new BrokeredMessage("This is a message");
    msg.ViaPartitionKey = "myPartitionKey"; // Used as a partition key for transfer queue.
    msg.SessionId = "mySessionId"; // Used as a partition key for destination queue.
    viaMessageServer.Send(msg); 
    ts.Complete();
}
committableTransaction.Commit();

Community Additions

ADD
Show:
© 2014 Microsoft