Les requêtes suivantes peuvent apparaître dans les requêtes coûteuses de SQL Server alors qu'elles n'ont aucune raison d'y apparaître :
- select dbo.AskToShield('ConnectToServer',@tag1,@tag2,@tag3,'',@tag4) as receive
- select dbo.AskToShield('TestLicence',@tag1,@tag2,@tag3,@tag4) as receive
Cette situation, liée à une installation de MercatorShield en configuration cloud, peut conduire à un ralentissement important du serveur SQL et, par conséquent, des Mercators qui y sont connectés. Elle serait apparue avec les versions plus récentes de SQL Server.
L'arrêt forcé de l'exécution de ces requêtes peut, en outre, prendre un temps important, qui peut in fine exiger le redémarrage du service SQL.
Pour corriger cette situation, il faut prendre une mise à jour de Mercator (Mercator.exe version égale ou supérieure à 10.10.114) et ensuite effectuer à nouveau "Outils > Outils Avancés > MercatorShield > Configurer via SQL Server" (une seule fois). Ceci aura pour effet de mettre à jour l'assembly qui contient la méthode utilisée en mode SQL-CLR pour la fonction dbo.AskToShield.
La vérification de la bonne installation de cette mise à jour peut être effectuée avec cette requête SQL :
select dbo.SHIELD_SQL_VERSION()
qui doit renvoyer 1.0.7.40.
De plus, si MercatorShieldServer est installé sur le même serveur que le serveur SQL (ce qui est généralement le cas), nous recommandons d'indiquer le host de MercatorShieldServer avec l'adresse IP 127.0.0.1 (et non avec le nom du serveur ou son adresse IP dans le réseau local). L'option MercatorShield host (ID = SHIELDHOST) devient donc :
127.0.0.1:5022@SQL
Cette notation permet d'optimiser les fonctionnalités de contrôle de MercatorShield, en le dispensant de vérifier que MercatorShieldServer se trouve dans le même réseau local.
Ceci ne concerne pas les Mercator avec une base de données SQL Azure.