WeetA

Quand normalement rime avec rarement !

[Mise à jour] Bug Distribution dans le calculateur Exchange 2013 7.5 et 7.6 --> Corrigé dans la version 7.8

15.10.2015

La version 7.8 publiée ce jour inclus le correctif présenté ci-après.

20.06.2015

Microsoft a mis à jour son calculateur pour Exchange 2013 le 19 Juin en version 7.5.

Un bug empéchant d'afficher les résultats lorsque Site Resilience était désactivé et que Active/Active (Single DAG) était sélectionné a été corrigé le lendemain dans la version 7.6.

Par contre, le bug que j'ai rencontré dans l'onglet Distribution de la version 7.5 est toujours présent dans la 7.6.

J'ai trouvé, apporté une correction et envoyé le problème à Microsoft mais je n'ai eu aucun retour à ce jour.

C'est quoi le problème ?

Vous êtes Français ? Vous avez peut-être choisi votre langue maternelle comme langue de formatage des dates, nombres dans les paramètres régionaux. Et ça, c'est un problème. Ca empêche le simulateur de distribution des copies de bases de fonctionner correctement.

Dès que vous passez 1 serveur en Fail, vous vous retrouvez avec des bases HS et ce malgré les 4 copies par défaut.

Pourquoi ?

Parce que... la formule permettant de calculer le serveur hébergeant la copie active ne fonctionne pas avec le format Français (au moins).
Elle utilise la fonction TEXT avec le caractère de formatage d qui signifie "Day without leading zero". Hors, avec le format Français, il faudrait mettre j à la place. Mais si on met j, ça ne fonctionne plus avec un format English (US).

Comment on résout ?

La formule ne gère pas réellement de formatage de date. Il s'agit juste d'une feinte pour convertir un nombre en sa version texte. On peut donc remplacer le caractère de formatage d par celui des nombres #.

Allez dans le code VBA (Menu Developper, Visual Basic)

Ensuite, ouvrez le module1

Puis allez dans la fonction Build_Table

Trouvez le code ci-dessous

    'Cycle through each DB in the design
    'Populate formula to determine which server hosts the active copy of a DB
    'Create one cell formula that looks at DB copies from all sites
    'DAGQuroumStatus
    For x = StartRow To NumDataBases + StartRow - 1
        Formula1 = "=IF(OR(DAGQuroumStatus=""" & DAGStringFail & """,ISNA(MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))),""FAILED"", IF(OR(IsSecSiteActive(),AND(IF(ISNA(MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),MATCH(1," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0),MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))<=calcNumAMBXServersDC1,MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)<=calcNumAMBXServersDC1),AND(IF(ISNA(MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),MATCH(1," & DiagramStart(1) & x & ":"
        Formula2 = DiagramEnd(NumSites) & x & ",0),MATCH(TEXT(VALUE(1),""d"")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0))>17,MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)>17)),GetServer(MATCH(MIN(" & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ")," & DiagramStart(1) & x & ":" & DiagramEnd(NumSites) & x & ",0)),""FAILED""))"

Remplacez toutes les occurences de

TEXT(VALUE(1),""d"")

par

TEXT(VALUE(1),""#"")

Enregistrez le tout et rafraîchissez l'onglet Distribution

Voila le résultat

Ajouter un commentaire

Loading