ServiceBusClientBuilder Classe

  • java.lang.Object
    • com.azure.messaging.servicebus.ServiceBusClientBuilder

Implémente

public final class ServiceBusClientBuilder
implements TokenCredentialTrait<ServiceBusClientBuilder>, AzureNamedKeyCredentialTrait<ServiceBusClientBuilder>, ConnectionStringTrait<ServiceBusClientBuilder>, AzureSasCredentialTrait<ServiceBusClientBuilder>, AmqpTrait<ServiceBusClientBuilder>, ConfigurationTrait<ServiceBusClientBuilder>

Cette classe fournit une API Fluent Builder pour faciliter l’instanciation des clients pour envoyer et recevoir des messages vers/à partir d’entités Service Bus.

Les informations d’identification sont requises pour effectuer des opérations sur Azure Service Bus. Ils peuvent être définis à l’aide de l’une des méthodes suivantes :

Les informations d’identification utilisées dans les exemples suivants sont pour l’authentification DefaultAzureCredential . Il convient à la plupart des scénarios, y compris aux environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser l’identité managée pour l’authentification dans les environnements de production. Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity .

Clients et sous-constructeurs

ServiceBusClientBuilder peut instancier plusieurs clients. Le client à instancier dépend si les utilisateurs publient ou reçoivent des messages et si les sessions Service Bus de l’entité sont activées.

Envoi de messages

Exemple : Instancier un expéditeur synchrone et envoyer un message

L’exemple de code suivant illustre la création du client ServiceBusSenderClient synchrone et l’envoi d’un message. fullyQualifiedNamespace est le nom d’hôte de l’espace de noms Service Bus. Il est répertorié sous le panneau « Essentials » après avoir accédé à l’espace de noms Service Bus via le portail Azure. Les informations d’identification utilisées sont DefaultAzureCredential dues au fait qu’elles combinent les informations d’identification couramment utilisées dans le déploiement et le développement, et qu’elles choisissent les informations d’identification à utiliser en fonction de leur environnement en cours d’exécution. Lorsque les performances sont importantes, envisagez d’utiliser ServiceBusMessageBatch pour publier plusieurs messages à la fois.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sender()
     .queueName(queueName)
     .buildClient();

 sender.sendMessage(new ServiceBusMessage("Foo bar"));

Consommation de messages

Il existe plusieurs clients pour la consommation de messages à partir d’une entité Service Bus (qui n’a pas de sessions Service Bus activées ).

Exemple : Instancier un récepteur asynchrone

L’exemple de code ci-dessous illustre la création d’un récepteur asynchrone. Les informations d’identification utilisées sont pour l’authentification DefaultAzureCredential . Il convient à la plupart des scénarios, y compris aux environnements de développement et de production locaux. PEEK_LOCK et disableAutoComplete() sont fortement recommandés afin que les utilisateurs aient le contrôle sur le règlement des messages.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // 'disableAutoComplete' indicates that users will explicitly settle their message.
 ServiceBusReceiverAsyncClient asyncReceiver = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .receiver()
     .disableAutoComplete()
     .queueName(queueName)
     .buildAsyncClient();

 // When users are done with the receiver, dispose of the receiver.
 // Clients should be long-lived objects as they require resources
 // and time to establish a connection to the service.
 asyncReceiver.close();

Exemple : instancier ServiceBusProcessorClient

L’exemple de code ci-dessous illustre la création d’un client de processeur. Le client processeur est recommandé dans la plupart des scénarios de production, car il offre une récupération de connexion. Les informations d’identification utilisées sont pour l’authentification DefaultAzureCredential . Il convient à la plupart des scénarios, y compris aux environnements de développement et de production locaux. PEEK_LOCK et disableAutoComplete() sont fortement recommandés afin que les utilisateurs aient le contrôle sur le règlement des messages.

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> processMessage = context -> {
     final ServiceBusReceivedMessage message = context.getMessage();
     // Randomly complete or abandon each message. Ideally, in real-world scenarios, if the business logic
     // handling message reaches desired state such that it doesn't require Service Bus to redeliver
     // the same message, then context.complete() should be called otherwise context.abandon().
     final boolean success = Math.random() < 0.5;
     if (success) {
         try {
             context.complete();
         } catch (RuntimeException error) {
             System.out.printf("Completion of the message %s failed.%n Error: %s%n",
                 message.getMessageId(), error);
         }
     } else {
         try {
             context.abandon();
         } catch (RuntimeException error) {
             System.out.printf("Abandoning of the message %s failed.%nError: %s%n",
                 message.getMessageId(), error);
         }
     }
 };

 // Sample code that gets called if there's an error
 Consumer<ServiceBusErrorContext> processError = errorContext -> {
     if (errorContext.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) errorContext.getException();

         System.out.printf("Error source: %s, reason %s%n", errorContext.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", errorContext.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .processor()
     .queueName(queueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()  // Make sure to explicitly opt in to manual settlement (e.g. complete, abandon).
     .processMessage(processMessage)
     .processError(processError)
     .disableAutoComplete()
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 processorClient.start();

 // Stop processor and dispose when done processing messages.
 processorClient.stop();
 processorClient.close();

Consommation de messages à partir d’une entité Service Bus avec session

Service Bus prend en charge la gestion conjointe et ordonnée de séquences de messages sans limite via des sessions Service Bus. Les sessions peuvent être utilisées comme traitement fiFO (first in, first out) des messages. Les files d’attente et les rubriques/abonnements prennent en charge les sessions Service Bus. Toutefois, il doit être activé au moment de la création de l’entité.

Exemple : Envoi d’un message à une file d’attente avec session

L’extrait de code ci-dessous illustre l’envoi d’un message à une file d’attente activée pour les sessions Service Bus . La définition setMessageId(String messageId) de la propriété sur « greetings » envoie le message à une session Service Bus avec l’ID « greetings ».

// 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusSenderClient sender = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, new DefaultAzureCredentialBuilder().build())
     .sender()
     .queueName(sessionEnabledQueueName)
     .buildClient();

 // Setting sessionId publishes that message to a specific session, in this case, "greeting".
 ServiceBusMessage message = new ServiceBusMessage("Hello world")
     .setSessionId("greetings");

 sender.sendMessage(message);

 // Dispose of the sender.
 sender.close();

Exemple : Recevoir des messages de la première session disponible

Pour traiter les messages de la première session disponible, basculez vers ServiceBusSessionReceiverClientBuilder et générez le client récepteur de session. Utilisez acceptNextSession() pour rechercher la première session disponible à partir de laquelle traiter les messages.

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // 'disableAutoComplete' indicates that users will explicitly settle their message.
 ServiceBusSessionReceiverAsyncClient sessionReceiver = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential)
     .sessionReceiver()
     .disableAutoComplete()
     .queueName(sessionEnabledQueueName)
     .buildAsyncClient();

 // Creates a client to receive messages from the first available session. It waits until
 // AmqpRetryOptions.getTryTimeout() elapses. If no session is available within that operation timeout, it
 // completes with a retriable error. Otherwise, a receiver is returned when a lock on the session is acquired.
 Mono<ServiceBusReceiverAsyncClient> receiverMono = sessionReceiver.acceptNextSession();

 Flux<Void> receiveMessagesFlux = Flux.usingWhen(receiverMono,
     receiver -> receiver.receiveMessages().flatMap(message -> {
         System.out.println("Received message: " + message.getBody());

         // Explicitly settle the message via complete, abandon, defer, dead-letter, etc.
         if (isMessageProcessed) {
             return receiver.complete(message);
         } else {
             return receiver.abandon(message);
         }
     }),
     receiver -> Mono.fromRunnable(() -> {
         // Dispose of the receiver and sessionReceiver when done receiving messages.
         receiver.close();
         sessionReceiver.close();
     }));

 // This is a non-blocking call that moves onto the next line of code after setting up and starting the receive
 // operation. Customers can keep a reference to `subscription` and dispose of it when they want to stop
 // receiving messages.
 Disposable subscription = receiveMessagesFlux.subscribe(unused -> {
 }, error -> System.out.println("Error occurred: " + error),
     () -> System.out.println("Receiving complete."));

Exemple : Traiter les messages de toutes les sessions

L’exemple de code suivant illustre la création du ServiceBusProcessorClient qui traite toutes les sessions disponibles dans la file d’attente. ServiceBusSessionProcessorClientBuilder#maxConcurrentSessions(int) indique le nombre de sessions que le processeur traitera en même temps. Les informations d’identification utilisées sont pour l’authentification DefaultAzureCredential . Il convient à la plupart des scénarios, y compris aux environnements de développement et de production locaux. PEEK_LOCK et disableAutoComplete() sont fortement recommandés afin que les utilisateurs aient le contrôle sur le règlement des messages.

// Function that gets called whenever a message is received.
 Consumer<ServiceBusReceivedMessageContext> onMessage = context -> {
     ServiceBusReceivedMessage message = context.getMessage();
     System.out.printf("Processing message. Session: %s, Sequence #: %s. Contents: %s%n",
         message.getSessionId(), message.getSequenceNumber(), message.getBody());
 };

 Consumer<ServiceBusErrorContext> onError = context -> {
     System.out.printf("Error when receiving messages from namespace: '%s'. Entity: '%s'%n",
         context.getFullyQualifiedNamespace(), context.getEntityPath());

     if (context.getException() instanceof ServiceBusException) {
         ServiceBusException exception = (ServiceBusException) context.getException();

         System.out.printf("Error source: %s, reason %s%n", context.getErrorSource(),
             exception.getReason());
     } else {
         System.out.printf("Error occurred: %s%n", context.getException());
     }
 };

 TokenCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

 // Create the processor client via the builder and its sub-builder
 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 ServiceBusProcessorClient sessionProcessor = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, tokenCredential)
     .sessionProcessor()
     .queueName(sessionEnabledQueueName)
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .disableAutoComplete()
     .maxConcurrentSessions(2)
     .processMessage(onMessage)
     .processError(onError)
     .buildProcessorClient();

 // Starts the processor in the background. Control returns immediately.
 sessionProcessor.start();

 // Stop processor and dispose when done processing messages.
 sessionProcessor.stop();
 sessionProcessor.close();

Partage de connexion

La création d’une connexion à Service Bus nécessite des ressources. Si votre architecture le permet, une application doit partager la connexion entre les clients, ce qui peut être obtenu en partageant le générateur de niveau supérieur, comme indiqué ci-dessous.

Partage d’une connexion entre les clients

TokenCredential credential = new DefaultAzureCredentialBuilder().build();

 // 'fullyQualifiedNamespace' will look similar to "{your-namespace}.servicebus.windows.net"
 // Any clients created from this builder will share the underlying connection.
 ServiceBusClientBuilder sharedConnectionBuilder = new ServiceBusClientBuilder()
     .credential(fullyQualifiedNamespace, credential);

 // Create receiver and sender which will share the connection.
 ServiceBusReceiverClient receiver = sharedConnectionBuilder
     .receiver()
     .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
     .queueName(queueName)
     .buildClient();
 ServiceBusSenderClient sender = sharedConnectionBuilder
     .sender()
     .queueName(queueName)
     .buildClient();

 // Use the clients and finally close them.
 try {
     sender.sendMessage(new ServiceBusMessage("payload"));
     receiver.receiveMessages(1);
 } finally {
     // Clients should be long-lived objects as they require resources
     // and time to establish a connection to the service.
     sender.close();
     receiver.close();
 }

Récapitulatif du constructeur

Constructeur Description
ServiceBusClientBuilder()

Crée une instance avec le transport AMQPpar défaut .

Résumé de la méthode

Modificateur et type Méthode et description
ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Définit le ClientOptions à envoyer à partir du client créé à partir de ce générateur, ce qui permet la personnalisation de certaines propriétés et prend en charge l’ajout d’informations d’en-tête personnalisées.

ServiceBusClientBuilder configuration(Configuration configuration)

Définit le magasin de configuration utilisé pendant la construction du client de service.

ServiceBusClientBuilder connectionString(String connectionString)

Définit le chaîne de connexion d’un espace de noms Service Bus ou d’une ressource Service Bus spécifique.

ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Définit les informations d’identification avec les stratégies d’accès partagé pour la ressource Service Bus.

ServiceBusClientBuilder credential(AzureSasCredential credential)

Définit les informations d’identification avec la signature d’accès partagé pour la ressource Service Bus.

ServiceBusClientBuilder credential(TokenCredential credential)

Définit le TokenCredential utilisé pour autoriser les requêtes envoyées au service.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Définit les informations d’identification avec les stratégies d’accès partagé pour la ressource Service Bus.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Définit les informations d’identification avec la signature d’accès partagé pour la ressource Service Bus.

ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Définit les informations d’identification à l’aide d’un TokenCredential pour la ressource Service Bus.

ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Définit une adresse de point de terminaison personnalisée lors de la connexion au service Service Bus.

ServiceBusClientBuilder enableCrossEntityTransactions()

Activez la transaction entre entités sur la connexion à Service Bus.

ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Définit l’espace de noms complet pour Service Bus.

ServiceBusProcessorClientBuilder processor()

Nouvelle instance de ServiceBusProcessorClientBuilder utilisée pour configurer ServiceBusProcessorClient instance.

ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Définit la configuration du proxy à utiliser pour ServiceBusSenderAsyncClient.

ServiceBusReceiverClientBuilder receiver()

Nouvelle instance de utilisée pour configurer les récepteurs de ServiceBusReceiverClientBuilder messages Service Bus.

ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Définit les options de nouvelle tentative pour les clients Service Bus.

ServiceBusRuleManagerBuilder ruleManager()

Nouvelle instance de ServiceBusRuleManagerBuilder utilisée pour configurer un instance de gestionnaire de règles Service Bus.

ServiceBusSenderClientBuilder sender()

Nouvelle instance de utilisée pour configurer les expéditeurs de ServiceBusSenderClientBuilder messages Service Bus.

ServiceBusSessionProcessorClientBuilder sessionProcessor()

Nouvelle instance utilisée ServiceBusSessionProcessorClientBuilder pour configurer un instance de processeur Service Bus qui traite les sessions.

ServiceBusSessionReceiverClientBuilder sessionReceiver()

Nouvelle instance de utilisée pour configurer des récepteurs de ServiceBusSessionReceiverClientBuilder messages Service Bus prenant en charge la session.

ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Définit le type de transport par lequel toutes les communications avec Azure Service Bus se produisent.

Méthodes héritées de java.lang.Object

Détails du constructeur

ServiceBusClientBuilder

public ServiceBusClientBuilder()

Crée une instance avec le transport AMQPpar défaut .

Détails de la méthode

clientOptions

public ServiceBusClientBuilder clientOptions(ClientOptions clientOptions)

Définit le ClientOptions à envoyer à partir du client créé à partir de ce générateur, ce qui permet la personnalisation de certaines propriétés et prend en charge l’ajout d’informations d’en-tête personnalisées. Pour plus d’informations, reportez-vous à la ClientOptions documentation.

Parameters:

clientOptions - à définir sur le client.

Returns:

Objet mis à jour ServiceBusClientBuilder .

configuration

public ServiceBusClientBuilder configuration(Configuration configuration)

Définit le magasin de configuration utilisé pendant la construction du client de service. S’il n’est pas spécifié, le magasin de configuration par défaut est utilisé pour configurer les clients Service Bus. Utilisez NONE pour contourner l’utilisation des paramètres de configuration pendant la construction.

Parameters:

configuration - Magasin de configuration utilisé pour configurer les clients Service Bus.

Returns:

Objet mis à jour ServiceBusClientBuilder .

connectionString

public ServiceBusClientBuilder connectionString(String connectionString)

Définit le chaîne de connexion d’un espace de noms Service Bus ou d’une ressource Service Bus spécifique.

Parameters:

connectionString - Chaîne de connexion pour un espace de noms Service Bus ou une ressource Service Bus spécifique.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(AzureNamedKeyCredential credential)

Définit les informations d’identification avec les stratégies d’accès partagé pour la ressource Service Bus. Vous trouverez les stratégies d’accès partagé sur le portail Azure ou Azure CLI. Par instance, sur le portail, « Stratégies d’accès partagé » a « stratégie » et « Clé primaire » et « Clé secondaire ». L’attribut « name » de est AzureNamedKeyCredential la « stratégie » sur le portail et l’attribut « key » peut être « Clé primaire » ou « Clé secondaire ». Cette méthode et connectionString(String connectionString) prendre les mêmes informations sous différentes formes. Mais cela vous permet de mettre à jour le nom et la clé.

Parameters:

credential - AzureNamedKeyCredential à utiliser pour l’authentification.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(AzureSasCredential credential)

Définit les informations d’identification avec la signature d’accès partagé pour la ressource Service Bus. Reportez-vous à Contrôle d’accès Service Bus avec signatures d’accès partagé.

Parameters:

credential - AzureSasCredential à utiliser pour l’authentification.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(TokenCredential credential)

Définit le TokenCredential utilisé pour autoriser les requêtes envoyées au service. Pour plus d’informations sur l’utilisation appropriée du type, consultez la documentation sur l’identité et l’authentification du TokenCredential Kit de développement logiciel (SDK) Azure pour Java.

Parameters:

credential - Informations d’identification du jeton à utiliser pour l’authentification. Les contrôles d’accès peuvent être spécifiés par l’espace de noms ServiceBus ou l’entité Service Bus demandée, en fonction de la configuration Azure.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureNamedKeyCredential credential)

Définit les informations d’identification avec les stratégies d’accès partagé pour la ressource Service Bus. Vous trouverez les stratégies d’accès partagé sur le portail Azure ou Azure CLI. Par instance, sur le portail, « Stratégies d’accès partagé » a « stratégie » et « Clé primaire » et « Clé secondaire ». L’attribut « name » de est AzureNamedKeyCredential la « stratégie » sur le portail et l’attribut « key » peut être « Clé primaire » ou « Clé secondaire ». Cette méthode et connectionString(String connectionString) prendre les mêmes informations sous différentes formes. Mais cela vous permet de mettre à jour le nom et la clé.

Parameters:

fullyQualifiedNamespace - Espace de noms complet pour Service Bus.
credential - AzureNamedKeyCredential à utiliser pour l’authentification.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, AzureSasCredential credential)

Définit les informations d’identification avec la signature d’accès partagé pour la ressource Service Bus. Reportez-vous à Contrôle d’accès Service Bus avec signatures d’accès partagé.

Parameters:

fullyQualifiedNamespace - Espace de noms complet pour Service Bus.
credential - AzureSasCredential à utiliser pour l’authentification.

Returns:

Objet mis à jour ServiceBusClientBuilder .

credential

public ServiceBusClientBuilder credential(String fullyQualifiedNamespace, TokenCredential credential)

Définit les informations d’identification à l’aide d’un TokenCredential pour la ressource Service Bus. azure-identity a plusieurs TokenCredential implémentations qui peuvent être utilisées pour authentifier l’accès à la ressource Service Bus.

Parameters:

fullyQualifiedNamespace - Espace de noms complet pour Service Bus.
credential - Informations d’identification du jeton à utiliser pour l’authentification. Les contrôles d’accès peuvent être spécifiés par l’espace de noms ServiceBus ou l’entité Service Bus demandée, en fonction de la configuration Azure.

Returns:

Objet mis à jour ServiceBusClientBuilder .

customEndpointAddress

public ServiceBusClientBuilder customEndpointAddress(String customEndpointAddress)

Définit une adresse de point de terminaison personnalisée lors de la connexion au service Service Bus. Cela peut être utile lorsque votre réseau n’autorise pas la connexion à l’adresse de point de terminaison standard Azure Service Bus, mais autorise la connexion via un intermédiaire. Par exemple : https://my.custom.endpoint.com:55300.

Si aucun port n’est spécifié, le port par défaut de est transportType(AmqpTransportType transportType) utilisé.

Parameters:

customEndpointAddress - Adresse de point de terminaison personnalisée.

Returns:

Objet mis à jour ServiceBusClientBuilder .

enableCrossEntityTransactions

public ServiceBusClientBuilder enableCrossEntityTransactions()

Activez la transaction entre entités sur la connexion à Service Bus. Utilisez cette fonctionnalité uniquement lorsque l’étendue de votre transaction s’étend sur différentes entités Service Bus. Cette fonctionnalité est obtenue en acheminant tous les messages via une entité « send-via » côté serveur, comme expliqué ci-dessous. Une fois les clients créés pour plusieurs entités, la première entité sur laquelle une opération se produit devient l’entité via laquelle tous les envois suivants seront acheminés par le biais de l’entité « send-via ». Cela permet au service d’effectuer une transaction destinée à couvrir plusieurs entités. Cela signifie que les entités suivantes qui effectuent leur première opération doivent être des expéditeurs ou, s’il s’agit de récepteurs, elles doivent être sur la même entité que l’entité initiale via laquelle tous les envois sont acheminés (sinon, le service ne serait pas en mesure de garantir que la transaction est validée, car il ne peut pas acheminer une opération de réception via une autre entité). Par instance, si vous avez SenderA (pour l’entité A) et ReceiverB (pour l’entité B) créés à partir d’un client avec les transactions inter-entités activées, vous devez d’abord recevoir avec ReceiverB pour permettre ce fonctionnement. Si vous envoyez d’abord à l’entité A, puis que vous tentez de recevoir à partir de l’entité B, une exception est levée.

Évitez d’utiliser l’API non transactionnelle sur ce client

Étant donné que cette fonctionnalité configure la connexion à Service Bus optimisée pour activer cette fonctionnalité. Une fois tous les clients configurés, le premier destinataire ou expéditeur utilisé initialise la file d’attente « send-via » en tant qu’entité de transfert de messages unique. Tous les messages circuleront via cette file d’attente. Par conséquent, ce client n’est adapté à aucune API non transactionnelle.

Quand ne pas activer cette fonctionnalité

Si votre transaction est impliquée dans une seule entité Service bus. Par exemple, vous recevez d’une file d’attente/d’un abonnement et vous souhaitez régler vos propres messages qui font partie d’une transaction.

Returns:

Objet mis à jour ServiceBusSenderClientBuilder .

fullyQualifiedNamespace

public ServiceBusClientBuilder fullyQualifiedNamespace(String fullyQualifiedNamespace)

Définit l’espace de noms complet pour Service Bus.

Parameters:

fullyQualifiedNamespace - Espace de noms complet pour Service Bus.

Returns:

Objet mis à jour ServiceBusClientBuilder .

processor

public ServiceBusClientBuilder.ServiceBusProcessorClientBuilder processor()

Nouvelle instance de ServiceBusProcessorClientBuilder utilisée pour configurer ServiceBusProcessorClient instance.

Returns:

Nouvelle instance de ServiceBusProcessorClientBuilder.

proxyOptions

public ServiceBusClientBuilder proxyOptions(ProxyOptions proxyOptions)

Définit la configuration du proxy à utiliser pour ServiceBusSenderAsyncClient. Lorsqu’un proxy est configuré, AMQP_WEB_SOCKETS doit être utilisé pour le type de transport.

Parameters:

proxyOptions - Configuration du proxy à utiliser.

Returns:

Objet mis à jour ServiceBusClientBuilder .

receiver

public ServiceBusClientBuilder.ServiceBusReceiverClientBuilder receiver()

Nouvelle instance de utilisée pour configurer les récepteurs de ServiceBusReceiverClientBuilder messages Service Bus.

Returns:

Nouvelle instance de ServiceBusReceiverClientBuilder.

retryOptions

public ServiceBusClientBuilder retryOptions(AmqpRetryOptions retryOptions)

Définit les options de nouvelle tentative pour les clients Service Bus. Si elle n’est pas spécifiée, les options de nouvelle tentative par défaut sont utilisées.

Parameters:

retryOptions - Options de nouvelle tentative à utiliser.

Returns:

Objet mis à jour ServiceBusClientBuilder .

ruleManager

public ServiceBusClientBuilder.ServiceBusRuleManagerBuilder ruleManager()

Nouvelle instance de ServiceBusRuleManagerBuilder utilisée pour configurer un instance de gestionnaire de règles Service Bus.

Returns:

Nouvelle instance de ServiceBusRuleManagerBuilder.

sender

public ServiceBusClientBuilder.ServiceBusSenderClientBuilder sender()

Nouvelle instance de utilisée pour configurer les expéditeurs de ServiceBusSenderClientBuilder messages Service Bus.

Returns:

Nouvelle instance de ServiceBusSenderClientBuilder.

sessionProcessor

public ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder sessionProcessor()

Nouvelle instance utilisée ServiceBusSessionProcessorClientBuilder pour configurer un instance de processeur Service Bus qui traite les sessions.

Returns:

Nouvelle instance de ServiceBusSessionProcessorClientBuilder.

sessionReceiver

public ServiceBusClientBuilder.ServiceBusSessionReceiverClientBuilder sessionReceiver()

Nouvelle instance de utilisée pour configurer des récepteurs de ServiceBusSessionReceiverClientBuilder messages Service Bus prenant en charge la session.

Returns:

Nouvelle instance de ServiceBusSessionReceiverClientBuilder.

transportType

public ServiceBusClientBuilder transportType(AmqpTransportType transportType)

Définit le type de transport par lequel toutes les communications avec Azure Service Bus se produisent. La valeur par défaut est AMQP.

Parameters:

transportType - Type de transport à utiliser.

Returns:

Objet mis à jour ServiceBusClientBuilder .

S’applique à