public final class ServiceBusClientBuilder extends Object
Instantiate a synchronous sender
// Retrieve 'connectionString' and 'queueName' from your configuration. ServiceBusClientBuilder builder = new ServiceBusClientBuilder() .connectionString(connectionString); ServiceBusSenderClient sender = builder .sender() .queueName(queueName) .buildClient();
Instantiate an asynchronous receiver
// Retrieve 'connectionString', 'topicName' and 'subscriptionName' from your configuration. ServiceBusClientBuilder builder = new ServiceBusClientBuilder() .connectionString(connectionString); ServiceBusReceiverAsyncClient receiver = builder .receiver() .disableAutoComplete() // Allows user to take control of settling a message. .topicName(topicName) .subscriptionName(subscriptionName) .buildAsyncClient();
Instantiate an asynchronous session receiver
// Retrieve 'connectionString', 'topicName' and 'subscriptionName' from your configuration. ServiceBusSessionReceiverAsyncClient sessionReceiver = new ServiceBusClientBuilder() .connectionString(connectionString) .sessionReceiver() .receiveMode(ServiceBusReceiveMode.PEEK_LOCK) .topicName(topicName) .subscriptionName(subscriptionName) .buildAsyncClient(); // Receiving messages from the first available sessions. It waits up to the AmqpRetryOptions.getTryTimeout(). // If no session is available within that operation timeout, it completes with an error. Otherwise, a receiver // is returned when a lock on the session is acquired. Mono<ServiceBusReceiverAsyncClient> receiverMono = sessionReceiver.acceptNextSession(); Flux.usingWhen(receiverMono, receiver -> receiver.receiveMessages(), receiver -> Mono.fromRunnable(receiver::close)) .subscribe(message -> System.out.println(message.getBody().toString()));
Instantiate the processor
// Retrieve 'connectionString' and 'queueName' from your configuration. ServiceBusClientBuilder builder = new ServiceBusClientBuilder() .connectionString(connectionString); ServiceBusProcessorClient processor = builder .processor() .queueName(queueName) .processMessage(System.out::println) .processError(context -> System.err.println(context.getErrorSource())) .buildProcessorClient();
Sharing a connection between clients
The creation of physical connection to Service Bus requires resources. If your architecture allows, an application should share connection between clients which can be achieved by sharing the top level builder as shown below.// Retrieve 'connectionString' and 'queueName' from your configuration. // Create shared builder. ServiceBusClientBuilder sharedConnectionBuilder = new ServiceBusClientBuilder() .connectionString(connectionString); // Create receiver and sender which will share the connection. ServiceBusReceiverClient receiver = sharedConnectionBuilder .receiver() .queueName(queueName) .buildClient(); ServiceBusSenderClient sender = sharedConnectionBuilder .sender() .queueName(queueName) .buildClient();
Clients for sending messages
Clients for receiving messages
Clients for receiving messages from a session-enabled Service Bus entity
Client for receiving messages using a callback-based processor
Modifier and Type | Class and Description |
---|---|
class |
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder
Builder for creating
ServiceBusProcessorClient to consume messages from a Service Bus entity. |
class |
ServiceBusClientBuilder.ServiceBusReceiverClientBuilder
Builder for creating
ServiceBusReceiverClient and ServiceBusReceiverAsyncClient to consume
messages from Service Bus. |
class |
ServiceBusClientBuilder.ServiceBusSenderClientBuilder
Builder for creating
ServiceBusSenderClient and ServiceBusSenderAsyncClient to publish messages
to Service Bus. |
class |
ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder
Builder for creating
ServiceBusProcessorClient to consume messages from a session-based Service Bus
entity. |
class |
ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder
Builder for creating
ServiceBusReceiverClient and ServiceBusReceiverAsyncClient to consume
messages from a session aware Service Bus entity. |
Constructor and Description |
---|
ServiceBusClientBuilder()
Creates a new instance with the default transport
AmqpTransportType.AMQP . |
Modifier and Type | Method and Description |
---|---|
ServiceBusClientBuilder |
clientOptions(com.azure.core.util.ClientOptions clientOptions)
Sets the
ClientOptions to be sent from the client built from this builder, enabling customization of
certain properties, as well as support the addition of custom header information. |
ServiceBusClientBuilder |
configuration(com.azure.core.util.Configuration configuration)
Sets the configuration store that is used during construction of the service client.
|
ServiceBusClientBuilder |
connectionString(String connectionString)
Sets the connection string for a Service Bus namespace or a specific Service Bus resource.
|
ServiceBusClientBuilder |
credential(String fullyQualifiedNamespace,
com.azure.core.credential.TokenCredential credential)
Sets the credential for the Service Bus resource.
|
ServiceBusClientBuilder |
enableCrossEntityTransactions()
Enable cross entity transaction on the connection to Service bus.
|
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder |
processor()
A new instance of
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder used to configure ServiceBusProcessorClient
instance. |
ServiceBusClientBuilder |
proxyOptions(ProxyOptions proxyOptions)
Sets the proxy configuration to use for
ServiceBusSenderAsyncClient . |
ServiceBusClientBuilder.ServiceBusReceiverClientBuilder |
receiver()
A new instance of
ServiceBusClientBuilder.ServiceBusReceiverClientBuilder used to configure Service Bus message receivers. |
ServiceBusClientBuilder |
retryOptions(AmqpRetryOptions retryOptions)
Sets the retry options for Service Bus clients.
|
ServiceBusClientBuilder.ServiceBusSenderClientBuilder |
sender()
A new instance of
ServiceBusClientBuilder.ServiceBusSenderClientBuilder used to configure Service Bus message senders. |
ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder |
sessionProcessor()
A new instance of
ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder used to configure a Service Bus processor
instance that processes sessions. |
ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder |
sessionReceiver()
A new instance of
ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder used to configure session aware Service
Bus message receivers. |
ServiceBusClientBuilder |
transportType(AmqpTransportType transportType)
Sets the transport type by which all the communication with Azure Service Bus occurs.
|
public ServiceBusClientBuilder()
AmqpTransportType.AMQP
.public ServiceBusClientBuilder clientOptions(com.azure.core.util.ClientOptions clientOptions)
ClientOptions
to be sent from the client built from this builder, enabling customization of
certain properties, as well as support the addition of custom header information. Refer to the ClientOptions
documentation for more information.clientOptions
- to be set on the client.ServiceBusClientBuilder
object.public ServiceBusClientBuilder connectionString(String connectionString)
connectionString
- Connection string for a Service Bus namespace or a specific Service Bus resource.ServiceBusClientBuilder
object.public ServiceBusClientBuilder enableCrossEntityTransactions()
Avoid using non-transaction API on this client
Since this feature will set up connection to Service Bus optimised to enable this feature. Once all the clients have been setup, the first receiver or sender used will initialize 'send-via' queue as a single message transfer entity. All the messages will flow via this queue. Thus this client is not suitable for any non-transaction API.When not to enable this feature
If your transaction involved in one Service bus entity only. For example you are receiving from one queue/subscription and you want to settle your own messages which are part of one transaction.ServiceBusClientBuilder.ServiceBusSenderClientBuilder
object.public ServiceBusClientBuilder configuration(com.azure.core.util.Configuration configuration)
Configuration.NONE
to bypass using configuration settings during construction.configuration
- The configuration store used to configure Service Bus clients.ServiceBusClientBuilder
object.public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, com.azure.core.credential.TokenCredential credential)
fullyQualifiedNamespace
- for the Service Bus.credential
- TokenCredential
to be used for authentication.ServiceBusClientBuilder
object.public ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)
ServiceBusSenderAsyncClient
. When a proxy is configured, AmqpTransportType.AMQP_WEB_SOCKETS
must be used for the transport type.proxyOptions
- The proxy configuration to use.ServiceBusClientBuilder
object.public ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)
retryOptions
- The retry options to use.ServiceBusClientBuilder
object.public ServiceBusClientBuilder transportType(AmqpTransportType transportType)
AmqpTransportType.AMQP
.transportType
- The transport type to use.ServiceBusClientBuilder
object.public ServiceBusClientBuilder.ServiceBusSenderClientBuilder sender()
ServiceBusClientBuilder.ServiceBusSenderClientBuilder
used to configure Service Bus message senders.ServiceBusClientBuilder.ServiceBusSenderClientBuilder
.public ServiceBusClientBuilder.ServiceBusReceiverClientBuilder receiver()
ServiceBusClientBuilder.ServiceBusReceiverClientBuilder
used to configure Service Bus message receivers.ServiceBusClientBuilder.ServiceBusReceiverClientBuilder
.public ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder sessionReceiver()
ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder
used to configure session aware Service
Bus message receivers.ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder
.public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processor()
ServiceBusClientBuilder.ServiceBusProcessorClientBuilder
used to configure ServiceBusProcessorClient
instance.ServiceBusClientBuilder.ServiceBusProcessorClientBuilder
.public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionProcessor()
ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder
used to configure a Service Bus processor
instance that processes sessions.ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder
.Copyright © 2021 Microsoft Corporation. All rights reserved.