TopicClient Class

  • java.lang.Object
    • ClientEntity
      • com.microsoft.azure.servicebus.InitializableEntity
        • com.microsoft.azure.servicebus.TopicClient

public class TopicClient implements ITopicClient

The topic client that interacts with service bus topic.

Constructor Summary

Constructor Description
TopicClient(ConnectionStringBuilder amqpConnectionStringBuilder)
TopicClient(String namespace, String topicPath, ClientSettings clientSettings)
TopicClient(URI namespaceEndpointURI, String topicPath, ClientSettings clientSettings)

Method Summary

Modifier and Type Method and Description
void cancelScheduledMessage(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

CompletableFuture<Void> cancelScheduledMessageAsync(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This is an asynchronous method returning a CompletableFuture which completes when the message is cancelled.

String getEntityPath()

Gets the path of the entity this client is sending messages to or receiving messages from.

String getTopicName()

Get the name of the topic

CompletableFuture<Void> onClose()
IMessage peek()

reads next the active message without changing the state of the receiver or the message source. The first call to peek() fetches the first active message for this receiver. Each subsequent call fetches the subsequent message in the entity.

IMessage peek(long fromSequenceNumber)

Reads next the active message without changing the state of the receiver or the message source.

CompletableFuture<IMessage> peekAsync()

Asynchronously reads the active messages without changing the state of the receiver or the message source.

CompletableFuture<IMessage> peekAsync(long fromSequenceNumber)

Asynchronously reads next the active message without changing the state of the receiver or the message source.

Collection<IMessage> peekBatch(int messageCount)

Reads next batch of the active messages without changing the state of the receiver or the message source.

Collection<IMessage> peekBatch(long fromSequenceNumber, int messageCount)

Reads next batch of the active messages without changing the state of the receiver or the message source.

CompletableFuture<Collection<IMessage>> peekBatchAsync(int messageCount)

Asynchronously reads the next batch of active messages without changing the state of the receiver or the message source.

CompletableFuture<Collection<IMessage>> peekBatchAsync(long fromSequenceNumber, int messageCount)

Asynchronously reads the next batch of active messages without changing the state of the receiver or the message source.

long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

CompletableFuture<Long> scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

CompletableFuture<Long> scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

void send(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

void send(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

CompletableFuture<Void> sendAsync(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

CompletableFuture<Void> sendAsync(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

void sendBatch(Collection<? extends IMessage> messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

void sendBatch(Collection<? extends IMessage> messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

CompletableFuture<Void> sendBatchAsync(Collection<? extends IMessage> messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity.

CompletableFuture<Void> sendBatchAsync(Collection<? extends IMessage> messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity.

Inherited Members

Constructor Details

TopicClient

public TopicClient(ConnectionStringBuilder amqpConnectionStringBuilder)

Parameters:

amqpConnectionStringBuilder

TopicClient

public TopicClient(String namespace, String topicPath, ClientSettings clientSettings)

Parameters:

namespace
topicPath
clientSettings

TopicClient

public TopicClient(URI namespaceEndpointURI, String topicPath, ClientSettings clientSettings)

Parameters:

namespaceEndpointURI
topicPath
clientSettings

Method Details

cancelScheduledMessage

public void cancelScheduledMessage(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.cancelScheduledMessage(long sequenceNumber)

Parameters:

sequenceNumber - sequence number of the scheduled message

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if scheduled message couldn't be cancelled

cancelScheduledMessageAsync

public CompletableFuture cancelScheduledMessageAsync(long sequenceNumber)

Cancels the enqueuing of an already sent scheduled message, if it was not already enqueued. This is an asynchronous method returning a CompletableFuture which completes when the message is cancelled.

Overrides:

TopicClient.cancelScheduledMessageAsync(long sequenceNumber)

Parameters:

sequenceNumber - sequence number of the scheduled message

Returns:

a CompletableFuture representing the pending cancellation

getEntityPath

public String getEntityPath()

Gets the path of the entity this client is sending messages to or receiving messages from.

Overrides:

TopicClient.getEntityPath()

Returns:

path of the entity this client is connecting to

getTopicName

public String getTopicName()

Get the name of the topic

Overrides:

TopicClient.getTopicName()

Returns:

the name of the topic

onClose

protected CompletableFuture onClose()

peek

public IMessage peek()

reads next the active message without changing the state of the receiver or the message source. The first call to peek() fetches the first active message for this receiver. Each subsequent call fetches the subsequent message in the entity.

Overrides:

TopicClient.peek()

Returns:

Message peeked

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if peek failed

peek

public IMessage peek(long fromSequenceNumber)

Reads next the active message without changing the state of the receiver or the message source.

Overrides:

TopicClient.peek(long fromSequenceNumber)

Parameters:

fromSequenceNumber - The sequence number from where to read the message.

Returns:

Message peeked

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if peek failed

peekAsync

public CompletableFuture peekAsync()

Asynchronously reads the active messages without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekAsync()

Returns:

Message peeked

peekAsync

public CompletableFuture peekAsync(long fromSequenceNumber)

Asynchronously reads next the active message without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekAsync(long fromSequenceNumber)

Parameters:

fromSequenceNumber - The sequence number from where to read the message.

Returns:

CompletableFuture that returns Message peeked.

peekBatch

public Collection peekBatch(int messageCount)

Reads next batch of the active messages without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekBatch(int messageCount)

Parameters:

messageCount - The number of messages.

Returns:

Batch of Message peeked

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if peek failed

peekBatch

public Collection peekBatch(long fromSequenceNumber, int messageCount)

Reads next batch of the active messages without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekBatch(long fromSequenceNumber, int messageCount)

Parameters:

fromSequenceNumber - The sequence number from where to read the message.
messageCount - The number of messages.

Returns:

Batch of Message peeked

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if peek failed

peekBatchAsync

public CompletableFuture<>> peekBatchAsync(int messageCount)

Asynchronously reads the next batch of active messages without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekBatchAsync(int messageCount)

Parameters:

messageCount - The number of messages.

Returns:

CompletableFuture that returns batch of Message peeked.

peekBatchAsync

public CompletableFuture<>> peekBatchAsync(long fromSequenceNumber, int messageCount)

Asynchronously reads the next batch of active messages without changing the state of the receiver or the message source.

Overrides:

TopicClient.peekBatchAsync(long fromSequenceNumber, int messageCount)

Parameters:

fromSequenceNumber - The sequence number from where to read the message.
messageCount - The number of messages.

Returns:

CompletableFuture that returns batch of Message peeked.

scheduleMessage

public long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc)

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity

Returns:

sequence number of the scheduled message

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if message couldn't be sent to the entity

scheduleMessage

public long scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.scheduleMessage(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity
transaction -

TransactionContext which this operation should enlist to.

Returns:

sequence number of the scheduled message

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if message couldn't be sent to the entity

scheduleMessageAsync

public CompletableFuture scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

Overrides:

TopicClient.scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc)

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity

Returns:

a CompletableFuture representing the pending send, which returns the sequence number of the scheduled message. This sequence number can be used to cancel the scheduling of the message.

scheduleMessageAsync

public CompletableFuture scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Sends a scheduled message to the Azure Service Bus entity this sender is connected to. A scheduled message is enqueued and made available to receivers only at the scheduled enqueue time. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity. The CompletableFuture, on completion, returns the sequence number of the scheduled message which can be used to cancel the scheduling of the message.

Overrides:

TopicClient.scheduleMessageAsync(IMessage message, Instant scheduledEnqueueTimeUtc, TransactionContext transaction)

Parameters:

message - message to be sent to the entity
scheduledEnqueueTimeUtc - instant at which the message should be enqueued in the entity
transaction -

TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send, which returns the sequence number of the scheduled message. This sequence number can be used to cancel the scheduling of the message.

send

public void send(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.send(IMessage message)

Parameters:

message - message to be sent to the entity

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if message couldn't be sent to the entity

send

public void send(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This method blocks until the message is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.send(IMessage message, TransactionContext transaction)

Parameters:

message - message to be sent to the entity
transaction -

TransactionContext which this operation should enlist to.

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if message couldn't be sent to the entity

sendAsync

public CompletableFuture sendAsync(IMessage message)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

Overrides:

TopicClient.sendAsync(IMessage message)

Parameters:

message - message to be sent to the entity

Returns:

a CompletableFuture representing the pending send

sendAsync

public CompletableFuture sendAsync(IMessage message, TransactionContext transaction)

Sends a message to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the message is sent to the entity.

Overrides:

TopicClient.sendAsync(IMessage message, TransactionContext transaction)

Parameters:

message - message to be sent to the entity
transaction -

TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send

sendBatch

public void sendBatch(Collection messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.sendBatch(Collection<? extends IMessage> messages)

Parameters:

messages - collection of messages to be sent to the entity

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if the batch couldn't be sent to the entity

sendBatch

public void sendBatch(Collection messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This method blocks until the batch is sent to the entity. Calling this method is equivalent to calling . For better performance, use async methods.

Overrides:

TopicClient.sendBatch(Collection<? extends IMessage> messages, TransactionContext transaction)

Parameters:

messages - collection of messages to be sent to the entity
transaction -

TransactionContext which this operation should enlist to.

Throws:

InterruptedException - if the current thread was interrupted while waiting
ServiceBusException - if the batch couldn't be sent to the entity

sendBatchAsync

public CompletableFuture sendBatchAsync(Collection messages)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity.

Overrides:

TopicClient.sendBatchAsync(Collection<? extends IMessage> messages)

Parameters:

messages - collection of messages to be sent to the entity

Returns:

a CompletableFuture representing the pending send

sendBatchAsync

public CompletableFuture sendBatchAsync(Collection messages, TransactionContext transaction)

Sends a batch of messages to the Azure Service Bus entity this sender is connected to. This is an asynchronous method returning a CompletableFuture which completes when the batch is sent to the entity.

Overrides:

TopicClient.sendBatchAsync(Collection<? extends IMessage> messages, TransactionContext transaction)

Parameters:

messages - collection of messages to be sent to the entity
transaction -

TransactionContext which this operation should enlist to.

Returns:

a CompletableFuture representing the pending send

Applies to