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.AzureNamedKeyCredential credential)
Sets the credential with the shared access policies for the Service Bus resource.
|
ServiceBusClientBuilder |
credential(String fullyQualifiedNamespace,
com.azure.core.credential.AzureSasCredential credential)
Sets the credential with Shared Access Signature for the Service Bus resource.
|
ServiceBusClientBuilder |
credential(String fullyQualifiedNamespace,
com.azure.core.credential.TokenCredential credential)
Sets the credential by using a
TokenCredential 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(com.azure.core.amqp.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(com.azure.core.amqp.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(com.azure.core.amqp.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 is 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)
TokenCredential for the Service Bus resource.
azure-identity has multiple TokenCredential implementations that can be used to authenticate
the access to the Service Bus resource.fullyQualifiedNamespace - The fully-qualified namespace for the Service Bus.credential - The token credential to use for authentication. Access controls may be specified by the
ServiceBus namespace or the requested Service Bus entity, depending on Azure configuration.ServiceBusClientBuilder object.public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, com.azure.core.credential.AzureNamedKeyCredential credential)
AzureNamedKeyCredential is the 'policy' on portal and the 'key' attribute
can be either 'Primary Key' or 'Secondary Key'.
This method and ServiceBusClientBuilder.connectionString(String) take the same information in different forms. But it allows
you to update the name and key.fullyQualifiedNamespace - The fully-qualified namespace for the Service Bus.credential - AzureNamedKeyCredential to be used for authentication.ServiceBusClientBuilder object.public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, com.azure.core.credential.AzureSasCredential credential)
fullyQualifiedNamespace - The fully-qualified namespace for the Service Bus.credential - AzureSasCredential to be used for authentication.ServiceBusClientBuilder object.public ServiceBusClientBuilder proxyOptions(com.azure.core.amqp.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(com.azure.core.amqp.AmqpRetryOptions retryOptions)
retryOptions - The retry options to use.ServiceBusClientBuilder object.public ServiceBusClientBuilder transportType(com.azure.core.amqp.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.Visit the Azure for Java Developers site for more Java documentation, including quick starts, tutorials, and code samples.