Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Utilisation de la réplication SQL dans le code .NET d'une application mobile - Implémentation & Conseils : PARTIE 3/3 (Réinitialisations d'abonnements)

Ce post représente la dernière partie de notre article sur l’utilisation de la réplication SQL dans le code .NET d’une application mobile.

Précédemment, nous avons vu comment utiliser les méthodes Synchronize (partie 1) et BeginSynchronize (partie 2), pour effectuer une synchronisation de données entre un terminal mobile et un serveur.

Aujourd’hui, nous allons voir comment gérer les réinitialisations d’abonnements…

 

Un abonnement a besoin de subir une réinitialisation dans les cas ci-dessous :

  • Lorsque le schéma de la publication (articles, filtres) a été modifié et que les abonnements ont été notés “à réinitialiser”.
  • Lorsqu’un abonnement expire, suite au dépassement du délai de rétention.

La réinitialisation d’un abonnement sur le terminal est assurée grâce à la méthode ReinitializeSubscription de la classe SqlCeReplication.

La nécessité de réinitialiser un abonnement peut être détectée en attrapant une erreur particulière (exception) dans la clause “Catch” lors du processus de réplication.

Le code de l’erreur native de l’exception est alors le code 28587.

Si cette erreur particulière est attrapée, cela signifie que l’abonnement a expiré, et la méthode ReinitializeSubscription doit immédiatement être appelée :

private void btnSynchro_Click(object sender, EventArgs e)
{
     SqlCeReplication repl = null;
     try
     {
          repl = new SqlCeReplication();

          // (...)
          // (Définition des propriétés de l'objet repl)
          // (...)

          repl.Synchronize();
      }
      catch (SqlCeException ex)
      {
          switch (ex.NativeError)
          {
              case 28587:
                  repl.ReinitializeSubscription(true);
                  repl.Synchronize();
                  break;
              default:
                  throw ex;
           }
      }
      finally
      {
          if (repl != null)
              repl.Dispose();
      }
 }

 

Remarque importante :

Lors de la phase de réinitialisation, l’abonné redescend systématiquement l’ensemble des données pour reconstruire entièrement sa base mobile. Il s’agit d’une opération très couteuse en terme de volumétrie, d’où l’importance d’éviter les modifications de schéma sur la base serveur et de définir une période de rétention correcte.

 

Pi-R.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01