Connecting to a mirrored SQL Server instance using the MultiSubnetFailover connection option is not supported
J’ai récemment été confronté à un problème de connexion à une base de données SQL Server Sur Amazon RDS (SQL Server dans le Cloud)
La connexion depuis ISQL fonctionnait correctement :
Mais lors que je soumettais un LIBNAME dans une session SAS j’obtenais l’erreur ci-dessous :
ERROR: CLI error trying to establish connection: [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Connecting to a mirrored SQL
Server instance using the MultiSubnetFailover connection option is not supported. : [unixODBC][Microsoft][ODBC Driver 17 for
SQL Server]Invalid attribute value : [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Invalid connection string attribute
ERROR: Error in the LIBNAME statement.
Cette erreur et surtout le message Invalid connection string attribute m'a encouragé à vérifier mes variables d'environnement ODBC. Les variables d’environnements a positionner sont : ODBCHOME, ODBCINST, ODBCINI et ODBCSYSINI.
Et en effet, il me manquait la variable d'environnement ODBCSYSINI.
J'ai donc ajouté la variable ODBCSYSINI=/etc dans mon fichier de configuration sas, sasenv_local :
La connexion fonctionne maintenant correctement :
Malgré mes recherches pour comprendre la cause de ce problème, je ne suis pas parvenu à obtenir une explication entre l'absence de la variable d'environnement ODBCSYSINI et l’impossibilité de se connecter à une base de données SQL server utilisant ce type de configuration (Un cluster de basculement de sous-réseaux multiples SQL Server est une configuration dans laquelle chaque nœud de cluster de basculement est connecté à un sous-réseau différent ou à un ensemble différent de sous-réseaux. Ces sous-réseaux peuvent se trouver au même emplacement ou dans des sites géographiquement dispersés). D'autant plus que la variable d'environnement ODBCSYSINI pour valeur par défaut /etc et que cette variable est normalement utilisé pour surcharger cette valeur par défaut par un emplacement personnalisé...