Translate

dimanche 7 juin 2009

OCS R2, SQL 2008 et WMI

Durant mes expériementations sur mon "environnement de jeu", j'ai voulu aller trifouiller la configuration de mon nouveau Pool OCS R2 tout fraîchement installé avec un serveur SQL 2008 en tant que serveur dorsal, et s'exécutant sur Win20008 x64 (mes frontaux étant aussi installés sur Win2008 x64).

Bref... le moyen le plus simple étant d'utiliser wbemtest pour aller bidouiller la configuration, je décide de faire "comme d'habitude":
  1. Se connecter à root\cimv2 (pratique, sur Win2008 c'est le contexte de connexion par défaut)
  2. Aller dans "Query" et entrer la requête en langage WQL (WMI Query Language), comme par exemple "select * from msft_sipaddressbooksetting where backend = 'sv-sql'"
  3. Et là, le drame... Au lieu de fonctionner et de me retourner l'instance de la classe correspondante, je me fais insulter avec une erreur inconnue... Késako ?

Je vérifie alors quelques éléments:

  • Mon pool est configuré pour se connecter à "sv-sql\OCSR2"
  • Mes frontaux fonctionnent parfaitement bien
  • Mon serveur SQL a les exceptions correctes sur le pare-feux Windows: les services SQL et le service SQLBrowser sont tous mis en exclusion
  • Mon service SQL pour l'instance OCSR2 est bien configuré pour TCP/IP et là... Je me rappelle/réalise que SQL 2008 est joueur... Pour une instance nommée, un port aléatoire est choisi, contrairement à l'instance par défaut qui s'exécute sur le port TCP 1433 !

Je prends alors mon Netmon, et lance une trace réseau en réessayant un Wbemtest, afin de voir ce qui se trame (admirez le jeu de mots =°)) derrière...

Je découvre alors que la requête WMI déclence une connexion SQL sur le port... 1433 ! Damned...

J'arrête donc proprement les services sur mes frontaux, change le port d'écoute de mon instance SQL en 1433 et redémarre mon instance. Une validation avec un 'netstat -an find /I 1433' confirme que le port est ouvert en écoute...

Après un redémarrage de mes services frontaux, je tente à nouveau ma requête WQL, et elle fonctionne !

Une autre technique, beaucoup plus simple et d'utiliser le nom complet de l'instance SQL, par exemple select * from msft_sipaddressbooksetting where backend = 'sv-sql\\OCSR2' (notez le double backslash, un grand classique :))

Moralité: Normalement, vous n'avez pas besoin de trifouiller la base SQL avec WMI (je rappelle tout de même que c'est l'interface qui est supportée par Microsoft pour configurer OCS/OCS R2, et que modifier directement la base SQL n'est pas supporté). Dans certains cas, cela nécessaire, comme par exemple activer la QoS, changer les URLs de publication des services Web, ou juste parce qu'il faut changer une valeur bien particulière (en général pour une raison tout autant particulière =)).

Aucun commentaire:

Enregistrer un commentaire