Résolution des problèmes de connectivité et autres erreurs avec Azure SQL Database et Azure SQL Managed Instance

S’applique à : Azure SQL DatabaseAzure SQL Managed Instance

En cas d’échec de la connexion à Azure SQL Database ou Azure SQL Managed Instance, vous recevez des messages d’erreur. Ces problèmes de connexion peuvent être dus à une reconfiguration, aux paramètres du pare-feu, au délai d’expiration de la connexion, à des informations de connexion incorrectes ou à l’impossibilité d’appliquer les meilleures pratiques et les lignes directrices de conception lors du processus de conception de l’application. En outre, vous ne pourrez plus vous connecter si la limite de certaines de ses ressources Azure SQL Database ou SQL Managed Instance est atteinte.

Notes

Vous pouvez utiliser la fonctionnalité de vérification de la connectivité Azure SQL pour détecter et corriger un large éventail d’erreurs de connectivité pour Azure SQL Database, Azure SQL Managed Instance et dans les environnements Azure Synapse Analytics.

Messages d’erreur pour les erreurs temporaires (40197, 40613 et autres)

L’infrastructure Azure a la capacité de reconfigurer dynamiquement les serveurs quand des charges de travail importantes sont à traiter dans le service SQL Database. Ce comportement dynamique peut entraîner la perte par votre programme client de sa connexion à la base de données ou à l’instance. Ce type d’erreur état est connu sous le nom d’ erreur temporaire. Les événements de reconfiguration de la base de données sont liés à un événement planifié (par exemple, une mise à niveau logicielle) ou à un événement non planifié (par exemple, un arrêt de processus ou un équilibrage de charge). La plupart des événements de reconfiguration sont généralement de courte durée et se terminent en l’espace de 60 secondes maximum. Cependant, ces événements peuvent parfois prendre plus de temps, par exemple lorsqu’une transaction volumineuse entraîne une récupération de longue durée. Le tableau suivant liste les différentes erreurs temporaires que les applications peuvent recevoir lors de la connexion à Azure SQL Database.

Liste de codes d’erreur pour les erreurs temporaires

Code d'erreur severity Description
926 14 La base de données « replicatedmaster » n’a pas pu être ouverte. Elle a été marquée SUSPECT lors de la récupération. Pour plus d’informations, consultez le journal des erreurs SQL Server.

Cette erreur peut être journalisée dans le journal des erreurs SQL Managed Instance pour une courte période à la dernière étape d’une reconfiguration quand l’ancienne base de donnée primaire arrête son journal.
D’autres scénarios non temporaires impliquant ce message d’erreur sont décrits dans la documentation sur les erreurs MSSQL.
4060 16 Impossible d'ouvrir la base de données "%.*ls" demandée par la connexion. La connexion a échoué. Pour plus d’informations, consultez Erreurs 4000 à 4999
40197 17 Le service a rencontré une erreur lors du traitement de votre demande. Réessayez. Code d'erreur % d.

Vous recevez cette erreur lorsque le service est arrêté en raison de mises à niveau logicielles ou matérielles, de pannes de matériel ou tout autre problème de basculement. Le code d'erreur (%d) incorporé au message d'erreur 40197 fournit des informations supplémentaires sur le type de défaillance ou de basculement survenu. 40020, 40143, 40166 et 40540 sont des exemples de codes d'erreur incorporés au message d'erreur 40197.

La reconnexion vous reconnecte automatiquement à une copie saine de votre base de données. Votre application doit détecter l'erreur 40197, consigner le code d'erreur incorporé (%d) dans le message pour la résolution des problèmes, et essayer de se reconnecter à la base de données SQL jusqu'à ce que les ressources soient disponibles et que votre connexion soit rétablie. Pour plus d’informations, consultez Erreurs temporaires.
40501 20 Le service est actuellement occupé. Relancez la demande dans 10 secondes. ID de l'incident : %ls. Code : %d. Pour plus d’informations, consultez :
Limites de ressources du SQL Server logique.
Limites de DTU pour les bases de données uniques.
Limites de DTU pour les pools élastiques.
Limites de vCores pour les bases de données uniques.
Limites de vCores pour les pools élastiques.
Limites des ressources d’Azure SQL Managed Instance.
40613 17 La base de données '%.*ls' sur le serveur '%.*ls' n'est pas disponible actuellement. Veuillez réessayer la connexion ultérieurement. Si le problème persiste, contactez le support technique en indiquant l'ID de suivi de session de '%.*ls'.

Cette erreur peut se produire s’il existe déjà une connexion d’administrateur dédiée à la base de données. Pour plus d’informations, consultez Erreurs temporaires.
49918 16 Impossible de traiter la requête. Ressources insuffisantes pour traiter la demande.

Le service est actuellement occupé. Relancez la requête ultérieurement. Pour plus d’informations, consultez :
Limites de ressources du SQL Server logique.
Limites de DTU pour les bases de données uniques.
Limites de DTU pour les pools élastiques.
Limites de vCores pour les bases de données uniques.
Limites de vCores pour les pools élastiques.
Limites des ressources d’Azure SQL Managed Instance.
49919 16 Processus ne peut pas créer ou mettre à jour de la demande. Opérations de mise à jour ou de création en cours pour l'abonnement « % ld » trop nombreuses.

Le service est occupé à traiter plusieurs demandes de création ou de mise à jour pour votre abonnement ou le serveur. Les requêtes sont actuellement bloquées pour l’optimisation des ressources. Requête sys.dm_operation_status pour les opérations en attente. Patientez jusqu’à ce que les demandes de création ou de mise à jour soient terminées ou supprimez l’une de vos requêtes en cours et réessayez votre requête ultérieurement. Si vos opérations semblent bloquées, attendez que d’autres opérations en cours se terminent ou, si possible, annulez-les. Par exemple, vous pouvez annuler une copie de base de données ou une création de géoréplica en supprimant la base de données ou le réplica en cours de création. Si vous ne parvenez pas à annuler une opération apparemment bloquée, ouvrez un ticket de support auprès de Microsoft.
49920 16 Impossible de traiter la requête. Opérations en cours pour l'abonnement « % ld » trop nombreuses.

Le service est occupé à traiter plusieurs demandes pour cet abonnement. Les requêtes sont actuellement bloquées pour l’optimisation des ressources. Requête sys.dm_operation_status pour l'état de l'opération. Patientez jusqu’à ce que les requêtes soient terminées ou supprimez l’une de vos requêtes en cours et réessayez votre requête ultérieurement. Si vos opérations semblent bloquées, attendez que d’autres opérations en cours se terminent ou, si possible, annulez-les. Par exemple, vous pouvez annuler une copie de base de données ou une création de géoréplica en supprimant la base de données ou le réplica en cours de création. Si vous ne parvenez pas à annuler une opération apparemment bloquée, ouvrez un ticket de support auprès de Microsoft.
4221 16 La connexion au serveur de lecture secondaire a échoué en raison d’une longue attente sur 'HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING'. Le réplica n’est pas disponible pour la connexion, car il manque des versions de ligne pour les transactions qui étaient en cours lorsque le réplica a été recyclé. Le problème peut être résolu en restaurant ou en validant les transactions actives au niveau du réplica principal. Les occurrences de cette erreur peuvent être réduites en évitant les transactions d’écriture longues sur le serveur principal.
615 21 L’ID de base de données %d, nom '%.*ls', est introuvable. Code d’erreur 615.
Cela signifie que le cache en mémoire n’est pas synchronisé avec l’instance de serveur SQL et que les recherches récupèrent un ID de base de données obsolète.

Les connexions SQL utilisent le cache de mémoire pour obtenir le nom de la base de données et le mappage d’ID. Le cache doit être synchronisé avec la base de données principale et mis à jour chaque fois que la base de données est attachée à l’instance de serveur SQL ou détachée de celle-ci.
Cette erreur se produit quand le workflow de détachement ne parvient pas à nettoyer le cache en mémoire à temps et que les recherches suivantes dans la base de données pointent vers un ID de base de données obsolète.

Essayez de vous reconnecter à SQL Database jusqu’à ce que la ressource soit disponible et que la connexion soit rétablie. Pour plus d’informations, consultez Erreurs temporaires.

Étapes pour résoudre les problèmes de connectivité transitoire

  1. Consultez le tableau de bord du service Microsoft Azure pour obtenir la liste des coupures prévues qui se sont produites au moment où les erreurs ont été signalées par l’application.
  2. Les applications qui se connectent à un service cloud, tel qu’Azure SQL Database, doivent s’attendre à des événements périodiques de reconfiguration et implémenter une logique de nouvelle tentative pour gérer ces erreurs au lieu d’afficher ces événements en tant qu’erreurs de l’application aux utilisateurs.
  3. Lorsqu’une base de données approche des limites de ressources, cela peut s’apparenter à un problème de connectivité transitoire. Consultez l’article Limites des ressources.
  4. Si les problèmes de connectivité persistent ou si la durée pendant laquelle votre application rencontre une erreur dépasse les 60 secondes ou si plusieurs occurrences de l’erreur s’affichent dans un jour donné, créez une demande de support Azure en sélectionnant Obtenir de l’aide sur le site du support Azure .

Implémenter la logique de nouvelle tentative

Il est fortement recommandé que votre programme client possède une logique de nouvelle tentative afin qu’il puisse rétablir une connexion après avoir donné à l’erreur temporaire le temps de se corriger elle-même. Nous vous recommandons de patienter 5 secondes avant votre première tentative. Si vous effectuez une nouvelle tentative avant 5 secondes, vous risquez de submerger le service cloud. Pour chaque nouvelle tentative, le délai doit augmenter de manière exponentielle, sans dépasser 60 secondes.

Pour obtenir des exemples de code de logique de nouvelle tentative, voir :

Pour plus d’informations sur la gestion des erreurs temporaires dans votre application, consultez Résolution des erreurs temporaires de connexion à SQL Database

Pour en savoir plus sur la période de blocage des clients qui utilisent ADO.NET, consultez la page Regroupement de connexions (ADO.NET).

Ce problème se produit si l’application ne peut pas se connecter au serveur.

Pour le résoudre, suivez la procédure pas-à-pas de la section intitulée Étapes pour résoudre les problèmes de connexion courants.

Le serveur/l’instance est introuvable ou inaccessible (erreurs 26, 40, 10053)

Erreur 26 : Erreur lors de la localisation du serveur spécifié

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.(provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

Erreur 40 : Impossible d’ouvrir une connexion au serveur

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Erreur 10053 : Une erreur de niveau transport s’est produite lors de la réception des résultats à partir du serveur.

10053: A transport-level error has occurred when receiving results from the server. (Provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine)

Ces problèmes se produisent si l’application ne peut pas se connecter au serveur.

Pour les résoudre, suivez la procédure pas-à-pas de la section intitulée Étapes pour résoudre les problèmes de connexion courants.

Impossible de se connecter au serveur en raison de problèmes de pare-feu

Erreur 40615 : Impossible de se connecter à <nom_serveur>

Pour résoudre ce problème, configurez les paramètres du pare-feu sur SQL Database via le Portail Azure.

Erreur 5 : Impossible de se connecter à <nom_serveur>

Pour résoudre ce problème, vérifiez que le port 1433 est ouvert pour les connexions sortantes sur tous les pare-feu situés entre le client et Internet.

Impossible de se connecter au serveur (Erreurs 18456, 40531)

Échec de la connexion pour l’utilisateur '<nom_utilisateur>'

Login failed for user '<User name>'.This session has been assigned a tracing ID of '<Tracing ID>'. Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 18456)

Pour résoudre ce problème, contactez votre administrateur de service afin d’obtenir un nom d’utilisateur et un mot de passe valides.

En règle générale, l’administrateur de service peut utiliser les étapes suivantes pour ajouter les informations d’identification de connexion :

  1. Connectez-vous au serveur à l’aide de SQL Server Management Studio (SSMS).

  2. Exécutez la requête SQL suivante dans la base de données master pour vérifier si le nom de connexion est bien désactivé :

    SELECT name, is_disabled FROM sys.sql_logins;
    
  3. Si le nom correspondant est désactivé, activez-le à l’aide de l’instruction suivante :

    ALTER LOGIN <User name> ENABLE;
    
  4. Si le nom d’utilisateur de la connexion SQL n’existe pas, modifiez et exécutez la requête SQL suivante pour créer une connexion SQL :

    CREATE LOGIN <SQL_login_name, sysname, login_name>
    WITH PASSWORD = '<password, sysname, Change_Password>';
    GO
    
  5. Dans l’Explorateur d’objets SSMS, développez Bases de données.

  6. Sélectionnez la base de données dont vous souhaitez autoriser l’accès.

  7. Cliquez avec le bouton droit sur Sécurité, puis sélectionnez Nouveau, Utilisateur.

  8. Remplacez les paramètres de modèle dans le script généré avec des espaces réservés (exemple ci-dessous) en effectuant les étapes décrites ici, puis exécutez-le :

    CREATE USER [<user_name, sysname, user_name>]
    FOR LOGIN [<login_name, sysname, login_name>]
    WITH DEFAULT_SCHEMA = [<default_schema, sysname, dbo>];
    GO
    
    -- Add user to the database owner role
    EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>';
    GO
    

    Vous pouvez également utiliser sp_addrolemember pour mapper des utilisateurs spécifiques à des rôles de base de données spécifiques.

    Notes

    Dans Azure SQL Database, utilisez la dernière syntaxe ALTER ROLE pour la gestion de l’appartenance au rôle de base de données.

Pour en savoir plus, consultez Gestion des bases de données et des connexions dans Azure SQL Database.

Erreurs de délai d’expiration de connexion

System.Data.SqlClient.SqlException (0x80131904) : Délai d’expiration de la connexion dépassé

System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3; handshake=29995;

System.Data.SqlClient.SqlException (0x80131904) : Délai expiré

System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

System.Data.Entity.Core.EntityException: Échec du fournisseur sous-jacent sur Ouverture

System.Data.Entity.Core.EntityException: The underlying provider failed on Open. -> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. -> System.ComponentModel.Win32Exception: The wait operation timed out

Impossible de se connecter à <nom_serveur>

Cannot connect to <server name>.ADDITIONAL INFORMATION:Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=231; handshake=983; [Login] initialization=0; authentication=0; [Post-Login] complete=13000; (Microsoft SQL Server, Error: -2) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2&LinkId=20476 The wait operation timed out

Ces exceptions peuvent se produire en raison de problèmes de connexion ou de requête. Pour confirmer que cette erreur est due à des problèmes de connectivité, consultez la section Vérifier si une erreur est due à un problème de connectivité.

Des expirations de délai de connexion se produisent car l’application ne peut pas se connecter au serveur. Pour le résoudre, suivez la procédure pas-à-pas de la section intitulée Étapes pour résoudre les problèmes de connexion courants.

Erreurs d’arrêt de la connexion réseau

Les bibliothèques clientes SQL se connectent à Azure SQL Database et à Azure SQL Managed Instance à l’aide du protocole réseau TCP. Une bibliothèque cliente utilise un composant de niveau inférieur appelé fournisseur TCP pour gérer les connexions TCP. Lorsque le fournisseur TCP détecte qu’un hôte distant a arrêté de manière inattendue une connexion TCP existante, la bibliothèque cliente génère une erreur. Étant donné que l’erreur est une erreur cliente et non une erreur SQL Server, aucun numéro d’erreur SQL n’est inclus. À la place, le numéro d’erreur est 0 et le message d’erreur du fournisseur TCP est utilisé.

Voici quelques exemples d’erreurs d’arrêt de la connexion réseau :

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) An existing connection was forcibly closed by the remote host

A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

The client was unable to establish a connection because of an error during connection initialization process before login. Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy to accept new connections; or there was a resource limitation (insufficient memory or maximum allowed connections) on the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

Des erreurs d’arrêt de la connexion peuvent se produire parce que la base de données ou le pool élastique est temporairement indisponible. Elles peuvent également se produire en raison de divers problèmes dans l’infrastructure réseau entre le serveur de base de données et l’application cliente, notamment les pare-feux, les appliances réseau, etc. Ces problèmes peuvent être temporaires ou permanents. En règle générale, les applications doivent utiliser un nombre fixe de nouvelles tentatives pour ces erreurs avant de les considérer comme des échecs permanents.

Erreurs de gouvernance des ressources

Azure SQL Database utilise une implémentation de gouvernance des ressources basée sur Resource Governor pour appliquer des limites de ressources. En savoir plus sur la gestion des ressources dans Azure SQL Database.

Les erreurs de gouvernance des ressources les plus courantes sont répertoriées en premier, avec des détails, suivies d’un tableau des messages d’erreur de gouvernance des ressources.

Erreurs 10928 et 10936 : ID de ressource : 1. La limite de requêtes pour [base de données ou pool élastique] est %d et a été atteinte

Si la limite au niveau de la base de données est atteinte, le message d’erreur détaillé dans ce cas indique : Resource ID : 1. The request limit for the database is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance.

Si la limite du pool élastique est atteinte, le message d’erreur détaillé dans ce cas indique : Resource ID : 1. The request limit for the elastic pool is %d and has been reached. See 'http://go.microsoft.com/fwlink/?LinkId=267637' for assistance. Les limites du pool élastique sont supérieures aux limites de la base de données. Pour plus d’informations, consultez Limites de ressource. Elles peuvent être atteintes lorsque plusieurs bases de données du pool utilisent simultanément une ressource (comme les workers).

Ce message d’erreur indique que le nombre limite de workers pour la base de données ou le pool élastique a été atteint. La valeur maximale des workers simultanés pour l’objectif de service de la base de données ou du pool élastique sera présente au lieu de l’espace réservé %d.

Notes

L’offre initiale d’Azure SQL Database prenait en charge uniquement les requêtes à thread unique. À ce moment-là, le nombre de demandes était toujours équivalent au nombre de workers. Les messages d’erreur 10928 et 10936 dans Azure SQL Database contiennent la formulation « La limite de requêtes [...] est N et elle a été atteinte » à des fins de compatibilité descendante. La limite atteinte est en réalité le nombre de workers. Si votre paramètre Degré maximal de parallélisme (MAXDOP) est égal à zéro ou supérieur à un, le nombre de workers peut être beaucoup plus élevé que le nombre de demandes, et la limite peut être atteinte beaucoup plus tôt que lorsque MAXDOP est égal à 1.

Découvrez-en plus sur les sessions, workers et demandes.

Se connecter avec la connexion administrateur dédiée (DAC) si nécessaire

Si un incident survient et que le nombre limite de workers est proche ou atteint, vous pouvez obtenir l’erreur 10928 quand vous vous connectez à l’aide de SQL Server Management Studio (SSMS) ou d’Azure Data Studio. Une seule session peut se connecter à l’aide de la connexion de diagnostic pour les administrateurs de base de données (DAC) même lorsque le seuil maximal de workers est atteint.

Pour établir une connexion avec DAC à partir de SSMS :

  • Dans le menu, sélectionnez Fichier > Nouveau > Requête de moteur de base de données.
  • Dans la boîte de dialogue de connexion, dans le champ Nom du serveur, entrez admin:<fully_qualified_server_name> (ce qui ressemble quelque peu à admin:servername.database.windows.net).
  • Sélectionnez Options >>
  • Sélectionnez l’onglet Propriétés de la connexion.
  • Dans la zone Connecter à la base de données :, tapez le nom de votre base de données.
  • Sélectionnez Connecter.

Si vous recevez l’erreur 40613, Database '%.&#x2a;ls' on server '%.&#x2a;ls' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of '%.&#x2a;ls', cela peut indiquer qu’une autre session est déjà connectée à DAC. Une seule session peut se connecter à DAC pour une seule base de données ou un pool élastique à la fois.

Si vous rencontrez l’erreur « Échec de la connexion au serveur » après avoir sélectionné Connecter, il est possible que la session DAC ait pu être établie avec succès si vous utilisez une version de SSMS antérieure à 18.9. Les versions antérieures de SSMS ont tenté de fournir IntelliSense pour les connexions à DAC. Cela a échoué, car la connexion DAC prend en charge un seul worker et IntelliSense nécessite un worker distinct.

Vous ne pouvez pas utiliser une connexion DAC avec l’Explorateur d’objets.

Passer en revue votre utilisation max_worker_percent

Pour rechercher les statistiques de consommation des ressources pour votre base de données pendant 14 jours, interrogez la vue de catalogue système sys.resource_stats. La colonne max_worker_percent indique le pourcentage de workers utilisés par rapport au nombre limite de workers pour votre base de données. Connectez-vous à la base de données master sur votre serveur logique pour interroger sys.resource_stats.

SELECT start_time, end_time, database_name, sku, avg_cpu_percent, max_worker_percent, max_session_percent 
FROM sys.resource_stats;

Vous pouvez également interroger les statistiques de consommation des ressources de la dernière heure à partir de la vue de gestion dynamique sys.dm_db_resource_stats. Connectez-vous directement à votre base de données pour interroger sys.dm_db_resource_stats.

SELECT end_time, avg_cpu_percent, max_worker_percent, max_session_percent
FROM sys.dm_db_resource_stats;

Réduire l’utilisation de workers lorsque cela est possible

Le blocage de chaînes peut provoquer une augmentation soudaine du nombre de workers dans une base de données. Un volume élevé de requêtes parallèles simultanées peut entraîner un grand nombre de workers. L’augmentation de votre degré maximal de parallélisme (MAXDOP) ou la définition de MAXDOP à zéro peut augmenter le nombre de workers actifs.

Triez un incident avec un nombre insuffisant de workers en procédant comme suit :

  1. Déterminez si un blocage est en cours ou si vous pouvez identifier un grand nombre de workers simultanés. Exécutez la requête suivante pour examiner les demandes en cours et vérifier si votre base de données retourne l’erreur 10928. Vous devrez peut-être vous connecter avec la connexion administrateur dédiée (DAC) pour exécuter la requête.

    SELECT
        r.session_id, r.request_id, r.blocking_session_id, r.start_time, 
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        (SELECT COUNT(*) 
            FROM sys.dm_os_tasks AS t 
            WHERE t.session_id=r.session_id and t.request_id=r.request_id) AS worker_count,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1;
    GO
    
    1. Recherchez les lignes avec un blocking_session_id pour identifier les sessions bloquées. Recherchez chaque blocking_session_id dans la liste pour déterminer si cette session est également bloquée. Cela vous mènera finalement au bloqueur d’en-tête. Paramétrez la requête du bloqueur d’en-tête.

      Notes

      Pour obtenir des informations plus complètes sur la résolution des problèmes liés aux requêtes à long terme ou de blocage, consultez Comprendre et résoudre les problèmes de blocage d’Azure SQL Database.

    2. Pour identifier un volume élevé de workers simultanés, examinez le nombre global de demandes et la colonne worker_count de chaque demande. Worker_count est le nombre de workers pendant la durée échantillonnée et il peut changer au fil de l’exécution de la demande. Optimisez les requêtes pour réduire l’utilisation des ressources si la raison de l’augmentation du nombre de workers est l’exécution de requêtes simultanées à leur degré de parallélisme optimal. Pour plus d’informations, consultez la page Paramétrage/Compréhension de requêtes.

  2. Évaluez le paramètre Degré maximal de parallélisme (MAXDOP) pour la base de données.

Augmenter le nombre limite de workers

Si la base de données ou le pool élastique atteint constamment sa limite de workers malgré la résolution des blocages, l’optimisation des requêtes et la validation de votre paramètre MAXDOP, envisagez d’effectuer un scale-up de la base de données ou du pool élastique pour augmenter le nombre limite de workers.

Recherchez les limites de ressources pour Azure SQL Database par niveau de service et taille de calcul :

Découvrez-en davantage sur la gouvernance des ressources Azure SQL Database des workers.

Erreur 10929 : ID de ressource : 1

10929: Resource ID: 1. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d. However, the server is currently too busy to support requests greater than %d for this database. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. Otherwise, please try again later.

Erreur 40501 : Le service est actuellement occupé.

40501: The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.

Il s’agit d’une erreur de limitation du moteur, indiquant que les limites de ressources sont dépassées.

Pour plus d’informations sur les limites de ressources, consultez Limites de ressources du serveur SQL logique.

Erreur 40544 : La base de données a atteint son quota de taille.

40544: The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Incident ID: <ID>. Code: <code>.

Cette erreur se produit quand la base de données a atteint son quota de taille.

La procédure suivante peut vous aider à contourner le problème ou vous fournir plus d’options :

  1. Vérifiez la taille actuelle de la base de données à l’aide du tableau de bord dans le portail Azure.

    Notes

    Pour identifier les tables qui consomment le plus d’espace et les candidats potentiels au nettoyage, exécutez la requête SQL suivante :

    SELECT o.name,
     SUM(p.row_count) AS 'Row Count',
     SUM(p.reserved_page_count) * 8.0 / 1024 AS 'Table Size (MB)'
    FROM sys.objects o
    JOIN sys.dm_db_partition_stats p on p.object_id = o.object_id
    GROUP BY o.name
    ORDER BY [Table Size (MB)] DESC;
    GO
    
  2. Si la taille actuelle ne dépasse pas la taille maximale prise en charge pour votre édition, vous pouvez utiliser ALTER DATABASE pour augmenter le paramètre MAXSIZE.

  3. Si la base de données dépasse déjà la taille maximale prise en charge pour votre édition, essayez l’une de ces procédures :

    • Nettoyez normalement votre base de données. Par exemple, nettoyez les données indésirables en utilisant truncate/delete. Vous pouvez aussi déplacer les données à l’aide de SQL Server Integration Services (SSIS) ou de l’utilitaire Bulk Copy Program (BCP).
    • Partitionnez ou supprimez des données, supprimez des index ou consultez la documentation pour connaître les résolutions possibles.
    • Pour plus d’informations sur la mise à l’échelle des bases de données, consultez Mettre à l’échelle des ressources de base de données unique et Mettre à l’échelle des ressources de pool élastique.

Erreur 40549 : La session est arrêtée, car l’une des transactions est de longue durée.

40549: Session is terminated because you have a long-running transaction. Try shortening your transaction.

Si cette erreur survient à plusieurs reprises, vous pouvez essayer de la résoudre en procédant ainsi :

  1. Exécutez la requête suivante pour voir les sessions ouvertes avec une valeur élevée pour la colonne duration_ms :

    SELECT
        r.start_time, DATEDIFF(ms,start_time, SYSDATETIME()) as duration_ms, 
        r.session_id, r.request_id, r.blocking_session_id,  
        r.status, r.command, DB_NAME(r.database_id) AS database_name,
        i.parameters, i.event_info AS input_buffer,
        r.last_wait_type, r.open_transaction_count, r.total_elapsed_time, r.cpu_time,
        r.logical_reads, r.writes, s.login_time, s.login_name, s.program_name, s.host_name
    FROM sys.dm_exec_requests as r
    JOIN sys.dm_exec_sessions as s on r.session_id=s.session_id
    OUTER APPLY sys.dm_exec_input_buffer (r.session_id,r.request_id) AS i
    WHERE s.is_user_process=1
    ORDER BY start_time ASC;
    GO
    

    Vous pouvez choisir d’ignorer les lignes dont la colonne input_buffer affiche la lecture d’une requête de sys.fn_MSxe_read_event_stream : ces demandes sont liées aux sessions d’événements étendus.

  2. Examinez la colonne blocking_session_id pour voir si le blocage contribue à des transactions à long terme.

    Notes

    Pour plus d’informations sur la résolution des problèmes de blocage dans Azure SQL Database, consultez Comprendre et résoudre les problèmes de blocage d’Azure SQL Database.

  3. Envisagez de traiter vos requêtes par lot. Pour plus d’informations sur le traitement par lot, consultez Comment utiliser le traitement par lot pour améliorer les performances des applications de base de données SQL.

Erreur 40551 : La session a été arrêtée en raison d’une utilisation excessive de tempdb

40551: The session has been terminated because of excessive TEMPDB usage. Try modifying your query to reduce the temporary table space usage.

Pour contourner ce problème, effectuez les étapes suivantes :

  1. Modifiez les requêtes afin de réduire l’utilisation de l’espace de table temporaire.
  2. Supprimez les objets temporaires une fois qu’ils ne sont plus nécessaires.
  3. Tronquez les tables ou supprimez les tables inutilisées.

Erreur 40552 : La session a été arrêtée en raison de l’utilisation excessive de l’espace réservé au journal des transactions

40552: The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.

Pour corriger ce problème, essayez les méthodes suivantes :

Erreur 40553 : La session a été arrêtée en raison d’une utilisation excessive de la mémoire

40553: The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.

Pour contourner ce problème, essayez d’optimiser la requête.

Pour obtenir une procédure de dépannage détaillée, consultez Is my query running fine in the cloud? (Ma requête s’exécute-t-elle correctement dans le cloud ?).

Pour plus d’informations sur d’autres erreurs de mémoire insuffisante et des exemples de requêtes, consultez Résoudre les erreurs de mémoire insuffisante avec Azure SQL Database.

Tableau des messages d’erreur de gouvernance des ressources

Code d'erreur severity Description
10928 20 ID de la ressource : %d. %d, la limite %s de la base de données a été atteinte. Pour obtenir de l’aide, consultez « http://go.microsoft.com/fwlink/?LinkId=267637 ».

L’ID de ressource indique la ressource qui a atteint la limite. Lorsque l’ID de ressource = 1, cela indique qu’un nombre limite de workers a été atteint. Apprenez-en davantage dans Erreur 10928 : ID de ressource : 1. La limite de requêtes pour la base de données est %d et elle a été atteinte. Lorsque l’ID de ressource = 2, cela indique que la limite de session a été atteinte.

Apprenez-en davantage sur les limites de ressources :
Limites de ressources du SQL Server logique.
Limites de DTU pour les bases de données uniques.
Limites de vCores pour les bases de données uniques.
Limites des ressources d’Azure SQL Managed Instance.
10936 20 ID de la ressource : %d. La limite %s pour le pool élastique est %d et a été atteinte. Pour obtenir de l’aide, consultez « http://go.microsoft.com/fwlink/?LinkId=267637 ».

L’ID de ressource indique la ressource qui a atteint la limite. Lorsque l’ID de ressource = 1, cela indique qu’un nombre limite de workers a été atteint. Apprenez-en davantage dans Erreur 10936 : ID de ressource : 1. La limite de requêtes pour le pool élastique est %d et elle a été atteinte. Lorsque l’ID de ressource = 2, cela indique que la limite de sessions a été atteinte.

Apprenez-en davantage sur les limites de ressources :
Limites de ressources du SQL Server logique.
Limites de DTU pour les pools élastiques.
Limites de vCores pour les pools élastiques.
Limites des ressources d’Azure SQL Managed Instance.
10929 20 ID de la ressource : %d. La garantie minimale de %s est %d ; la limite maximale est de %d et le taux d’utilisation actuel de la base de données est de %d. Toutefois, le serveur est trop occupé pour prendre en charge les requêtes supérieures à %d pour cette base de données. L’ID de ressource indique la ressource qui a atteint la limite. Pour les threads de travail, ID de la ressource = 1. Pour les sessions, l’ID de ressource = 2. Pour plus d’informations, consultez :
Limites de ressources du SQL Server logique.
Limites de DTU pour les bases de données uniques.
Limites de DTU pour les pools élastiques.
Limites de vCores pour les bases de données uniques.
Limites de vCores pour les pools élastiques.
Limites des ressources d’Azure SQL Managed Instance.
Sinon, réessayez plus tard.
40544 20 La base de données a atteint son quota de taille. Partitionnez ou supprimez des données, supprimez des index ou consultez la documentation pour connaître les résolutions possibles. Pour plus d’informations sur la mise à l’échelle des bases de données, consultez Mettre à l’échelle des ressources de base de données unique et Mettre à l’échelle des ressources de pool élastique.
40549 16 La session a pris fin, car elle contient une transaction à long terme. Essayez de diminuer la durée de la transaction. Pour plus d’informations sur le traitement par lot, consultez Comment utiliser le traitement par lot pour améliorer les performances des applications de base de données SQL.
40550 16 La session a pris fin car elle a acquis trop de verrous. Essayez de lire ou de modifier moins de lignes au cours d'une transaction. Pour plus d’informations sur le traitement par lot, consultez Comment utiliser le traitement par lot pour améliorer les performances des applications de base de données SQL.
40551 16 La session a été arrêtée en raison de l’utilisation excessive de tempdb . Essayez de modifier votre requête afin de réduire l'utilisation de l'espace de table temporaire.

Si vous utilisez des objets temporaires, conservez de l’espace dans la base de données tempdb en supprimant des objets temporaires une fois qu’ils ne sont plus nécessaires à la session. Pour plus d’informations sur les limites de tempdb dans SQL Database, consultez Base de données tempdb dans SQL Database.
40552 16 La session a pris fin en raison d'une utilisation de l'espace pour le journal de transactions excessive. Essayez de modifier moins de lignes au cours d'une transaction. Pour plus d’informations sur le traitement par lot, consultez Comment utiliser le traitement par lot pour améliorer les performances des applications de base de données SQL.

Si vous effectuez des insertions en bloc à l’aide de l’utilitaire bcp.exe ou de la classe System.Data.SqlClient.SqlBulkCopy, essayez d’utiliser les options -b batchsize ou BatchSize permettant de limiter le nombre de lignes copiées sur le serveur à chaque transaction. Si vous reconstruisez un index en utilisant l’instruction ALTER INDEX, essayez d’utiliser l’option REBUILD WITH ONLINE = ON. Pour plus d’informations sur les tailles des journaux des transactions pour le modèle d’achat vCore, consultez :
Limites de vCores pour les bases de données uniques.
Limites de vCores pour les pools élastiques.
Limites des ressources d’Azure SQL Managed Instance.
40553 16 La session a pris fin en raison d'une utilisation de mémoire excessive. Essayez de modifier votre requête afin que le nombre de lignes à traiter soit moins important.

La diminution du nombre d’opérations ORDER BY et GROUP BY dans votre code Transact-SQL réduit les besoins en mémoire de votre requête. Pour plus d’informations sur la mise à l’échelle des bases de données, consultez Mettre à l’échelle des ressources de base de données unique et Mettre à l’échelle des ressources de pool élastique. Pour plus d’informations sur les erreurs de mémoire insuffisante et des exemples de requêtes, consultez Résoudre les erreurs de mémoire insuffisante avec Azure SQL Database.

Erreurs relatives au pool élastique

Les erreurs suivantes sont liées à la création et à l’utilisation de pools élastiques :

Code d'erreur severity Description Action corrective
1132 17 Le pool élastique a atteint sa limite de stockage. Le taux d’utilisation du stockage pour le pool élastique ne doit pas dépasser (%d) Mo. Tentative d’écriture de données dans une base de données alors que la limite de stockage du pool élastique a été atteinte. Pour plus d’informations sur les limites de ressources, consultez :
Limites de DTU pour les pools élastiques.
Limites de vCores pour les pools élastiques.
Envisagez si possible d’augmenter le nombre de DTU du pool élastique ou d’ajouter de la capacité de stockage à ce dernier afin d’accroître sa limite de stockage. Vous pouvez aussi réduire l’espace de stockage utilisé par les bases de données individuelles qu’il contient ou supprimer certaines de ses bases de données. Pour plus d’informations sur la mise à l’échelle d’un pool élastique, consultez Mettre à l’échelle des ressources de pool élastique. Pour plus d’informations sur la suppression de l’espace inutilisé dans les bases de données, consultez Gérer l'espace de fichier des bases de données dans Azure SQL Database.
10929 16 La garantie minimale de %s est %d ; la limite maximale est de %d et le taux d’utilisation actuel de la base de données est de %d. Toutefois, le serveur est trop occupé pour prendre en charge les requêtes supérieures à %d pour cette base de données. Pour plus d’informations sur les limites de ressources, consultez :
Limites de DTU pour les pools élastiques.
Limites de vCores pour les pools élastiques.
Sinon, réessayez plus tard. Nombre minimal de DTU/vCore par base de données ; nombre maximal de DTU/vCore par base de données. Le nombre total de workers simultanés dans toutes les bases de données du pool élastique a tenté de dépasser la limite du pool.
Envisagez si possible d’augmenter le nombre de DTU ou de vCore du pool élastique afin d’accroître sa limite de rôles de travail, ou supprimez des bases de données du pool élastique.
40844 16 La base de données '%ls' sur le serveur '%ls' est une base de données présentant l’édition '%ls' dans un pool élastique. Elle ne peut pas présenter de relation de copie continue. N/A
40857 16 Pool élastique introuvable pour le serveur : '%ls'. Nom du pool élastique: '%ls'. Le pool élastique spécifié n’existe pas sur le serveur spécifié. Indiquez un nom de pool élastique valide.
40858 16 Le pool élastique '%ls' existe déjà sur le serveur : '%ls'. Le pool élastique spécifié existe déjà sur le serveur spécifié. Saisissez un nouveau nom pour le pool élastique.
40859 16 Le pool élastique ne prend pas en charge le niveau de service '%ls'. Le niveau de service spécifié n’est pas pris en charge pour le provisioning du pool élastique. Saisissez l’édition correcte, ou laissez le champ du niveau de service vide afin d’utiliser le niveau de service par défaut.
40860 16 La combinaison du pool élastique '%ls' et de l’objectif de service '%ls' n’est pas valide. Le pool élastique et le niveau de service ne peuvent être spécifiés ensemble que si le type de ressource est spécifié comme étant un « ElasticPool ». Spécifiez la combinaison de pool élastique et de niveau de service adéquate.
40861 16 L’édition de base de données '%.*ls' ne peut pas être différente du niveau de service du pool élastique, qui correspond à '%.*ls'. L’édition de base de données est différente du niveau de service du pool élastique. Indiquez une édition de base de données identique au niveau de service du pool élastique. Remarque : l’édition de base de données n’a pas besoin d’être spécifiée.
40862 16 Si l’objectif de service du pool élastique est spécifié, le nom du pool élastique doit l’être également. L’objectif de service du pool élastique n’identifie pas de manière unique un pool élastique. Si vous utilisez l’objectif de service du pool élastique, spécifiez le nom du pool élastique.
40864 16 Le nombre de DTU du pool élastique doit se monter au minimum à (%d) pour le niveau de service '%.*ls'. Tentative de définition du nombre de DTU du pool élastique au-dessous de la limite minimale. Essayez à nouveau de définir le nombre de DTU du pool élastique sur la limite minimale ou plus.
40865 16 Le nombre de DTU du pool élastique ne doit pas dépasser (%d) pour le niveau de service '%.*ls'. Tentative de définition du nombre de DTU du pool élastique au-dessus de la limite maximale. Essayez à nouveau de définir le nombre de DTU du pool élastique sur la limite maximale ou moins.
40867 16 Le nombre maximal de DTU par base de données doit être au minimum (%d) pour le niveau de service '%.*ls'. Tentative de définition du nombre maximal de DTU par base de données en dessous de la limite prise en charge. Envisagez d’utiliser le niveau de service du pool élastique prenant en charge le paramètre souhaité.
40868 16 Le nombre maximal de DTU par base de données ne peut pas dépasser (%d) pour le niveau de service '%.*ls'. Tentative de définition du nombre maximal de DTU par base de données au-delà de la limite prise en charge. Envisagez d’utiliser le niveau de service du pool élastique prenant en charge le paramètre souhaité.
40870 16 Le nombre minimal de DTU par base de données ne peut pas dépasser (%d) pour le niveau de service '%.*ls'. Tentative de définition du nombre minimal de DTU par base de données au-delà de la limite prise en charge. Envisagez d’utiliser le niveau de service du pool élastique prenant en charge le paramètre souhaité.
40873 16 Le nombre de bases de données (%d) et le nombre minimal de DTU par base de données (%d) ne peuvent pas dépasser le nombre de DTU du pool élastique (%d). Tentative de spécification d’un nombre minimal de DTU pour les bases de données dans le pool élastique dépassant le nombre de DTU du pool élastique. Envisagez d’augmenter le nombre de DTU du pool élastique, ou de réduire le nombre minimal de DTU par base de données ou le nombre de bases de données dans le pool élastique.
40877 16 Impossible de supprimer un pool élastique, sauf s’il ne contient aucune base de données. Le pool élastique contient une ou plusieurs bases de données et ne peut donc pas être supprimé. Supprimez les bases de données du pool élastique afin de pouvoir supprimer ce dernier.
40881 16 Le pool élastique '%.*ls' a atteint le nombre limite de bases de données. Le nombre limite de bases de données ne peut pas dépasser (%d) pour un pool élastique incluant (%d) DTU. Tentative de création ou d’ajout d’une base de données au pool élastique alors que le nombre limite de bases de données du pool élastique a été atteint. Envisagez d’augmenter le nombre de DTU du pool élastique, le cas échéant, afin d’accroître le nombre limite de bases de données, ou de supprimer des bases de données du pool élastique.
40889 16 La limite de stockage ou relative aux DTU pour le pool élastique '%.*ls' ne peut pas être abaissée, car l’espace de stockage risque de ne pas être suffisant pour les bases de données de ce pool. Tentative de définition de la limite de stockage du pool élastique en dessous du taux d’utilisation de son espace de stockage. Envisagez de réduire le taux d’utilisation du stockage des bases de données individuelles dans le pool élastique, ou de supprimer des bases de données dans le pool afin de réduire sa limite de stockage ou celles des DTU.
40891 16 Le nombre minimal de DTU par base de données (%d) ne peut pas dépasser le nombre maximal de DTU par base de données (%d). Tentative de définition d’un nombre minimal de DTU par base de données supérieur au nombre maximal de DTU par base de données. Vérifiez que le nombre minimal de DTU par base de données ne dépasse pas le nombre maximal de DTU par base de données.
TBD 16 La taille de l’espace de stockage d’une base de données individuelle dans un pool élastique ne peut pas dépasser la taille maximale autorisée par le pool élastique de niveau de service '%.*ls'. La taille maximale de la base de données dépasse la taille maximale autorisée par le niveau de service du pool élastique. Définissez la taille maximale de la base de données dans les limites de la taille maximale autorisée par le niveau de service du pool élastique.

Impossible d’ouvrir la base de données « Master » demandée par la connexion. La connexion a échoué

Ce problème se produit car le compte ne dispose pas de l’autorisation d’accès à la base de données master. Toutefois, par défaut, SQL Server Management Studio (SSMS) tente de se connecter à la base de données master.

Pour résoudre ce problème, effectuez les étapes suivantes :

  1. Sur l’écran de connexion de SSMS, sélectionnez Options, puis Propriétés de la connexion.

  2. Dans le champ Connexion à une base de données, entrez le nom de la base de données par défaut de l’utilisateur comme base de données de connexion par défaut, puis sélectionnez Se connecter.

    Connection properties

Erreurs en lecture seule

Si vous tentez d’écrire dans une base de données en lecture seule, un message d’erreur s’affiche. Dans certains scénarios, la cause de l’état de lecture seule de la base de données peut ne pas être immédiatement évidente.

Erreur 3906 : Échec de la mise à jour de la base de données « DatabaseName », car celle-ci est en lecture seule.

Lors d’une tentative de modification d’une base de données en lecture seule, l’erreur suivante est générée.

Msg 3906, Level 16, State 2, Line 1
Failed to update database "%d" because the database is read-only.

Vous êtes peut-être connecté à un réplica en lecture seule

Pour Azure SQL Database et Azure SQL Managed Instance, vous êtes peut-être connecté à une base de données sur un réplica en lecture seule. Dans ce cas, la requête suivante qui utilise la fonction DATABASEPROPERTYEX () retourne READ_ONLY :

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');
GO

Si vous vous connectez avec SQL Server Management Studio, vérifiez que vous avez spécifié ApplicationIntent=ReadOnly sous l’onglet Paramètres de connexion supplémentairesde vos options de connexion.

Si la connexion provient d’une application ou d’un client utilisant une chaîne de connexion, vérifiez que la chaîne de connexion a spécifié ApplicationIntent=ReadOnly. Pour plus d’informations, consultez Se connecter à un réplica en lecture seule.

La base de données peut être définie comme en lecture seule

Si vous utilisez Azure SQL Database, la base de données proprement dite peut avoir été définie comme en lecture seule. Vous pouvez vérifier l’état de la base de données à l’aide de la requête suivante :

SELECT name, is_read_only
FROM sys.databases
WHERE database_id = DB_ID();

Vous pouvez modifier l’état de lecture seule d’une base de données dans Azure SQL Database à l’aide de ALTER DATABASE Transact-SQL. Vous ne pouvez actuellement pas définir une base de données dans une instance managée en lecture seule.

Vérifier si une erreur est due à un problème de connectivité

Pour vérifier si une erreur est due à un problème de connectivité, consultez la trace de la pile pour les frames qui montrent des appels visant à ouvrir une connexion, comme les suivants (notez la référence à la classe SqlConnection) :

System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
 at System.Data.SqlClient.SqlConnection.Open()
 at AzureConnectionTest.Program.Main(String[] args)
ClientConnectionId:<Client connection ID>

Quand l’exception est déclenchée par des problèmes de requête, vous remarquerez une pile des appels semblable à la suivante (notez la référence à la classe SqlCommand). Dans ce cas, affinez vos requêtes.

  at System.Data.SqlClient.SqlCommand.ExecuteReader()
  at AzureConnectionTest.Program.Main(String[] args)
  ClientConnectionId:<Client ID>

Pour obtenir des conseils supplémentaires sur l’affinage des performances, consultez les ressources suivantes :

Étapes pour résoudre les problèmes de connexion courants

  1. Vérifiez que l’adresse TCP/IP est activée en tant que protocole client sur le serveur d’applications. Pour plus d’informations, consultez Configurer des protocoles clients. Sur les serveurs d’applications où aucun outil SQL n’est installé, vérifiez que l’adresse TCP/IP est activée en exécutant cliconfg.exe (utilitaire réseau du client SQL Server).

  2. Vérifiez la chaîne de connexion de l’application pour être sûr qu’elle est configurée correctement. Par exemple, vérifiez que la chaîne de connexion spécifie le port correct (1433) et le nom complet du serveur. Consultez Obtenir des informations de connexion.

  3. Essayez d’augmenter la valeur du délai d’expiration de connexion. Nous vous recommandons d’utiliser un délai d’expiration de connexion d’au moins 30 secondes.

  4. Testez la connectivité entre le serveur d’applications et Azure SQL Database à l’aide de SQL Server Management Studio (SSMS), d’un fichier UDL, d’un test ping ou de Telnet. Pour plus d’informations, consultez Résolution des problèmes de connectivité et Diagnostics des problèmes de connectivité.

    Notes

    En guise d’étape de résolution des problèmes, vous pouvez également tester la connectivité sur un autre ordinateur client.

  5. Nous vous recommandons de vérifier que la logique de nouvelle tentative est en place. Pour plus d’informations sur la logique de nouvelle tentative, consultez Gestion des problèmes de connexion et des erreurs temporaires de Microsoft Azure SQL Database.

Si ces procédures ne permettent pas de résoudre votre problème, essayez de collecter davantage de données, puis contactez le support. Si votre application est un service cloud, activez la journalisation. Cette étape retourne l’horodatage UTC de l’échec. En outre, SQL Database retourne l’ID de suivi. Les services de support technique Microsoft peuvent utiliser ces informations.

Pour plus d’informations sur la façon d’activer la journalisation, consultez Activer la journalisation des diagnostics pour les applications dans Azure App Service.

Étapes suivantes

Pour en savoir plus sur les sujets associés, consultez les articles suivants :