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 : [caption id="attachment_3034" align="aligncenter" width="580"]isql MSQLSERVERAMAZONRDS admin admin isql MSQLSERVERAMAZONRDS admin admin[/caption] 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 : [caption id="attachment_3035" align="aligncenter" width="830"]Variables ODBC dans sasenv_local Variables ODBC dans sasenv_local[/caption] La connexion fonctionne maintenant correctement : libname-amazon-rd-sql-server-sas   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é...        

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.